четверг, 27 декабря 2012 г.

Каверзные вопросы по установке и настройке софта для разработки на ARM



Не так давно, я начал осваивать микропроцессоры на базе ARM. Писать под них после слабеньких AVR одно удовольствие. Тут тебе и быстрое умножение, сдвиг. А если есть DSP-блок, так вообще мечта.
Но не обходится без трудностей. И, конечно, я расскажу о проблемах, которые пришлось решать по ходу освоения.
 Далее в программе  о том, что делать, если:
  • Не нашел понятную инструкцию по настройке IDE и отладочного софта.
  • Возникла ошибка при установке Code Sourcery в Ubuntu 
  • OpenOCD не дружит с отладчиком
  • Фирменный отладочный софт от SEGGER отказывается работать с вашим клоном JLink(например, MTLink)?




  • Несколько статей по настройке боевого комплекта для ARM.


Ubuntu + Eclipse + Code Sourcery + OpenOCD + j-link + ARM, или "Быстрый старт для сомневающихся"

Изучаем ARM. Собираем свою IDE для ARM (!)

Отладка STM32 в среде Eclipse+GCC+ST-Link

О том, где купить клон JLink за 23$

Об особенностях



  • Ошибка при установке Code Sourcery в Ubuntu


При установке Code Sourcery у пользователей Ubuntu может возникнуть небольшой ступор по поводу ошибки с shell. Это ничего, берём, внимательно читаем вывод и действуем. Необходимо сменить shell  по-умолчанию на нужный следующей командой

                       sudo dpkg-reconfigure-plow dash
                        после нужно ответить «Нет» на вопрос
                        «Установить dash как/bin/sh?»

и снова запустить установщик.
После установки, конечно, можно всё вернуть на место.
Ах да, если у вас 64-разрядная версия ОС, то вдобавок, необходимо ставить пакет ia32-libs. В стальном, установка, как правило, проходит успешно.


  • OpenOCD не всегда дружит с отладчиком

Итак, если вы собираетесь работать c каким-нибудь lpc1788 или ему подобными, то, пожалуй, начать будет трудно. А вот STM32 заработал почти сразу и на ура.

Для начинающих обычно встаёт вопрос о том, как же загрузить прошивку, чтобы вообще посмотреть работоспособность платы. Для начала можно воспользоваться следующим скриптом.

#!/bin/bash
# Try this to load hex file to your STM32(stm32f1x)
openocd -d0 -f interface/jlink.cfg -f target/stm32f1x.cfg -c init -c targets -c "halt" -c "flash write_image erase $1" -c "verify_image $1" -c "reset run" -c shutdown

Запуститите его с именем файла-прошивки в качестве параметра и всё будет ок. Естественно, вместо stm32f1x может быть другое имя файла, в зависимости от целевого процессора.

Кстати, мне так и не удалось корректно настроить openocd, чтобы он подружился с моим отладчиком и всегда стабильно функционировал. Поэтому, в некоторых случаях, пришлось использовать фирменный софт от SEGGER, но тут закралась ещё одна проблемка.


  • Софт от SEGGER отказывается работать с клоном JLink


При этом на экране возникает следующее:

The connected emulator is a J-Link clone.

SEGGER J-Link software may only be used with original
SEGGER products and authorized OEM products.
The use of the licensed software to operate SEGGER product clones is prohibited and illegal.


Опытным путём было установлено, что ругаются так, как правило, только последние версии. Производители ПО понемногу банят серийные номера устройств.
Из этой ситуации два выхода :
1) Перепрошить отладчик.
2) Взять старый софт.(Для моей ситуации сработал откат c 485 до версии 450i)

На этом всё. Если есть вопросы, пожелания или замечания - пишите.

1 комментарий:

  1. Добрый день, а с AVR больше не работаете? Ищу того кто может мне помочь разобраться. Никогда раньше с микроконтроллерами дело не имел. Куплены два и программатор, все хочу заняться, но не знаю с чего начать. Может посоветуете, где можно почитать для новичка, что и как?

    ОтветитьУдалить