Romanticus
Jun 29 2010, 06:48
Хотел сделать загружаемый файл для процессора, выполняющий настройку консоли, SDRAM, и выполняющую простенький тест SDRAM.
Взял за основу примерчик для AT91RM9200EK под названием Getting Started из комплекта поставки студии, файл начальной инициализации там готовый, интегрирован код для начальной инициализации проца, консоли и вывод сообщения в консоль.
Пример собирается успешно. Выбрал опцию "создавать бинарный файл (.bin). По формату похоже на поставляемые с платой dataflashboot.bin.
Сбрасываю проц, он начинает с секундным интервалом слать в консоль символ 'C'. Посылаю в порт гипертерминалом по протоколу х-модем получившийся файл, он успешно передается, но реакции никакой - никакого текста не выводится и понять, в каком состоянии проц не получается

Помогите, пожалуйста, начинающему...
Решаю, практически, ту же проблему. Объединим усилия?
MALLOY2
Jul 16 2010, 18:22
Цитата
Помогите, пожалуйста, начинающему..
Собрать на коленке JTAG (виглер) подключится и посмотреть что же все-таки происходит.
sergeeff
Jul 16 2010, 20:11
Или взять в руки карандашик и бумажку и "поиграть в компьютер", пытаясь понять, что к чему и зачем (это всегда полезно, кстати).
Вопрос на засыпку. Есть в системе светодиодик? Умеете его включать/выключать? Тогда дело за малым. Включаем в нужном месте программы LED и делаем после этого while(1). Будете четко понимать, до куда программа дошла, до куда нет.
Светодиод работает. Сейчас борюсь с DBGU. Хочу передать через него хоть что-то. Лучшая помощь - живой примерчик под IAR, если можно.
sergeeff
Jul 17 2010, 21:23
А что, Atmel'овских примеров не хватает для проведения приемов борьбы?
В том-то всё и дело, что не удаётся найти такой, чтобы запустить и он заработал.
MALLOY2
Jul 18 2010, 08:26
Не знаю, за этот камень не скажу, но примеры для других всегда работали, не встречал не рабочих, криво на писанных да, но это ведь пример.
Вы когда его запускаете учитываете под какую он плату был написан ?, хотя бы тактовые проверить совпадают с вашими или нет.
sergeeff
Jul 18 2010, 10:25
DBGU запускается "с пол оборота". Там все проще не бывает, ни прерываний, ни DMA для начала использования не надо. Раз примеры не работают, не факт, что вы вообще добираетесь до функции, где собственно настройка и запуск DBGU происходит. Именно поэтому, я вам и советовал разобраться, то куда вы доходите при передаче управления той части программы, которую вы загружаете через X-modem.
P.S. Очень часто проблема лежит не в том месте, где нам кажется.
DBGU пишет и читает.
Теперь вот хочу добиться от него прерывания при чтении.
Надо сделать так, чтобы код запускался при включении питания.
Для этого пытаюсь записать bin-файл во FLASH память
Руководствуюсь примером из AT91RM9200-GettingStarted-GHS3_6-1_1
Вот что пишет HyperTerminal:
CCCCCCCCC
zooboot development version (Jan 07 2003 - 13:22:16)
zooboot code: 21f00000 -> 21f0df9c
DRAM Configuration:
Bank #0: 20000000 32 MB
Flash: 2 MB
*** Using default environment
AT91RM9200-DK> protect off all
Un-Protect Flash Bank # 1
AT91RM9200-DK> loadb 20000000
## Ready for binary (kermit) download ...
## Start Addr = 0x20000000
AT91RM9200-DK> erase all
Erase Flash Bank # 1:
Erasing sector 0 ... ok.
Erasing sector 1 ... ok.
Erasing sector 2 ... ok.
Erasing sector 3 ... ok.
Erasing sector 4 ... ok.
Erasing sector 5 ... ok.
Erasing sector 6 ... ok.
Erasing sector 7 ... ok.
Erasing sector 8 ... ok.
Erasing sector 9 ... ok.
Erasing sector 10 ... ok.
Erasing sector 11 ... ok.
Erasing sector 12 ... ok.
Erasing sector 13 ... ok.
Erasing sector 14 ... ok.
Erasing sector 15 ... ok.
Erasing sector 16 ... ok.
Erasing sector 17 ... ok.
Erasing sector 18 ... ok.
Erasing sector 19 ... ok.
Erasing sector 20 ... ok.
Erasing sector 21 ... ok.
Erasing sector 22 ... ok.
Erasing sector 23 ... ok.
Erasing sector 24 ... ok.
Erasing sector 25 ... ok.
Erasing sector 26 ... ok.
Erasing sector 27 ... ok.
Erasing sector 28 ... ok.
Erasing sector 29 ... ok.
Erasing sector 30 ... ok.
Erasing sector 31 ... ok.
Erasing sector 32 ... ok.
Erasing sector 33 ... ok.
Erasing sector 34 ... ok.
Erasing sector 35 ... ok.
Erasing sector 36 ... ok.
Erasing sector 37 ... ok.
Erasing sector 38 ... ok.
Erasing sector 39 ... ok.
Done.
AT91RM9200-DK> cp.b 20000000 10000000 10000
Copy to Flash... Flash not Erased
AT91RM9200-DK>
... дальше уже не интересно, хотя...
AT91RM9200-DK> protect on 10000000 1000ffff
Usage:
protect - enable or disable FLASH write protection
Вопрос: кто виноват, что делать и, главное, как?
sergeeff
Jul 21 2010, 07:57
Вы же можете, наверное, посмотреть содержимое памяти? Тогда посмотрите пару-тройку секторов flash. Она действительно не стерлась? Если не стерта - правильно ли инициализирована? Выполнен ли remap (flash читается с 0х10000000 или с 0х00000000)?
Инициализация flash и remap где это всё должно происходить?
До сих пор я использую готовые файлы (loader.bin и AT91RM9200boot.bin) исправить которые я не могу.
До загрузки своего, дело ещё не дошло.
Есть некоторое подозрение, что этот самый AT91RM9200boot.bin надо бы переделать под свою плату.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.