Jump to content

    

Создание файла прошивки в KEIL, кратным 128байтам

Необходима прошивка, размер файла которой будет кратен 128байтам, т.е необходимо после сборки проекта в Keil сформировать BIN кратный 128. Сейчас для генерации BIN использую встроенную тулзу fromelf. Попытался добавить параметры в командную строку: --bincombined --bincombined_base=0x8000000 --bincombined_padding=128,0xFF, но походу ее разработчики предусмотрели ограничение на параметр bincombined_padding в размере 4. На данный момент приходится сначала генерить BIN, а после увеличивать его размер в winhex, что со временем уже немного надоедает. Возможно кто то знает нормальное решение, желательно с командной строкой, так, как хочется напрямую в действия КЕЙЛа прописать.

 

Share this post


Link to post
Share on other sites

А что мешает написать программу для этого ?

Share this post


Link to post
Share on other sites
А что мешает написать программу для этого ?

Именно так и я поступал - консольная прога, которая принимает параметры в командной строке. Кстати, это была моя первая прога под Qt :)

Сама прога весьма функциональная, ее цели и задачи я уже не буду тут расписывать ;)

 

У меня это было настроено так, что эта прога вызывалась автоматом сразу после успешной компиляции и сборки, прямо из среды (Keil позволяет так делать).

Очень удобно оказалось - весь консольный вывод, который формирует прога, перехватывается Keil и вываливается в ее окне output.

Share this post


Link to post
Share on other sites

x893

Написать прогу, это будет следующий этап, пока смотрю готовые варианты.

scifi

Тулзой SRecord я пользуюсь для формирования файлов, для дальнейшей отправки по воздуху, неужто в ней есть функция по добиванию конца прошивки мусором, до значения кратного 128?

Share this post


Link to post
Share on other sites
Тулзой SRecord я пользуюсь для формирования файлов, для дальнейшей отправки по воздуху, неужто в ней есть функция по добиванию конца прошивки мусором, до значения кратного 128?

Там много чего есть. Если не ошибаюсь, так:

srec_cat infile.bin -binary -fill 0xFF -within infile.bin -binary -range-padding 128 -o outfile.bin -binary

Сам не пробовал, так что если ваш котик погибнет, я не виноват.

Share this post


Link to post
Share on other sites

Не погибнет, он живучий :) у меня SWD есть на такой случай. Спасибо, сейчас попробую

 

Share this post


Link to post
Share on other sites
scifi

неужто в ней есть функция по добиванию конца прошивки мусором, до значения кратного 128?

там есть функция для создания функции :biggrin: , а уж дописать пару байт.. СС2430 заставил изучить эту утиль подробно..

Share this post


Link to post
Share on other sites
Там много чего есть. Если не ошибаюсь, так:

 

Сам не пробовал, так что если ваш котик погибнет, я не виноват.

Сработало на 100 %, попробовал на 2х разных файлах. Srecord действительно классная прога, я даже не задумывался о ее потенциале, впервые она мне помогла привести в порядок вывод файлов моторола-срекорд, а здесь оказывается она и такое может. Огромное спасибо, что подсказали!

 

там есть функция для создания функции :biggrin: , а уж дописать пару байт.. СС2430 заставил изучить эту утиль подробно..

И писать не пришлось :) Все уже придумано до нас.

Share this post


Link to post
Share on other sites
там есть функция для создания функции

Будьте добры, расскажите поподробнее. Очень интересно.

Share this post


Link to post
Share on other sites
Будьте добры, расскажите поподробнее. Очень интересно.

Ну это образно, смайлик ведь поставил, типа функционал у программы большой.

Share this post


Link to post
Share on other sites

Кстати: не рекламы ради, но IAR легко и непринуждённо позволяет сделать любой желаемый размер образа (в пределах разумного) без дополнительных костылей.

Share this post


Link to post
Share on other sites
Ну это образно, смайлик ведь поставил, типа функционал у программы большой.

В наши времена засунуть интерпретатор скриптов куда угодно - раз плюнуть. Так что шутка получилась слишком серьёзная. А я грешным делом подумал, что что-то пропустил :biggrin:

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