Цитата(aaarrr @ Dec 14 2011, 19:57)

Если по-простому, то разделить RO и RW в памяти.
В общем путем экспериментирования немного вроде понял, почему так. Код программы - это ROM. Всякие там массивы - это RAM.
Если линкеру не указывать что где должно быть - то все перемешивает. И массивы RAM, и код программы. Если указать конкретно место размещения массива, как сделал я, то это примерно равносильно разделению на RAM и ROM. Но все таки не то

А если разделить, то все нормально. Массивы в прошивку не попадают и размер адекватный.
Разделил так
ROM 0x80000040... 0x80FFFFFF
RAM 0x81000040... 0x83FFFFFF
Думаю теперь все нормально будет
Цитата(aaarrr @ Dec 14 2011, 19:57)

Надо выяснять, что такое "Copy/packbits (__iar_packbits_init2)", откуда оно берется и по каким правилам размещается. Смотрите мануалы.
Ну мельком глянул по поиску в мануале по packbits. Вроде как это алгоритм сжатия кода программы. Видимо, в NAND записывается ужатый код. Потом разворачивается в SDRAM в нормальном виде.