Перейти к содержанию
    

AT91RM9200+IAR EW 5.40 и загрузка через DBGU

Хотел сделать загружаемый файл для процессора, выполняющий настройку консоли, SDRAM, и выполняющую простенький тест SDRAM.

Взял за основу примерчик для AT91RM9200EK под названием Getting Started из комплекта поставки студии, файл начальной инициализации там готовый, интегрирован код для начальной инициализации проца, консоли и вывод сообщения в консоль.

 

Пример собирается успешно. Выбрал опцию "создавать бинарный файл (.bin). По формату похоже на поставляемые с платой dataflashboot.bin.

 

Сбрасываю проц, он начинает с секундным интервалом слать в консоль символ 'C'. Посылаю в порт гипертерминалом по протоколу х-модем получившийся файл, он успешно передается, но реакции никакой - никакого текста не выводится и понять, в каком состоянии проц не получается :(

 

Помогите, пожалуйста, начинающему...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2
Помогите, пожалуйста, начинающему..

 

Собрать на коленке JTAG (виглер) подключится и посмотреть что же все-таки происходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Или взять в руки карандашик и бумажку и "поиграть в компьютер", пытаясь понять, что к чему и зачем (это всегда полезно, кстати).

 

Вопрос на засыпку. Есть в системе светодиодик? Умеете его включать/выключать? Тогда дело за малым. Включаем в нужном месте программы LED и делаем после этого while(1). Будете четко понимать, до куда программа дошла, до куда нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Светодиод работает. Сейчас борюсь с DBGU. Хочу передать через него хоть что-то. Лучшая помощь - живой примерчик под IAR, если можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2

Не знаю, за этот камень не скажу, но примеры для других всегда работали, не встречал не рабочих, криво на писанных да, но это ведь пример.

Вы когда его запускаете учитываете под какую он плату был написан ?, хотя бы тактовые проверить совпадают с вашими или нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DBGU запускается "с пол оборота". Там все проще не бывает, ни прерываний, ни DMA для начала использования не надо. Раз примеры не работают, не факт, что вы вообще добираетесь до функции, где собственно настройка и запуск DBGU происходит. Именно поэтому, я вам и советовал разобраться, то куда вы доходите при передаче управления той части программы, которую вы загружаете через X-modem.

 

P.S. Очень часто проблема лежит не в том месте, где нам кажется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо сделать так, чтобы код запускался при включении питания.

Для этого пытаюсь записать 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

 

Вопрос: кто виноват, что делать и, главное, как?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы же можете, наверное, посмотреть содержимое памяти? Тогда посмотрите пару-тройку секторов flash. Она действительно не стерлась? Если не стерта - правильно ли инициализирована? Выполнен ли remap (flash читается с 0х10000000 или с 0х00000000)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Инициализация flash и remap где это всё должно происходить?

До сих пор я использую готовые файлы (loader.bin и AT91RM9200boot.bin) исправить которые я не могу.

До загрузки своего, дело ещё не дошло.

Есть некоторое подозрение, что этот самый AT91RM9200boot.bin надо бы переделать под свою плату.

Изменено пользователем bbk_a

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...