Jump to content

    
Sign in to follow this  
UniSoft

EWARM + bin файл...

Recommended Posts

Задача...

Есть проект, компилится, на выходе включено создание bin файла...

Далее в post-build этот бинарник подписывается, получаем новый бинарник, пусть будет project_signed.bin...

Так вот как заставить IAR загружать в контроллер именно этот файл вместо *.out? 

(Естественно, чтобы отладочную инфу брал из *.out, но грузил в контроллер именно указанный бинарный файл)

 

Пока что использую Visual Studio + VisualGDB + Keil compiler, там это легко реализуется,

target remote :$$SYS:GDB_PORT$$
mon reset
monitor halt
#load
monitor loadbin "$(TargetDir)\$(TargetFileNameWithoutExtension)_signed.bin", 0x08020000
monitor SWO EnableTarget 216000000 10000000 0x1 0
monitor reg sp = (0x08020000)
monitor reg pc = (0x08020004)
set *0xE0042004 = (*0xE0042004) | 0x00000007

А вот как подобное реализовать в IAR?

Share this post


Link to post
Share on other sites
2 hours ago, VladislavS said:

По идее вот на этой вкладке можно выбрать

Да это я видел, только толку мало...

Не понимает оно bin файлы совсем.

HEX файл принимает, но на вкладке Download нужно снять опцию Use Flash Loader(s), тогда загрузка производится средствами самого JLink...

Но сначала грузится *.out, а потом уже поверх указанный hex... Как отменить загрузку *.out пока не нашел.

Есть опция suppress download, но она подавляет все, включая эти extra image(s).

Так что вопрос все еще в силе... Может кто уже делал что-то подобное.

Share this post


Link to post
Share on other sites

Посмотри "C-SPY® Debugging Guide". Там много что написано. Во-первых, как работает система макросов, когда какие вызываются автоматически при старте отладки, как их вручную вызывать. Во-вторых, посмотри про функции __loadImage и другие для работы с файлами и памятью. Уверен,  что что-нибудь подберёшь под твои задачи. Там хоть побайтово можно из файла в память и обратно данные гонять.

Share this post


Link to post
Share on other sites
14 hours ago, UniSoft said:

Не понимает оно bin файлы совсем

JFlash понимает и знает командную строку. Настройте проект JFlash. Добавьте в постбилд после подписи что-то типа этого:

@ECHO OFF
ECHO Open a project and data file, start auto processing and exit
start /min /wait "J-Flash" "C:\Program Files\SEGGER\JLink_V510d\JFlash.exe" -openprjE:\projects\STM32F030F4.jflash -auto -startapp -exit
IF ERRORLEVEL 1 goto ERROR
goto END
:ERROR
ECHO J-Flash ARM:  Error!
pause
:END
  

 

Share this post


Link to post
Share on other sites
18 hours ago, alag57 said:

JFlash понимает и знает командную строку. Настройте проект JFlash. Добавьте в постбилд...

Так и JLink.exe понимает, но это же не вариант в постбилде шить устройство.

20 hours ago, VladislavS said:

Посмотри "C-SPY® Debugging Guide". Там много что написано. Во-первых, как работает система макросов, когда какие вызываются автоматически при старте отладки, как их вручную вызывать. Во-вторых, посмотри про функции __loadImage и другие для работы с файлами и памятью. Уверен,  что что-нибудь подберёшь под твои задачи. Там хоть побайтово можно из файла в память и обратно данные гонять.

Прежде чем задать вопрос я это все прочитал, но не нашел ничего подходящего.

__loadImage это то-же самое, что вы привели на скриншоте.

В принципе как-то работает через ж..у, если указать hex файл, но и только двойная прошивка, сначала пишет *.out, а поверх этот hex...

Не нравится мне такой поход.

 

Ну да ладно, ну его на хрен этот IAR... не зашел он мне как-то...

Во первых, это самый наихудший редактор (IDE), я уж думал с 2014 года (как написал кейген к нему) что-то улучшилось, но увы нет...

Очень медленный компилятор! Но создает более оптимальный код (это единственный плюс).

 

 

Share this post


Link to post
Share on other sites
3 hours ago, UniSoft said:

Так и JLink.exe понимает, но это же не вариант в постбилде шить устройство.

Ну так шейте из JFlash, он еще и защиту поставит. Не понятно, что вы хотите сделать и почему именно IAR должен записать.

И даже в IAR есть Tool->Configure Tool. Шейте оттуда.

3 hours ago, UniSoft said:

Очень медленный компилятор!

У меня проекты делаются сразу в Keil, IAR и GCC, основная работа в Keil. Cравнивал с Keil, IAR раза в 4 быстрее на debug версии,

что важно при отладке, в release Keil быстрее на 10%.

Share this post


Link to post
Share on other sites
26 minutes ago, alag57 said:

Не понятно, что вы хотите сделать и почему именно IAR должен записать.

Для отладки... очевидно же...

Что-то отредактировал, поставил бряки/метки/printf, жмакнул отладку и отлаживай, без лишних телодвижений с отдельными тулзами.

Share this post


Link to post
Share on other sites
4 часа назад, UniSoft сказал:

но и только двойная прошивка, сначала пишет *.out, а поверх этот hex...

Странно. В настройках IDE убираете всю прошивку вообще. Подключаете макрос, в котором прошиваете подписанный образ, а затем .out с опцией debugInfoOnly.

3 часа назад, UniSoft сказал:

Очень медленный компилятор!

Ну в этом то IAR трудно обвинить. А уж слово "очень" тут вообще неуместно.

3 часа назад, UniSoft сказал:

Но создает более оптимальный код (это единственный плюс).

Я как и alag57 в последнее время собираю свои проекты в Keil, IAR и GCC. 9.02.2020 отдать какому-то из компиляторов преимущество затрудняюсь. В чём-то один лучше, в чём-то другой. ARM Compiler V6 очень сильно продвинулся и на сегодня, я бы сказал, обошёл IAR на вираже.

4 часа назад, UniSoft сказал:

Ну да ладно, ну его на хрен этот IAR... не зашел он мне как-то...

Ну это дело привычки и вкуса, тут спорить бесполезно :) Однако, я с IAR больше 15 лет знаком и он всегда был стабильной рабочей лошадкой. С хорошей документацией, поддержкой современных камней, предсказуемым результатом. Когда нужно ехать, а не шашечки.

 

Share this post


Link to post
Share on other sites
On 2/7/2020 at 6:56 PM, UniSoft said:

на выходе включено создание bin файла...

 

5 minutes ago, UniSoft said:

Для отладки... очевидно же...

Bin для отладки? Неочевидно.

Share this post


Link to post
Share on other sites
3 minutes ago, VladislavS said:

Прошивка подписывается, делать это в bin логично.

А отлаживать в bin логично?

Edited by alag57

Share this post


Link to post
Share on other sites
5 minutes ago, VladislavS said:

Странно. В настройках IDE убираете всю прошивку вообще. Подключаете макрос, в котором прошиваете подписанный образ, а затем .out с опцией debugInfoOnly.

Так там в настройках только одна опция для отключения прошивки "suppress download" ...

установив ее, оно подавляет всю запись, даже из макроса. а *.out он итак подхватывает, даже с подавленной загрузкой.

 

Share this post


Link to post
Share on other sites
16 минут назад, alag57 сказал:

А отлаживать в bin логичено?

Какая разница в чём образ прошивки и как он попал в память? Берём отладочную информацию и отлаживаем. Там даже кнопка есть "Debug without downloading".

 

UniSoft, а вы в RAM или Flash отлаживаетесь?

 

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.

Sign in to follow this