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

 
 
 
Reply to this topicStart new topic
> lpc11xx checksum
_Артём_
сообщение Aug 6 2012, 15:30
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



День добрый.
Сегодня заметил, что build примеров от NXP заканчивается строкой:
Цитата
Created checksum 0x39d6ffef in canopen_onchip.bin at offset 0x1c

Какой-такой checksum?
Где про неё сказано?
Что будет если её не сгенерить?

Спасибо.
Go to the top of the page
 
+Quote Post
maksimp
сообщение Aug 6 2012, 19:03
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Цитата(_Артём_ @ Aug 6 2012, 19:30) *
Какой-такой checksum?
Где про неё сказано?

Сказано в User manual на процессор. Просто ищите "checksum" по PDF.
Цитата(_Артём_ @ Aug 6 2012, 19:30) *
Что будет если её не сгенерить?

Тогда встроенный загрузчик не передаст управление на программу пользователя:
Цитата
Criterion for Valid User Code
The reserved Cortex-M3 exception vector location 7 (offset 0x 001C in the vector table)
should contain the 2’s complement of the check-sum of table entries 0 through 6. This
causes the checksum of the first 8 table entries to be 0. The boot loader code checksums
the first 8 locations in sector 0 of the flash. If the result is 0, then execution control is
transferred to the user code.

Иначе - активизирует прошивка по последовательному порту:
Цитата
If the signature is not valid, the auto-baud routine synchronizes with the host via serial port
0. The host should send a “?” (0x3F) as a synchronization character and wait for a
response. The host side serial port settings should be 8 data bits, 1 stop bit and no parity. ...

Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 6 2012, 19:05
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 6 2012, 22:32
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Спасибо за разъяснения.

Как-то я не ожидал таких фишек, а 26-ой раздел ДШ как-то пропустил. Да и программы работали без проблем, хотя в нужном месте всегда нули были.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 7 2012, 01:47
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (_Артём_ @ Aug 7 2012, 01:32) *
хотя в нужном месте всегда нули были.
А как эти программ заливались? ИАР подставляет контрольную сумму молча перед отладкой, FlashMagic тоже добавляет ее перед прошивкой. Возможно, и ваш инструментарий добавлял ее незаметно.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 7 2012, 10:09
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Сергей Борщ @ Aug 7 2012, 04:47) *
А как эти программ заливались?

Вроде всего три варианта:
FlashMagic
В отладку LPCXppresso
Через пункт меню LPCXppresso - Program flash

Цитата(Сергей Борщ @ Aug 7 2012, 04:47) *
ИАР подставляет контрольную сумму молча перед отладкой, FlashMagic тоже добавляет ее перед прошивкой. Возможно, и ваш инструментарий добавлял ее незаметно.

Наверное добавляет.
Попробую увидеть сумму через простмотр памяти в отладчике.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 8 2012, 12:23
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(_Артём_ @ Aug 7 2012, 13:09) *
Наверное добавляет.
Попробую увидеть сумму через простмотр памяти в отладчике.

Проверил: по адресу 0x1C не ноль,а число дающее в сумме с предыдущими семью словами 0x100000000.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 29th June 2025 - 13:46
Рейтинг@Mail.ru


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