Перейти к содержанию
    

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

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

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

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

спасибо. :rolleyes:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Нет.

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

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

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

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

 

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

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

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

 

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

Да, так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если в проекте выбрана машина NXP LPC4337...

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

______________

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

Изменено пользователем GetSmart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/14/2020 at 2:11 PM, another_one said:

подскажите пожалуйста, где можно достать ElfDwT?

Она идет в комплекте с keil'ом... C:\Keil_v5\ARM\BIN\ElfDwT.exe

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...