chechestor 0 8 июля, 2011 Опубликовано 8 июля, 2011 · Жалоба Добрый день. Использую платку с процом AT91SAM9G45 + NAND + внешняя ОЗУ большая... На IAR написал классную прожку, отладил ее в ddram через jtag... Теперь хочу залить это чудовище в NAND-флешку. Сейчас на флешке хранится bootstrap + uboot + zlinux. Грузят по цепочке друг друга... Я хочу разместить свой код (назовем его условно helloworld) вместо uboot, чтобы при старте платки грузился bootstrap, потом он выцеплял мою прожку и помещал ее в оперативку... Пробовал просто окомплилированную прожку (в режиме ddram) разместить по адресу, откуда bootstrap качает бинарник, но прога не пошла... Пробовал предварительно откомпилить прогу под sram, но ругается, что прожка весит больше, чем в проце есть памяти sram... Вообще, bootstrap берет данные с конкретного адреса флешки, кладет их в оперативу по определенному адресу, а потом джампится туда, как я понимаю... -- AT91bootstrap Project 3.0 -- -- SK-MAT91SAM9G45/M10 -- Compiled: Oct 30 2010 12:56:05 -- -I- Setting: MCK = 133MHz -I- I cache enabled. -I- Init DDRAM -I- Init NAND Flash -I- Nandflash ID is 0x9510DAEC -I- Nandflash driver initialized -I- Size of the whole device in bytes : 0x10000000 -I- Size in bytes of one single block of a device : 0x20000 -I- Number of blocks in the entire device : 0x800 -I- Size of the data area of a page in bytes : 0x800 -I- Number of pages in the entire device : 0x40 -I- Bus width : 8 -I- Copy "" (262144 bytes) from NAND 0x00020000 to 0x73f00000 -I- Jump to 0x73f00000 Подскажите, в какую сторону копать надо? Можт, надо компилить прогу под ddram, но указать где-то в настройках проекта, что прога лежит не с нулевого адреса? Или надо компилить под sram, но что тогда делать с тем, что IAR отказывается собирать бинарник? можно ли просто так поменять в ICF-файле размер sram, и не вылезет ли это еще где боком?... о0 Спасибо за ответы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 8 июля, 2011 Опубликовано 8 июля, 2011 · Жалоба Я хочу разместить свой код (назовем его условно helloworld) вместо uboot, чтобы при старте платки грузился bootstrap, потом он выцеплял мою прожку и помещал ее в оперативку... Вообще, bootstrap берет данные с конкретного адреса флешки, кладет их в оперативу по определенному адресу, а потом джампится туда, как я понимаю... Подскажите, в какую сторону копать надо? Можт, надо компилить прогу под ddram, но указать где-то в настройках проекта, что прога лежит не с нулевого адреса? Или надо компилить под sram, но что тогда делать с тем, что IAR отказывается собирать бинарник? можно ли просто так поменять в ICF-файле размер sram, и не вылезет ли это еще где боком?... о0 Внимательно посмотрите, что и зачем делает U-boot. Вы хотите работать без ядра ОС, тогда ВСЯ инициализация периферии и т.д. на Вашей совести. Поиском по форуму пройдитесь, похожие вопросы уже поднимались и методы решения обсуждались. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 10 июля, 2011 Опубликовано 10 июля, 2011 · Жалоба Chestor, компилировать программу надо с того адреса куда её загрузчик копирует. В твоём случае с 0x73f00000 (у тебя точно там DDRAM?). Прошивать образ в NAND и говорить загрузчику откуда и куда его копировать. Плюс к этому, надо в low_level_init твоей программы таблицу векторов прерываний скопировать на своё место. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться