Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Новичковые вопросы по IAR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Gistereziz
По сути дело вот в чём: нужно загрузить в STM32F101 программу, посредством JLink.exe. При работе с IAR IDE данная программа замечательно грузится и исполняется (как я понимаю, IAR как раз использует JLink для загрузки). Теперь возникла необходимость не используя IAR IDE загрузить программу напрямую через JLink. Вместе с IAR'ом поставлялись такие вещи, как компилятор iccarm.exe, ilinkarm.exe, objcopy.exe. С их помощью мне удалось слепить некий бинарник, который, как я полагаю, должен бы без проблем грузиться в контроллер. Но вот с чем я сталкиваюсь:
При запуске Jlink.exe подключение вроде как распознается. Далее никакие отладочные команды не выполняются адекватно, пока я не выполню следующие две:
r - резет
regs - показать содержимое регистров (пришел к этому открытию эмпирическим путем)

после этого начинают выполняться такие команды, как h - halt; g - go; s - step. Начинает читаться память из любого места, притом читается правильно - поскольку содежимое загруженной программы мне известно до бита. При всем при этом запись в память не работает - ни для отдельных байт через команды w1, w2, w4, ни через loadbin. Запись не проходит, в консоли показываются ошибки. Вопрос - в чем тут может быть дело? Может быть надо какие-то другие магические команды в JLink ввести? Есть также подозрение, что память может быть почему-то защищена от записи, хотя было бы странно.
Также приветствуются любые пояснения по поводу того, как эта программа (JLink) вообще должна работать и что уметь.

В общем, я очень плохо во всем этом разбираюсь (как мне кажется) и прошу любой помощи!
zltigo
То, что нужно, называется JMem.
Gistereziz
Стал искать JMem, нашел JFlash. Сейчас ничего проверить не могу, но создается впечатление, что JMem предназначен только для просмотра содержимого памяти, а вот JFlash - это уже загрузчик.
Выходит, что я немного неправильно думал о JLink - получается, что он вообще не предназначен для загрузки программы в контроллер?

И еще - JFlash программа совсем не консольная. А консольных версий таких загрузчиков не существует ли?
zltigo
Цитата(Gistereziz @ Apr 27 2010, 23:00) *
Стал искать JMem,

Тьфу, ошибся - JFlash.
Цитата
И еще - JFlash программа совсем не консольная. А консольных версий таких загрузчиков не существует ли?

Командная строка с достаточными наворотами есть.
А хочется другой - напишите по своему вкусу.


Цитата(Gistereziz @ Apr 27 2010, 23:00) *
Выходит, что я немного неправильно думал о JLink - получается, что он вообще не предназначен для загрузки программы в контроллер?

Минималистичный халявный отладчик для демонстрации принципиальной работоспособности JLink.
Gistereziz
Уже несколько дней безуспешно пытаюсь разобраться с использованием разных тулов, которые поставляются вместе с IAR.
У меня есть вполне рабочий проект, из IAR IDE он успешно загружается в микроконтроллер STM32F101 после нажания кнопки "Download and Debug". Теперь пытаюсь загрузить программу не используя IAR IDE, а только отдельные консольные приложения, которые вместе с IDE идут. Полагаю, что это возможно, поскольку IDE скорее всего их и должно использовать при загрузке и дебаге.
Итак, имеется проект со всеми исходными файлами. Из этого проекта мне удалось сделать некий бинарник подходящего размера - с помощью применения компилятора iccarm.exe, линкера ilinkarm.exe и преобразователя типов objcopy.exe. Первая подозрительная вещь - бинарник result.bin отличается от .sim файла, который генерится в результате загрузки из IDE. Отличие только в начале и в конце файла, основная часть идентична. Есть подозрение, что что-то упущено. Вопрос: в чем различие bin и sim файлов? Оба похожи на готовый к загрузке программный код, но какой именно тип IAR использует для загрузки?
Далее я обнаружил некие exe-шники с названиями iarbuild.exe и CSpyBat. Второй - это похоже симуляторный отладчик, соответственно о нем и думать не хочется. Первый похож на нечто, объединяющее функции iccarm.exe, ilinkarm.exe и objcopy.exe - притом на выход он похоже должен выдавать .sim файл, что наталкивает на мысль, что именно его IAE IDE использует при билде. Но тогда непонятно, зачем вообще в программный пакет включены такие вещи, как iccarm и ilinkarm? При этом, iarbuild.exe не работает - наотрез отказывается видеть файл конфигурации .icf. Я в тупике, почему это может происходить. Если у кого-то были подобные проблемы - поделитесь пожалуйста опытом.
Следующий этап. Положим, мне удалось справиться с iarbuild, сделать .sim файл. Надо его загрузить в контроллер. ВОПРОС: Что использует IAR для загрузки программы? Говорят, что загружают программы через JFlash - но его нету в комплекте IAR, поэтому этот вариант отпадает. Вижу JLink, но про него говорят, что это просто отладчик. Может ли JLink.exe загружать программу в микроконтроллер? Я в списке его команд вижу loadbin, но меня сомнения разбирают, что загрузка программы это так просто, при том что в JLink не нужно подключать никакие файлы с конфигурацией целевого процессора, с конфигурациями и т.п.
И самый главный вопрос: Неужели все в самом деле так сложно и запутано, и при этом непонятно, куда смотреть, чтобы хоть что-то понять, изначально ничего не понимая?

Очень прошу во всех местах, где я написал явный бред, поправить меня. Если можно, поменьше отсылок к документации - у меня от нее уже голова скоро треснет - и все равно реальные проблемы не решаются.


Короче говоря, вопрос можно так поставить:
Имеется рабочий проект, контроллер STM32F101CB, рабочий программатор ARM-JTAG-EW. Какие действия нужно произвести, чтобы, не используя IAR IDE, а только всякие консольки, загрузить программу в микроконтроллер?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.