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

 
 
> Кейл. Вставить crc бинарник.
pvo125
сообщение Oct 25 2016, 02:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 9-04-14
Из: Черногорск Хакасия
Пользователь №: 81 299



Здравствуйте Все! Пытаюсь сделать следующее: хочу после компиляции и сборки чтобы кейл вычислял crc и записывал эту сумму в сам файл bin.
Нашел инструкцию в которой написано что нужно добавить options for target->user->Run user programs after Build/Rebuild сначала команду
Run#1
$K\ARM\BIN\ElfDwT.exe output\test.axf BASEADDRESS(0x08000000) которая вычислит crc кода и запишет в место в стартапе по адресу
0x0800 000+0x1c(для BASEADDRESS=0x08000000 ).
Далее
Run#2
$K\ARM\ARMCC\BIN\fromelf.exe --bin -o test.bin !L делаем из axf бинарник уже со встроенной crc.

Все получается открываю бинарник там вместо вектора в стартапе (где обычно зарезервировано 0 со смещением 0x1С) находится crc 0xBFFC824A.
Все вроде хорошо но только эта сумма не совпадает и не понятно как кейл ее считает. Проверяю так: Просто делаю бинарник в кейл с помошью такой же
вкладки но только использую одну fromelf без предварительно вставленной crc. Затем открываю в редакторе hex (Hex Editor ) и смотрю crc не совпадает.
Пробовал онлайн калькулятор crc для файлов результат аналогичный. Причем hex редактор совпадает с онлайн суммой а вот кейлом нет. Разъясните кто знает!
Хотел прикрепить бинарник пишет мне нельзя загружать такой тип файлов.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Oct 25 2016, 05:20
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Это не CRC, а контрольная сумма, и не всего бинарника, а только векторов. Специфичная для LPC вещь, описание можно найти в документации на процессор.

0 - 0x10001600 - 0x800028d - 0x800cbb9 - 0x8009d21 - 0x800cbb5 - 0x8001015 - 0x8012085 = 0xbffc824a
Go to the top of the page
 
+Quote Post
svss
сообщение Nov 9 2016, 07:42
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 231
Регистрация: 19-12-08
Из: Новосибирск
Пользователь №: 42 594



Цитата(aaarrr @ Oct 25 2016, 11:20) *
Это не CRC, а контрольная сумма, и не всего бинарника, а только векторов. Специфичная для LPC вещь, описание можно найти в документации на процессор.
0 - 0x10001600 - 0x800028d - 0x800cbb9 - 0x8009d21 - 0x800cbb5 - 0x8001015 - 0x8012085 = 0xbffc824a


А нельзя ли чуть подробнее про это..
То есть, да, в документации на процессор написано, что Boot проверяет сумму первых восьми из области векторов на ноль.
Однако чегой-то мой Кейл не желает вычислять эту контрольную сумму, а вовсе тупо складывает на её место в бинарник константу 0x5A5A5A5A из файла startup_lpc43xx.s.
(у меня LPC4337 Cortex M4 машина и Keil 5.12)
В результате, понятно, shadow регистр не инициализирован и процессор просто виснет.

Однако если я руками вписываю правильную контрольную сумму в startup_xx.s файл то она попадает в бинарник, и всё начинает работать как надо.
Понимаю, что я что-то пропустил. Ткните, пож., меня носом в то место где читать ..
Спасибо.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 9 2016, 07:51
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(svss @ Nov 9 2016, 10:42) *
Однако чегой-то мой Кейл не желает вычислять эту контрольную сумму, а вовсе тупо складывает на её место в бинарник константу 0x5A5A5A5A из файла

Не желает, наверное, потому что его об этом и не просят? У Keil'а есть отдельная утилита для прописывания суммы.
Go to the top of the page
 
+Quote Post
svss
сообщение Nov 10 2016, 04:39
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 231
Регистрация: 19-12-08
Из: Новосибирск
Пользователь №: 42 594



Цитата(aaarrr @ Nov 9 2016, 13:51) *
Не желает, наверное, потому что его об этом и не просят? У Keil'а есть отдельная утилита для прописывания суммы.

спасибо. rolleyes.gif
к слову, IAR (7.50) , без бубна и костра делает всё как надо. это и вызвало смущение.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- pvo125   Кейл. Вставить crc бинарник.   Oct 25 2016, 02:49
- - aaarrr   Цитата(pvo125 @ Oct 25 2016, 05:49) Хотел...   Oct 25 2016, 04:42
- - pvo125   Файл test.bin открыт в редакторе hex. Видно что cr...   Oct 25 2016, 05:03
|- - aaarrr   Цитата(svss @ Nov 10 2016, 07:39) к слову...   Nov 10 2016, 06:34
|- - jcxz   Цитата(aaarrr @ Nov 10 2016, 09:34) Стран...   Nov 10 2016, 07:13
|- - svss   Цитата(aaarrr @ Nov 10 2016, 12:34) Стран...   Nov 11 2016, 02:50
|- - aaarrr   Цитата(svss @ Nov 11 2016, 05:50) если в ...   Nov 11 2016, 04:54
- - ViKo   Когда Кейл вычислил CRC, ее нельзя записывать в то...   Oct 25 2016, 05:24
- - uriy   ЦитатаХотел прикрепить бинарник пишет мне нельзя з...   Oct 25 2016, 05:25
- - pvo125   ЦитатаЭто не CRC, а контрольная сумма, и не всего ...   Oct 25 2016, 06:37
- - nvn   написать свою программу на ПК, чтоб она считала ну...   Oct 25 2016, 06:53
|- - scifi   Цитата(nvn @ Oct 25 2016, 09:53) написать...   Oct 25 2016, 07:25
|- - mdmitry   Цитата(scifi @ Oct 25 2016, 11:25) Эта пр...   Oct 25 2016, 09:21
- - pvo125   Run #1 $K\ARM\ARMCC\BIN\f...   Oct 25 2016, 15:16
|- - scifi   Цитата(pvo125 @ Oct 25 2016, 18:16) Подск...   Oct 25 2016, 15:51
- - pvo125   Точно!!! Спасибо Вам большое долго ...   Oct 25 2016, 16:55
- - scifi   Хорошо, что всё хорошо. Вообще-то srec_cat многое ...   Oct 25 2016, 19:16
|- - aaarrr   Цитата(scifi @ Oct 25 2016, 22:16) Вообще...   Oct 25 2016, 20:06
- - x893   Проще за 30-60 минут написать нужную.   Oct 25 2016, 20:28
- - GetSmart   У двухядерных NXP читайте доки на проц внимательно...   Nov 11 2016, 08:40


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

 


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


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