Jump to content

    

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

Проще за 30-60 минут написать нужную.

Share this post


Link to post
Share on other sites
Это не 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this