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

Задача...

Есть проект, компилится, на выходе включено создание 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?

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


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

2 hours ago, VladislavS said:

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

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

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

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

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

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

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

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


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

У IAR есть система макросов. Утром гляну могут ли они что-то похожее.

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


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

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

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


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

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
  

 

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


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

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 года (как написал кейген к нему) что-то улучшилось, но увы нет...

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

 

 

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


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

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%.

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


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

26 minutes ago, alag57 said:

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

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

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

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


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

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 лет знаком и он всегда был стабильной рабочей лошадкой. С хорошей документацией, поддержкой современных камней, предсказуемым результатом. Когда нужно ехать, а не шашечки.

 

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


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

On 2/7/2020 at 6:56 PM, UniSoft said:

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

 

5 minutes ago, UniSoft said:

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

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

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


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

Только что, alag57 сказал:

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

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

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


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

3 minutes ago, VladislavS said:

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

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

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

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


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

5 minutes ago, VladislavS said:

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

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

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

 

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


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

16 минут назад, alag57 сказал:

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

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

 

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

 

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


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

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

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

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

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

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

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

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

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

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