реклама на сайте
подробности

 
 
> Keil µVision, отладочные функции
ViKo
сообщение Nov 21 2012, 11:32
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Как создать простейшую функцию, которую можно вызвать при отладке микроконтроллера STM32?
Вот пример из помощи:
Код
/*----------------------------------------------------------------------
  Toggle I/O Pin
----------------------------------------------------------------------*/
SIGNAL void toggle_IO_pin()  {
  int i;
  PORT0 = 0x0;
  for (i = 0; i < 20; i++)  {
    PORT0 = (PORT0 ^ 0x01);
    swatch(0.5);
  }
}
DEFINE BUTTON "Toggle P0.0", "toggle_IO_pin()"


Как задать порт для Cortex? На все мои варианты выдается ответ:
GPIOE &= ~0x04; /* clear PORTE bit 2 */
__^
*** error 34, line 26: undefined identifier

Оно вообще работает для Cortex, или остановилось на 8051?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
ViKo
сообщение Nov 21 2012, 12:55
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Для STM32F207 можно увидеть следующие виртуальные регистры:
TRAPS, TRIGFLT, STCLK, XTAL, CLOCK
Подозреваю, что это всё.
Не понимаю. laughing.gif

P.S. А для STM32F103 есть куча, в том числе PORTA...PORTD. Ага... ну не суки ли!
Может в Keil 4.60 добавилось регистров?
Go to the top of the page
 
+Quote Post
x893
сообщение Nov 21 2012, 14:15
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



мда-а-а
пипец. проверил на 4.6 такая же фигня.
Придётся мне возвращаться на 8051

Сообщение отредактировал x893 - Nov 21 2012, 14:16
Go to the top of the page
 
+Quote Post
редактор
сообщение Nov 22 2012, 06:43
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Для 51-х тоже не все так гладко. У Silabs например для 320-х регистры прописаны и функции работают, а для 040-х нет, хотя обе серии достаточно древние (Keil 4.23).
Цитата
Ага... ну не суки ли!



--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
редактор
сообщение Nov 22 2012, 09:00
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Может SFR-файл неверно указан (или не находит его). В отладчике через View->Sistem Viewer перефирия видна?
Если нет то в свойствах проекта на вкладке "Target" нужно попробовать указать полный путь до sfr-файла.
Не факт что поможет, но ...


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
Falkon_99
сообщение Nov 24 2012, 19:05
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 26-03-12
Из: Харьков
Пользователь №: 71 010



В STM Cortex все через макросы, описание которых находится в файлах CMSIS. Например для STM32F100 это файл stm32f10x.h
Для сброса бита порта пишут так GPIOE->ODR &= ~GPIO_ODR_ODR4;
Go to the top of the page
 
+Quote Post
Allregia
сообщение Nov 24 2012, 20:27
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(ViKo @ Nov 21 2012, 14:55) *
Для STM32F207 можно увидеть следующие виртуальные регистры: TRAPS, TRIGFLT, STCLK, XTAL, CLOCK Подозреваю, что это всё. Не понимаю. laughing.gif P.S. А для STM32F103 есть куча, в том числе PORTA...PORTD. Ага... ну не суки ли! Может в Keil 4.60 добавилось регистров?

Я не очень понял, о каких регистрах и какой "видимости" идет речь?
Если речь идет о видимости в дебаггере, то у меня Keil 4.23 - все регистры F103 и F407 видны, полагаю что с 207-м аналогично. Только для F103 они все в Peripherals, а для F4 там только регистры ядра, а все остальное, включая порты, во View->System Viewer.
Или Вы не об этом?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 25 2012, 06:18
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



В System Viewer периферийные регистры видны. Но это не то.
В Symbol Window можно увидеть виртуальные регистры. Их можно использовать, например, для имитации что-то на входах портов. Или для приема по USART. Так вот, для STM32F2XX их там очень мало. В отличие от STM32F103. И подмена файлов stm32f2xx.sfr не помогает.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Nov 25 2012, 08:38
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Понял. Да, у меня тоже самое как у Вас.


P.S. Есть вопрос - у меня в Кейл 4.32 с F407 не работает симулятор. С железом через JTAG/SWD - без проблем, как толко переключаю в симулятор и жму ^D, в окне Command пишет:
*** error 65: access violation at 0x0000000C : no 'read' permission

В окне дизасма стоит на нулевом адресе, в данных: 0000 MOVS r0,r0
В окне Си-текста можно принудительно поставить (по правой кноке - Set Program Counter) куда угодно (в окне дизаа при этом реальный код).
Но ни по шагам ни как - ничего не работает.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 25 2012, 09:49
Сообщение #10


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Нужные адреса можно задать командой map. Которую можно записать в ini файле. Который можно подключить во время симуляции. Место для него есть в настройках.
Нулевые адреса в map прописаны были сразу.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Nov 25 2012, 11:09
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Почему ничего этого не надо было для F103 ?
Go to the top of the page
 
+Quote Post
Палыч
сообщение Nov 25 2012, 11:57
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(ViKo @ Nov 21 2012, 16:55) *
Подозреваю, что это всё.
Не понимаю. laughing.gif

Разработчики на своем сайте Вас честно предупредили:
Цитата
Complete peripheral simulation is not available at this time.
Чего же Вы еще хотите ?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 25 2012, 15:04
Сообщение #13


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Палыч @ Nov 25 2012, 14:57) *
Разработчики на своем сайте Вас честно предупредили:
Чего же Вы еще хотите ?

Это если искать. Нашел, просветился.
Хочу, чтобы было available now! Или "Оставь надежды..."?
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Nov 25 2012, 15:13
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(ViKo @ Nov 25 2012, 17:04) *
Хочу, чтобы было available now! Или "Оставь надежды..."?

Почему бы просто не взять среду, где они уже "available now" и отлаживать в ней.
Неужели нет ни одной Ide с поддержкой периферии STM32F2XX? Не верю.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 25 2012, 16:43
Сообщение #15


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(_Артём_ @ Nov 25 2012, 18:13) *
Почему бы просто не взять среду, где они уже "available now" и отлаживать в ней.
Неужели нет ни одной Ide с поддержкой периферии STM32F2XX? Не верю.

А я не уверен, что существует среда, кроме Keil, где на порт STM32 можно подать какие-нибудь данные снаружи. Если кто подскажет, спасибо.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 23:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.02441 секунд с 7
ELECTRONIX ©2004-2016