Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как отлаживать загрузчик в LPC2368
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Аматер
Взял загрузчик из примера AN10835 от NXP, он грузит, но не работает. Я практически без изменений взял функцию для x modem, поставил что она размещается в ram, и запускаю из своей программы.
x modem работает, показывает что загрузил все (70к), но потом после старта заново плата не запускается.
Не пойму как отлаживать. Подскажите пожалуйста.
KRS
Цитата(Аматер @ Oct 5 2010, 23:09) *
Не пойму как отлаживать. Подскажите пожалуйста.

Так же как и обычную программу - отладчиком smile.gif
Аматер
Цитата(KRS @ Oct 5 2010, 22:28) *
Так же как и обычную программу - отладчиком smile.gif

В отладчике вижу что все блоки из бинарного файла записываются. Но после сброса программа не запускается. Не могу понять почему. crying.gif
Аматер
У меня запись заработала, но через пень колоду -
- записал с помощью jtag
- убедился что содержимое по 0x14 адресу отличается для случая когда я записывааю jtag с содержимомо bin файла который получается из hex.
- исправил в bin файле эти 4 байта и загрузил его своим загрузчиком - все заработало.

Почему keil не устанавливает эти 4 байта сразу правильными в hex файле?
Может я еще где то торможу?
zuy
Цитата(Аматер @ Oct 6 2010, 17:22) *
У меня запись заработала, но через пень колоду -
- записал с помощью jtag
- убедился что содержимое по 0x14 адресу отличается для случая когда я записывааю jtag с содержимомо bin файла который получается из hex.
- исправил в bin файле эти 4 байта и загрузил его своим загрузчиком - все заработало.

Почему keil не устанавливает эти 4 байта сразу правильными в hex файле?
Может я еще где то торможу?


А почему Keil должен устанавливать эти 4 байта сразу правильно?
Гляньте в документации, что это за 4 байта по адресу 0x14, и работайте с ними как там написано, проблема уйдет.

Может я не прав, но как-то странно начинать работу с микроконтроллером не прочитав процедуру его запуска после ресета.
С таким подходом проблемы будут лезть одна за одной.
Аматер
Цитата(zuy @ Oct 7 2010, 10:10) *
А почему Keil должен устанавливать эти 4 байта сразу правильно?
Гляньте в документации, что это за 4 байта по адресу 0x14, и работайте с ними как там написано, проблема уйдет.

Может я не прав, но как-то странно начинать работу с микроконтроллером не прочитав процедуру его запуска после ресета.
С таким подходом проблемы будут лезть одна за одной.

То что в этих байтах контрольная сумма, я знал. А то что ее кайл не считает, не знал.
Но вообще я понял что загрузчик должен считать эту контрольную сумму. Почему то в примере так не сделали.
zuy
Цитата(Аматер @ Oct 7 2010, 12:50) *
То что в этих байтах контрольная сумма, я знал. А то что ее кайл не считает, не знал.
Но вообще я понял что загрузчик должен считать эту контрольную сумму. Почему то в примере так не сделали.


Ну или если более обобщенно, то ее никто не _должен_ считать. Она просто должна там быть, чтобы программа пользователя запустилась.
А вот как, и на каком этапе она там появится, это вы, как разработчик, сами и решайте.
Можно прописать в стартапе среди векторов, там кстати и место есть.
Можно в своем загрузчике считать и править если не верна.
Можно в своем флешере( если пользуетесь ) ее проверять и считать.
А проги от NXP для прошивки через UART, такие как Flash Magic, EthernetFlashUtility - они ее проверяют и сами ставят, как надо перед прошивкой.

В общем этот вопрос, вашего творчества smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.