UniSoft 15 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба Задача... Есть проект, компилится, на выходе включено создание 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? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба По идее вот на этой вкладке можно выбрать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
UniSoft 15 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба 2 hours ago, VladislavS said: По идее вот на этой вкладке можно выбрать Да это я видел, только толку мало... Не понимает оно bin файлы совсем. HEX файл принимает, но на вкладке Download нужно снять опцию Use Flash Loader(s), тогда загрузка производится средствами самого JLink... Но сначала грузится *.out, а потом уже поверх указанный hex... Как отменить загрузку *.out пока не нашел. Есть опция suppress download, но она подавляет все, включая эти extra image(s). Так что вопрос все еще в силе... Может кто уже делал что-то подобное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба У IAR есть система макросов. Утром гляну могут ли они что-то похожее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 8 февраля, 2020 Опубликовано 8 февраля, 2020 · Жалоба Посмотри "C-SPY® Debugging Guide". Там много что написано. Во-первых, как работает система макросов, когда какие вызываются автоматически при старте отладки, как их вручную вызывать. Во-вторых, посмотри про функции __loadImage и другие для работы с файлами и памятью. Уверен, что что-нибудь подберёшь под твои задачи. Там хоть побайтово можно из файла в память и обратно данные гонять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alag57 0 8 февраля, 2020 Опубликовано 8 февраля, 2020 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
UniSoft 15 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 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 года (как написал кейген к нему) что-то улучшилось, но увы нет... Очень медленный компилятор! Но создает более оптимальный код (это единственный плюс). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alag57 0 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 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%. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
UniSoft 15 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 26 minutes ago, alag57 said: Не понятно, что вы хотите сделать и почему именно IAR должен записать. Для отладки... очевидно же... Что-то отредактировал, поставил бряки/метки/printf, жмакнул отладку и отлаживай, без лишних телодвижений с отдельными тулзами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 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 лет знаком и он всегда был стабильной рабочей лошадкой. С хорошей документацией, поддержкой современных камней, предсказуемым результатом. Когда нужно ехать, а не шашечки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alag57 0 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба On 2/7/2020 at 6:56 PM, UniSoft said: на выходе включено создание bin файла... 5 minutes ago, UniSoft said: Для отладки... очевидно же... Bin для отладки? Неочевидно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба Только что, alag57 сказал: Bin для отладки? Неочевидно. Почитайте первое сообщение. Прошивка подписывается, делать это в bin логично. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alag57 0 9 февраля, 2020 Опубликовано 9 февраля, 2020 (изменено) · Жалоба 3 minutes ago, VladislavS said: Прошивка подписывается, делать это в bin логично. А отлаживать в bin логично? Изменено 9 февраля, 2020 пользователем alag57 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
UniSoft 15 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 5 minutes ago, VladislavS said: Странно. В настройках IDE убираете всю прошивку вообще. Подключаете макрос, в котором прошиваете подписанный образ, а затем .out с опцией debugInfoOnly. Так там в настройках только одна опция для отключения прошивки "suppress download" ... установив ее, оно подавляет всю запись, даже из макроса. а *.out он итак подхватывает, даже с подавленной загрузкой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 16 минут назад, alag57 сказал: А отлаживать в bin логичено? Какая разница в чём образ прошивки и как он попал в память? Берём отладочную информацию и отлаживаем. Там даже кнопка есть "Debug without downloading". UniSoft, а вы в RAM или Flash отлаживаетесь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться