Отговори на тема  [ 27 мнения ]  Отиди на страница 1, 2  Следваща
Cortex-M3, debug съобщения и SWD. 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Cortex-M3, debug съобщения и SWD.
Какво използвате за да пращате дебъг съобщения от Cortex-M3 по SWD? При ARM7 чат-пат съм ползвал, когато се наложи, DCC през JTAG + OpenOCD + GDB. Предполагам при Cortex-M3 и SWD също има някаква възможност за такива дебъг съобщения, но при бърз преглед не мога да се ориентирам нещо.
Конкретно в моя случай имам STM32F1xx вързан по SWD с един клонинг на J-Link(с атмелския процесор).
Идеята ми предполагам е ясна - да не търся начин да вързвам допълнителен UART специално за пращане на кратки дебъг съобщения, а да ползвам съществуващата връзка през дебъгера.

Ще се радвам ако знаещите споделите някакъв конкретен опит.

_________________
Най-опасният враг на истината и свободата е мнозинството.


Вто Юни 19, 2012 9:47 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: Cortex-M3, debug съобщения и SWD.
Ми незнам, ама ако измислиш удачно решение - кажи.

То откъм желязото е ясно, ще си напишеш някаква функцийка дето да пише в регистъра. Ама Jlink-a и GDB сървъра как се конфигурират - информация не открих. Не ,че много съм търсил де.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Вто Юни 19, 2012 10:50 am
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение Re: Cortex-M3, debug съобщения и SWD.
Цецо, това е въпрос към Миро (за него първо се сетих, да ме извинява някой колега, който също е наясно) дай да изчакаме да видим какво ще каже по въпроса?! :)


Вто Юни 19, 2012 10:54 am
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Вто Окт 25, 2005 10:54 am
Мнения: 896
Мнение Re: Cortex-M3, debug съобщения и SWD.
Ще отговоря преди/вместо Миро - неговата е лесна, използва нашия JTAG, щото той му писа приемането на SWOt-то за FPGA-то. Поддържа скорост от над 65М бит/бода/херца - както си го искате, но цената няма да ви хареса... е ако сте чували за BDI, нашето ще ви се стори евтино...

Иначе SWO като се приеме се препраща към TCP порт, т.е. абюзера просто трябва да си отвори телнет сесия кум нашия JTAG.
Има и още екстри - PC sampling (profiling), и разни други дебъг съобщения например влязох/излязох от прекъсване и т.н. има ги описани в съответния ARM PDF.


Вто Юни 19, 2012 11:22 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: Cortex-M3, debug съобщения и SWD.
Мани го вашия JTAG, тук сме се сбрали все крадци на интелектуална собственост и любители на безплатния обяд.

@fan - Аз с Миро това съм го дискутирал, той няма какво да помогне, защото проблема е в JLink/GDB манджата, както казах, откъм контролера нещата са ясни. А Миро и Jlink нямат допирни точки.

Не съм сигурен, че GDB Server-a на Segger подържа тази функционалност. Мисля, че това е тапата, ако той го прави, няма проблем. Но нещо ми се мота, че не беше заложено точно в тоя тул.

Едит:
Май можело:

http://www.segger2.com/index.php?page=T ... eadID=1010

Ако някой го пробва и става и напише хубава интерфейсна функция... ще черпя бира ако я сподели. Иначе аз ще напиша като ми остане време, ама като се знам какъв съм драскач, вероятно няма да се хареса на много хора :)

Едит2:
http://www.segger.com/j-link-swo-viewer.html

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Вто Юни 19, 2012 11:38 am
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение Re: Cortex-M3, debug съобщения и SWD.
Добре, ама човека пита дали по самия дебъг интерфейс в случая двупроводния SWD да можеш да пускаш и съобщения. :wink: Иначе трябва отделна жица за SWO пина и там вече е ясно - сегер са пуснали в последните си версии софт за това, едно русначе съм видял, че е писало нещо подобно.


Последна промяна fan на Сря Юни 20, 2012 4:12 am, променена общо 1 път



Вто Юни 19, 2012 12:52 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: Cortex-M3, debug съобщения и SWD.
аааа само по интерфейса - не знам!

Виждал съм го това на ARM7 под Cross-a и с най-банален Риглер. Ама на Куртекс с jlink... нивга. То става вече прекалено зависимо от прищевките на segger.


Връзваш си SWO - то и те така...

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Вто Юни 19, 2012 1:45 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Вто Окт 25, 2005 10:54 am
Мнения: 896
Мнение Re: Cortex-M3, debug съобщения и SWD.
fan написа:
Добре, ама човека пита дали по самия дебъг интерфейс в случая двупроводния SWD да можеш да пускаш и съобщения. :wink: Иначе трябва отделна жица за SWO пина (щото jlink-a няма) и там вече е ясно - сегер са пуснали в последните си версии софт за това, едно русначе съм видял, че е писало нещо подобно.


Всъщност може и само по двете жици, даже е още по лесно - до колкото си спомням при кортекс може да се чете РАМа докато ЦПУто работи. Т.е. през две думи от РАМа не е проблем да се реализира ДСС подобна комуникация, т.е. едната дума данни, а един бит от другата дума флаг дали данни думата е пълна, т.е. ЦПУто пише данни и сетва флага, дебъгера докато ЦПУто работи хем му проверява статуса дали не е брейкнало, хем проверява и думата флаг, ако го види сетнат, чете и сваля флага. ЦПУто вижда че флага е свален и слага нова дума данни и т.н. Данните може да се пренасочат към ТСР сокет например.

Естествено за горноро някой трябва да се наеме да го напише и контрибутва за ОупънОЦД-то де :)


Вто Юни 19, 2012 2:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Cortex-M3, debug съобщения и SWD.
Имаше някакви OCD-та с двоен FTDI май по бордовете на Луминари ли бяха не помня. Едното FTDI-йче си бачка като най-обикновен сериен към USB.
Неудобството е че трябва да се нацели точния бауд рейт, което налага изисквания към CPU клока къв да е, после те ограничава да не се сменя в движение...

Всъщност всеки може да си направи сам преобразувател и да вкара SWO-то в UART режим. Но ОЦД-то може да пренасочва трейса към OCD конзолата и към GDB конзолата, ако това е някакво удобство.

Разбира се, няма да пропусна да направя реклама и PEEDI, щото като цяло за трейс козата си сака пръч... Едно е скорост в килобити друго е мегабити, освен това тоя сорт емулатори сами се греижат да програмират SWO-то, юзерския код просто пише (ако не е закачен емулатор, писането по неконфигурирано SWO нищо не прави). И не на последно място е стабилността - в UART режима няма гаранции че не си изпуснал нещо заради грешен байдрет, докато в другия режим е манчестер кодиране и без значение от CPU клока емулатора не изпуска нищо.

Абе с две думи, търсете си решение ;-) Няма ли вече китайски JTRACE ??

И още едно решение -някои от бордовете на Energy Micro идват с JLINK+JTRACE... и цените са от порядъка 100-200-300$. Само заради емулатора си струва според мен...


Вто Юни 19, 2012 4:20 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: Cortex-M3, debug съобщения и SWD.
Днес бягам по разни задачи и едва сега сядам да отговоря на тези които се включиха в темата.
Първо за PEEDI - търся безплатния обяд както каза Цецо.
Скорост и трейсване не гоня, само няколко съобщения в човекочетим формат, като допълнение към основните неща, които ползвам за дебъгване(memory прозорец, регистри, един-два брейкпоинт-а, старт, стоп, степ + някое светодиодче).
Днес отделих време да потърся и пробвам и получих някакви резултати. Макар и не точно това което търсех.
Първоначално идеята ми беше да ползвам само SWDIO и SWCLK, щото само те са ми свободни на платката. Но по стечение на обстоятелствата SWO пина на платката ми се оказа свободен и опроводен до удобен vias, така че го вързах и реших да пробвам инструкциите от онази тема във форума на Segger, която посочи Цецо(прилагам кода, който използвах).
Стигнах донякъде. Не успях да отворя telnet сесия към gdb с изхода от SWO, но с J-link Commander чета кръговия му буфер с данните, които прихваща от SWO. Т.е. от страна на таргета, конфигурирането на асинхронен SWO и пращането на байт тръгват.
И това е всичко. Продължавам търсенето. Ако ще трябва да заделям допълнително още един пин, по-добре да ползвам UART.
Варианта да си организирам "направи си сам" mailbox в RAM-а може и да ми влезе в употреба, но търся нещо по-удобно и поне под формата на полуфабрикат, ако не може готов обяд.


Прикачени файлове:
swo_test.c [2.31 KiB]
291 пъти

_________________
Най-опасният враг на истината и свободата е мнозинството.
Сря Юни 20, 2012 12:13 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Cortex-M3, debug съобщения и SWD.
Ако имаш някакъв конкретен проблем с конфигурирането свиркай....

btw тоя код като гледам няма защита за мултитаскинг, което е станно щото в документацията го има описано мисля. Проблемът не е само с ОС, може ако имаш трейсове от прекъсвания също да се губят неща. Сега сигурно си мислиш че това е бял кахър, обаче като те излъже няколко пъти ще видиш ;-)

Ето ги моите функции за трейс на стринг и байт:

Код:
#define TRACE_PORT 0
//------------------------------------------------------------------------------
//void usr_trace_str(const char *buf);
FUNC(   usr_trace_str      )
.weak usr_trace_str

            movs         r1, #ITM_BASE
1:
            ldrb         r2, [r0], #1
            cbz            r2, 4f
2:
            ldrexb         r3, [r1]
            cbz            r3, 3f
            strexb         r3, r2, [r1]
            subs         r0, r3
            b            1b
3:
            b            2b
4:
            bx            lr

ENDF(   usr_trace_str      )


//------------------------------------------------------------------------------
//void usr_trace_char(char c);
FUNC(   usr_trace_char      )
.weak usr_trace_char

            movs         r1, #ITM_BASE + (TRACE_PORT * 4)
            cbz            r0, 2f
1:
            ldrexb         r3, [r1]
            cmp          r3, #0
            ITT            NE
            strexbne      r3, r0, [r1]
            cmpne         r3, #1
            beq            1b
2:
            bx            lr

ENDF(   usr_trace_char      )


Сря Юни 20, 2012 9:52 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение Re: Cortex-M3, debug съобщения и SWD.
Конкретно за мен май ще мина без SWO и този път.
Но тъй като това е форум, ще постна няколко линк-а, които открих покрай търсенето и които може да са интересни за търсещите безплатен обяд. Не са само по темата.

http://takenapart.com/?m=201102

http://www.versaloon.com

http://www.segger2.com/index.php?page=T ... hreadID=31

http://www.gniibe.org/memo/development/ ... r-ftdi2232

Миро, благодарности за споделения код на трейс функциите. Надявам се че ако не на мен някому ще влязат веднага в употреба.

_________________
Най-опасният враг на истината и свободата е мнозинството.


Чет Юни 21, 2012 9:41 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Ное 12, 2011 9:21 pm
Мнения: 62
Мнение Re: Cortex-M3, debug съобщения и SWD.
и аз искам да благодаря на miro_atc за функциите, първо ми се сториха трудно разбираеми, но като се разрових в ръководствата, изясниха ми се, и научих полезни неща


Чет Юни 21, 2012 8:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: Cortex-M3, debug съобщения и SWD.
Абе аз пак да вдигна темата, случаааайно да се появила нейде фри имплементация на някакъв трейс през SWO-то? Че още само за тъп принтф го ползвам, а има толкова възможности, странно как не се е появил ентусиаст да спретне нещо по раздвижено. Поне да се ползват повече канали и някакво семплиране на PC, watch points... като чета документацията, не е зор да се направи откъм джелезото, ама си иска да се заиграе човек на ПЦ-то, а аз там нямам нерви.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Пон Яну 19, 2015 8:04 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение Re: Cortex-M3, debug съобщения и SWD.
http://electronix.ru/forum/index.php?showtopic=92370


Пон Яну 19, 2015 9:01 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 27 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни