Jump to content

    
pvo125

Кейл. Вставить crc бинарник.

Recommended Posts

Это не 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 файл то она попадает в бинарник, и всё начинает работать как надо.

Понимаю, что я что-то пропустил. Ткните, пож., меня носом в то место где читать ..

Спасибо.

Share this post


Link to post
Share on other sites
Однако чегой-то мой Кейл не желает вычислять эту контрольную сумму, а вовсе тупо складывает на её место в бинарник константу 0x5A5A5A5A из файла

Не желает, наверное, потому что его об этом и не просят? У Keil'а есть отдельная утилита для прописывания суммы.

Share this post


Link to post
Share on other sites
Не желает, наверное, потому что его об этом и не просят? У Keil'а есть отдельная утилита для прописывания суммы.

спасибо. :rolleyes:

к слову, IAR (7.50) , без бубна и костра делает всё как надо. это и вызвало смущение.

Share this post


Link to post
Share on other sites
к слову, IAR (7.50) , без бубна и костра делает всё как надо. это и вызвало смущение.

Странно: контрольная сумма векторов - это довольно убогое изобретение NXP, больше никем не используется. Без явного указания она появляться не должна.

Может, под 7.50 грузили каки-нибудь JTAG'ом, и не обратили внимание просто?

Share this post


Link to post
Share on other sites
Странно: контрольная сумма векторов - это довольно убогое изобретение NXP, больше никем не используется. Без явного указания она появляться не должна.

IAR её генерит когда в свойствах проекта в качестве целевого МК указываешь что-то из LPC. Если указать просто Cortex-M - не будет.

Share this post


Link to post
Share on other sites
Странно: контрольная сумма векторов - это довольно убогое изобретение NXP, больше никем не используется. Без явного указания она появляться не должна.

Может, под 7.50 грузили каки-нибудь JTAG'ом, и не обратили внимание просто?

Нет.

Взял машину (lpc4337), поставил IAR, всё заработало, поставил Keil, долго плясал с бубном, потом нашёл причину, задал здесь вопрос, проверил - работает.

После этого вернулся к IAR, убедился что он всё делает сам, включая Intel HEX (если крыжик поставить) с правильной контрольной суммой.

То есть JTAG тут рядом не лежит.

"О сколько нам открытий чудных.."

 

Что до того, должна ли контрольная сумма появляться, мне кажется так:

если в проекте выбрана машина NXP LPC4337, и если у этой машины в мануале написано, что без правильной контрольной суммы в области векторов ничего не будет работать,

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

 

IAR её генерит когда в свойствах проекта в качестве целевого МК указываешь что-то из LPC. Если указать просто Cortex-M - не будет.

Да, так.

Share this post


Link to post
Share on other sites
если в проекте выбрана машина NXP LPC4337...

То есть явно указана.

 

По мне, в проекте вообще не должны фигурировать "машины", а только ядра, но не буду занудствовать :)

Share this post


Link to post
Share on other sites

У двухядерных NXP читайте доки на проц внимательно, где КС по смещению 0x1C должна стоять, а где нет. Два банка по-разному.

______________

Отношение к этой безобидной КС у некоторых довольно странное. Это же не маджик црц, от которой может хвост вырасти.

Edited by GetSmart

Share this post


Link to post
Share on other sites

Подниму тему, дабы не создавать новую.

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

Просто смотрю кто как делает и не хочется верить, что такую простейшую операцию нельзя сделать без сторонних утилит. Нашел тут так, как хотелось бы сделать, но как такое скормить Keil-овскому компоновщику:unknw:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.