Павел В. (26.06.2006 23:03, просмотров: 1) ответил she на Да можете не утруждаться, IAR всю жизнь адресовал всю память одинаково - побайтно, это правильно и логично.
Тут вот в чем дело А ассемблер является ЯВУ? Нет? Прекрасно! Тогда наберите "CALL 3" в ИАРовском ассемблере?
IAR считает память в байтах. Да хоть в битах. А зачем тогда патч? Т.е. сам прилюдно заявил, что если адреса функций уже известны на этапе компиляции (т.е. статические), то происходит некий "О-Опс!". Я не стал лезть в описательство, а просто попросил - "народ, у кого есть иар 4.20А, наберите CALL 3?". Т.е. проблема _САМОГО_ компилятора или осталась, или была исправлена? Вот и все!
Проблема несмертельная, разумеется. Меня гораздо больше достает то, что, прицепив к Меге128 внешнюю память, я не могу организовать ее в виде единого массива или структуры. Потому, что IAR считает, что RAM - оно не более 32 килобайта может быть. И все. Хоть уписяйся. Наверное, ОЗУ в 64К компилятор наоборот, считает в словах? :-))))
Ну а что касаяемо дебатов о языке Си и программном счетчике - все правильно. Отчасти. Я думаю, что эмбеддерщик все-таки должен знать камень, для которого пишет, периодически просматривать ассемблерные листинги, чтобы понять, куда их обоих с компилятором несет, в ту или уже не в ту степь? Этим проекты для МК, по-моему, и отличаются от поделок на ВизуалБасике под Винтел.