реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как отлаживать загрузчик в LPC2368, Взял загрузчик из примера AN10835, грузит но не работает.
Аматер
сообщение Oct 5 2010, 19:09
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616



Взял загрузчик из примера AN10835 от NXP, он грузит, но не работает. Я практически без изменений взял функцию для x modem, поставил что она размещается в ram, и запускаю из своей программы.
x modem работает, показывает что загрузил все (70к), но потом после старта заново плата не запускается.
Не пойму как отлаживать. Подскажите пожалуйста.
Go to the top of the page
 
+Quote Post
KRS
сообщение Oct 5 2010, 19:28
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Аматер @ Oct 5 2010, 23:09) *
Не пойму как отлаживать. Подскажите пожалуйста.

Так же как и обычную программу - отладчиком smile.gif
Go to the top of the page
 
+Quote Post
Аматер
сообщение Oct 6 2010, 12:39
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616



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

В отладчике вижу что все блоки из бинарного файла записываются. Но после сброса программа не запускается. Не могу понять почему. crying.gif
Go to the top of the page
 
+Quote Post
Аматер
сообщение Oct 6 2010, 14:22
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616



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

Почему keil не устанавливает эти 4 байта сразу правильными в hex файле?
Может я еще где то торможу?
Go to the top of the page
 
+Quote Post
zuy
сообщение Oct 7 2010, 07:10
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593



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

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


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

Может я не прав, но как-то странно начинать работу с микроконтроллером не прочитав процедуру его запуска после ресета.
С таким подходом проблемы будут лезть одна за одной.
Go to the top of the page
 
+Quote Post
Аматер
сообщение Oct 7 2010, 09:50
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616



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

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

То что в этих байтах контрольная сумма, я знал. А то что ее кайл не считает, не знал.
Но вообще я понял что загрузчик должен считать эту контрольную сумму. Почему то в примере так не сделали.
Go to the top of the page
 
+Quote Post
zuy
сообщение Oct 7 2010, 10:12
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593



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


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

В общем этот вопрос, вашего творчества smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01455 секунд с 7
ELECTRONIX ©2004-2016