ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
175683 Топик полностью
ZeDStavr (14.12.2009 17:21, просмотров: 164) ответил MBedder на .equ и #define выполняют действия над совершенно разными типами данных, и результаты этих действий по-разному используется при компиляции/линковке, к тому же сами .equ и .equiv различаются. А насчет А = В вместо .equ A,B - попробуй сам и увидишь
.equ и .equiv различаются только тем, что последняя директива не допускает переопределение уже определенных выражений. На А = В вроде не ругнулся. Попутно обнаружил вот что. Это полная вырезка конфликтных "определений", с ней возникает вышеописанная ошибка ; .... .equiv MUL_LINE_X_PORT,PORTE ; .equiv ADDR_JMP1_PORT, MUL_LINE_X_PORT .equiv ADDR_JMP2_PORT, MUL_LINE_X_PORT .equiv ADDR_JMP3_PORT, MUL_LINE_X_PORT .equiv EXT_OFF_IN_PORT, MUL_LINE_X_PORT .equiv NOM_VOLTAGE_JMP_PORT, MUL_LINE_X_PORT .equiv DBL_VOLTAGE_JMP_PORT, MUL_LINE_X_PORT .equiv SYNC_IN_PORT, MUL_LINE_X_PORT ; .... Если я меняю хотя бы в одной строке, напрмер .equiv DBL_VOLTAGE_JMP_PORT, PORTE ошибка пропадает. Подумал, что влияет число определений, однако, если я просто комментирую одну или несколько строк, ошибка все равно вылазиет. Если я ставлю везде '=', ситуация полностью повторяется. В общем моразм крепчал. Microchip, кстати, до сих пор молчит.