Уже несколько дней безуспешно пытаюсь разобраться с использованием разных тулов, которые поставляются вместе с 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, а только всякие консольки, загрузить программу в микроконтроллер?
|