|
|
  |
STM32F103x, делимся впечатлениями |
|
|
|
Jan 31 2008, 14:02
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(KRS @ Jan 31 2008, 15:17)  Да пересобрал OPENOCD скачал исходники последнии из svn... как собирать здесь описано http://openfacts.berlios.de/index-en.phtml...uilding_OpenOCDКак OpenOCD с IAR стыковать? Через RDI драйвер? Может ссылку подкинете?
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Jan 31 2008, 14:27
|

Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809

|
Цитата(Vitaliy_ARM @ Jan 31 2008, 17:02)  Как OpenOCD с IAR стыковать? Через RDI драйвер? Может ссылку подкинете? OpenOCD запускается как GDB сервер - то есть висит на локалхосте - для его использования надо выбрать в опциях проэкта в свойствах дебаггера GDB server а в свойствах самого GDB сервера указать адрес 127.0.0.1,2331 где 2331 - порт на котором запускается OpenOCD. все это касается ИАРа 5.11 который поддерживает GDB
--------------------
если еррата пуста - это не хорошо а плохо
|
|
|
|
|
Jan 31 2008, 20:23
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(cebotor @ Jan 31 2008, 17:27)  OpenOCD запускается как GDB сервер - то есть висит на локалхосте - для его использования надо выбрать в опциях проэкта в свойствах дебаггера GDB server а в свойствах самого GDB сервера указать адрес 127.0.0.1,2331 где 2331 - порт на котором запускается OpenOCD. все это касается ИАРа 5.11 который поддерживает GDB Понял, нашел, спасибо! Тоже заказал себе STM32F103VB. Придет, попробую FTDI J-TAG и J-Link, заодно и сравню.
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Jan 31 2008, 23:23
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(KRS @ Jan 31 2008, 17:09)  К сожалению я не знаю готового решения RDI <-> GDBserver Но у IAR 5.xx уже есть в конфигурации GDB server, так что 5ый IAR можно подключить прямо к openocd Недавно наткнулся на ссылку с конфигурацией OpenOCD под вашу плату http://www.siwawi.arubi.uni-kl.de/avr_proj...rtex/index.htmlТам еще есть описание, как этот gdb под линуксом использовать. Может выложите свою версию OpenOCD сюда?
Сообщение отредактировал Vitaliy_ARM - Jan 31 2008, 23:36
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Feb 1 2008, 07:36
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(Vitaliy_ARM @ Feb 1 2008, 02:23)  Недавно наткнулся на ссылку с конфигурацией OpenOCD под вашу плату Да как раз с ней проблем нет никаких, IAR 4.xx и 5.xx с ней отлично работает через LMFTDI, а моя плата с STM32F103 почему то не работает (наверное каких то сигналов не хватает диагностики нет никакой....) Цитата(Vitaliy_ARM @ Feb 1 2008, 02:23)  Может выложите свою версию OpenOCD сюда?  Эта сборка OpenOCD с конфигурацией ./configure --enable-ft2232_ftd2xx --with-ftd2xx=/cygdrive/e/..... И удалено установка младшего бита PC ( что бы IAR не глючил), зато наверное оригинальный GDB может глючить. У меня с IAR вроде все работает.
|
|
|
|
|
Feb 15 2008, 15:02
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 23-11-06
Из: Odessa
Пользователь №: 22 646

|
А что, правда, что J-Link еще не поддерживает STM32?
А что, правда, что J-Link еще не поддерживает STM32?
|
|
|
|
|
Feb 15 2008, 16:15
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(gregory812 @ Feb 15 2008, 18:02)  А что, правда, что J-Link еще не поддерживает STM32? IMHO не правда. В IAR даже настройка есть на SWD, а SWD есть только у Cortex К тому же у Segger написано Any ARM7/ARM9 core (including thumb mode) and Cortex M3 including SWD Кстати как раз сегодня плотно начал работать с STM32F013C6T6. (ну тут как всегда танец с бубном с отладчиком и gdb server). Но обнаружил интересную вещь! простейшая программа Код void main(void) { RCC_APB2ENR_bit.IOPBEN = 1; GPIOB_CRL_bit.CNF2 = 0; GPIOB_CRL_bit.MODE2 = 1; while(1) { GPIOB_BSRR = 1<<2; GPIOB_BRR = 1<<2; } } Из флеша дергает ногами быстрее чем из SRAM. Но самое интересное из флеша картинка получается короткий импульс вверх короткий вниз короткий вверх длинный вниз и так по кругу. Где то так Код из флеша 001010010100 из SRAM 00011000110001100011000 причем имеено в такой пропорции. Если в цикле поставить Код while(1) { GPIOB_BSRR = 1<<2; GPIOB_BRR = 1<<2; GPIOB_BSRR = 1<<2; GPIOB_BRR = 1<<2; } То из флеша картина не меняется Код из флеша 001010010100 из SRAM 000110011000110011000
|
|
|
|
|
Feb 16 2008, 13:39
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 10-01-07
Из: Вильнюс
Пользователь №: 24 290

|
Цитата(OVladimir @ Jan 12 2008, 19:15)  с STM при дебаге если после точки останова необходимо сделать шаг (step over, например), попадаешь в процедуры обработки какого-нибудь прерывания, поэтому приходится расставлять доп. брейкпоинты чтобы просто пройти по процедуре основного цикла. и ещё, на сей раз в корзину плюсов по поводу дебага: значения глобальных переменных видно всё время, не надо останавливать выполнение программы.
|
|
|
|
|
Feb 18 2008, 14:06
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Немного потестировал STM32F103 Простейшая программка в цикле доступ к GPIO, просто операции в регистрах и переходы, и SRAM Код unsigned gpio_test(void) { unsigned r,i; r = SYSTICKCVR; i = 1024; do { GPIOB_BSRR = 1<<2; GPIOB_BRR = 1<<2; }while(--i); return r - SYSTICKCVR; }
unsigned alu_test(void) { unsigned r,i,tmp; r = SYSTICKCVR; i = 1024; do { if (tmp) tmp++; }while(--i); return r - SYSTICKCVR; }
unsigned ram_test(void) { unsigned r,i; volatile unsigned tmp; r = SYSTICKCVR; i = 1024; do { tmp = 1; tmp = 2; }while(--i); return r - SYSTICKCVR; } компилировал IAR 5.11 с максимальной оптимизацией, сами цыклы получились Код ??gpio_test_1: STR R4,[R3, #+0] STR R4,[R3, #+4] SUBS R2,R2,#+1 BNE.N ??gpio_test_1
??alu_test_0: CBZ R0,??alu_test_1 ADDS R0,R0,#+1 ??alu_test_1: SUBS R3,R3,#+1 BNE.N ??alu_test_0
??ram_test_0: STR R4,[SP, #+0] STR R3,[SP, #+0] SUBS R2,R2,#+1 BNE.N ??ram_test_0 Результаты для SRAM и флеша с разными wait stait Получатеся что из Флеша доступ к переферии существенно быстрее. Код SRAM FLASH 0 FLASH 1 FLASH 2 GPIO 12335 6191 8238 12333 ALU 6144 5121 6145 9213 RAM 8189 5121 8189 12283
|
|
|
|
|
Feb 26 2008, 13:41
|

Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809

|
Цитата(KRS @ Feb 1 2008, 10:36)  Да как раз с ней проблем нет никаких, IAR 4.xx и 5.xx с ней отлично работает через LMFTDI, а моя плата с STM32F103 почему то не работает (наверное каких то сигналов не хватает диагностики нет никакой....) Эта сборка OpenOCD с конфигурацией ./configure --enable-ft2232_ftd2xx --with-ftd2xx=/cygdrive/e/..... И удалено установка младшего бита PC ( что бы IAR не глючил), зато наверное оригинальный GDB может глючить. У меня с IAR вроде все работает. Еще раз спасибо , заставил работать OPENOCD с помощью вашего патча с STM32. Однако у меня не STELLARIS-овская плата а OLIMEX-овский USB_OCD jtag адаптер, и я так понимаю именно по этому OPENOCD не врубает swd режим. следовательно мне надо перепрошить епромку содержимым таким же как у вас , чтобы получить всю мощь SWD не выложите ?
--------------------
если еррата пуста - это не хорошо а плохо
|
|
|
|
|
Mar 13 2008, 13:09
|

Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809

|
Цитата(KRS @ Mar 11 2008, 18:38)  Все еще мучаю STM32F103. Пока чип работает хорошо. Кстати у него очень удобная реализация CAN - 2 fifo (что мне удобнее чем куча mailbox) и много довольно гибких фильтров. тоже мучаю его , все приятненько , только по прежнему накалываюсь н абаги в либах ... например при работе со слипом процедура RCC_WaitForHSEStartUp - таймаут тупым счетчиком который обнуляется один раз при старте микроконтроллера - наш выход : ErrorStatus RCC_WaitForHSEStartUp(void) { /* Wait till HSE is ready and if Time out is reached exit */ StartUpCounter=0; ну хотя бы так , не переписывать же все. PS так и не разобрался с SWD !!!!! вобще никак ни через ft2232 ни через три варианта j linka что делать ума не приложу .. на jlink mt link и jet-link IAR ругается типа - указанный адаптер не поддерживает режим СВД !
--------------------
если еррата пуста - это не хорошо а плохо
|
|
|
|
|
  |
7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0
|
|
|