Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отладчик для Coocox
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
lehacheb
Здравствуйе!
Я пытаюсь перейти на Coocox, процессор STM32F103 программа компилируется, но в режим отладки не входит.
У уменя отладчик J-Link, такой отладчик есть в списке поддерживаемых устройств в Coocox, дрова от SEGGER,
но он у меня чисто IARовский, такой как на картинке во вложении. С IAR он нормально работает, но в кокосе никак
нормально работать не хочет. И меня берут сомнения, толи я не так настроил что-то, то ли такой отладчик с кокосом
однозначно работать не будет, а только с IAR. И что-то нужно преобретать другое, типа ST-Link или еще что-то?
Obam
Если есть IAR c IAR-link на фига обращать внимание на китайчатину? Это по делу…

А так COOCOXовцы предлагают либо купить, либо самому сделать CoolinkEx.
RuSTA
Как вариант можете библиотеки отладчика переместить в папку с Coocox.
juvf
Я не смог в кокосе поднять джилинк. Как вариант eclipse +IAR plugin. Кокос - это эклипс с рюшечками и оборочками. IAR plugin - теже рюшечки, только для иара. IAR plugin добавляет C-SPY Debugger который прекрасно работает с J-Link-ом
uriy
Китайский jlink у меня работает с кокосом.
Jlink купленный на алиэкспресе баксов за 15.
St-link есть оригинальный и есть китайский.
Тоже работают. Но на одном компе начались какие то странные проблемы. То он говорит что не может стереть флешку. То просто не может зайти в дебаг.
lehacheb
Цитата(juvf @ Oct 16 2015, 11:07) *
Я не смог в кокосе поднять джилинк. Как вариант eclipse +IAR plugin. Кокос - это эклипс с рюшечками и оборочками. IAR plugin - теже рюшечки, только для иара. IAR plugin добавляет C-SPY Debugger который прекрасно работает с J-Link-ом

Я установил эклипс и установил IAR plugin, но у меня GNU Tools ARM Embedded, но я не могу их объединить, как раз рюшечек и оборочек не хватает. В кокосе компилировалось, а тут требует makefile и берет его совсем из другого компилятора, установленного у меня на компе и естественно выдает ошибки. Я не профессиональный программист, в линкерах и мейкфайлах плохо разбираюсь. Мне бы чтобы компилировалось да соединялось с отладчиком и заливалось в процессор и входило в режим отладки, а там уж я разберусь, но не получается. Что мне лучше сделать? Перейти на другой компилятор? Взять другое отладочное средство? Или как-то настоить эксипс? Или проще использовать кокос? Но jlink в кокосе все равно не видит.
juvf
Цитата
Я установил эклипс и установил IAR plugin, но у меня GNU Tools ARM Embedded, но я не могу их объединить, как раз рюшечек и оборочек не хватает.
этого мало. IAR плагин позволит эклипсу компилировать и отлаживаться. Эклипс будет использовать иаровский компилятор iccarm (не GNU gcc) и отлаживаться через C-SPY Debugger (который, как я понял входит в EW IAR). Т.е. для работы эклипса с иаровским компилятором через иаровский плуг нужен сам иар. в эклипсе нужно указать Path to the IAR Embedded Workbench IDE installation directory. Ни каких makefile-ов руками писать не нужно.
Если вы хотите компилировать проекты в эклипсе компилятором gnu gcc, то иар-плуг вам не поможет и он и не нужен.

Проще нестроить эклипс. ИМХО. Я так понял у вас есть EW IAR и эклипс с плугом IAR. тогда при создании нового проекта должно быть как на рисунке, создание Executable (IAR). Не требуется ни каких мэкфайлов. Должен пустой проект скомпилиться "изкаробки". Отладчик нужно будет настроить, пару нужных галочек отметить.

P.s. у меня эклипс 64-битный не работал. На 64-х битной win-7 я использую эклипс 32.
lehacheb
А не подскажите, как в эклипс указать области и размер ROM и RAM и расположение векторов прерывания? Никак не могу найти, у меня получается, что программа компилируется, отладчик видит, и даже загружает программу, но из дизассемблера видно, что пишет все по адресу 0х0000 0000 вместо 0х0800 0000 (Flash) и потом выдает ошибку.
juvf
Цитата(lehacheb @ Oct 26 2015, 17:49) *
А не подскажите, как в эклипс указать области и размер ROM и RAM и расположение векторов прерывания?
Вот тут у эклипса рюшки не хватает, по крайней мере я её не нашел. Вектора прерывания вообще ни как не задаются, они по мойму и в EW IAR не задаются. А области памяти.... в эклипсе в свойствах проекта C/C++ Build->IAR Linker for ARM->Configuration->Linker configuration file: - тут указываете свой конфигурационный файл с указанием областей памяти, например ${ProjDirPath}\stm32f401xC.icf
Файл stm32f401xC.icf можно отредактировать любым текстовым файлом, или можно создать пустой проект в иаре и в нем в гуях задать области памяти и сохранить и в нужный *.icf, после полученный конфиг подключить к проекту эклипса.
Obam
Цитата(juvf @ Oct 27 2015, 07:35) *
…Вектора прерывания вообще ни как не задаются, они по мойму и в EW IAR не задаются…

Ну почему же, вполне себе задаются: в .icf-файле, соответствующем проекту.
Вот, к примеру, выдержка:
"

define symbol __ICFEDIT_intvec_start__ = 0x00400000;

place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };

"
Tarbal
Цитата(lehacheb @ Oct 26 2015, 16:49) *
А не подскажите, как в эклипс указать области и размер ROM и RAM и расположение векторов прерывания? Никак не могу найти, у меня получается, что программа компилируется, отладчик видит, и даже загружает программу, но из дизассемблера видно, что пишет все по адресу 0х0000 0000 вместо 0х0800 0000 (Flash) и потом выдает ошибку.


Я с кокосом только начал и не знаю всех заморочек, но то, что вы хотите определяется в файле инструкций к линкеру. Поищите файл с расширением кажется *.ld в корне проекта. Буду дома посмотрю точно.

По теме топика вопрос.
ST-link кому-нибудь удалось подключить к кокосу? Запрограммировать получилось, а вот отладка не работает.
juvf
Цитата(Tarbal @ Oct 27 2015, 18:00) *
ST-link кому-нибудь удалось подключить к кокосу? Запрограммировать получилось, а вот отладка не работает.

У меня получилось. Отладка завелась на ST-Link в кокосе в полпинка.
Tarbal
Я поменял порт, после чего начало соединяться и программировать, но больше никаких настроек в интерфейсе не нашел, а править коонфигурационные файлы вручную пока знаний не хватает.

Дебагирование начинается, но выскакивает диалог с сообшением об ошибке. О факте ошибки без деталий и даже названия ошибки.
Потом появляется тулбар с кнопками для дебагирования, но ничего не работает.

У вас по какому порту соединение?

juvf
Цитата
Я поменял порт, после чего начало соединяться и программировать
Какой порт? На ip адресе? Я соединялся через USB, номер ip порта тут не при чем.
На вкладке Compile->Options->Debug что у вас? У меня default debug.

ps. Ещё, была подобная трабла.... Проц (stm32f103) работал до 84 МГц, поставил кварц 20 МГц. прога также грузилась и отладка кудато вылетала с непонятной ошибкой. Оказалось, что на вход можно подключать кварц 4-16 МГц. прога стартовала на внутреннем 8МГц генераторе, переключалась на внешний и происходил сбой.
Огурцов
ось какая ? если xp, то таки придётся апгрейдить
Tarbal
Цитата(juvf @ Oct 29 2015, 07:17) *
Какой порт? На ip адресе? Я соединялся через USB, номер ip порта тут не при чем.
На вкладке Compile->Options->Debug что у вас? У меня default debug.

ps. Ещё, была подобная трабла.... Проц (stm32f103) работал до 84 МГц, поставил кварц 20 МГц. прога также грузилась и отладка кудато вылетала с непонятной ошибкой. Оказалось, что на вход можно подключать кварц 4-16 МГц. прога стартовала на внутреннем 8МГц генераторе, переключалась на внешний и происходил сбой.


Я до конца вопрос не изучил заново, но насколько мне известно отладчик подсоединяется к gdb при помощи OpenOCD.Вот сами посмотрите в ссылке есть такой шаг как установка OpenOCD.
http://eraycanli.com/2015/08/19/stm32-gnu-...enocd-debugger/
OpenOCD соединяет JTAG (USB это интерфейс JTAG с другого конца) с отладчиком gdb по TCP. Знаю точно. Я лет восемь назад изучал его исходники. Так что порт может быть нужен если за восемь лет чего нового не придумали.
За картинку спасибо.



Отдельное спасибо за отладчик. Поставил порт 2009 и заработал. С портом 2331 не работал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.