Перейти к содержанию
    

Keil µVision, отладочные функции

Как создать простейшую функцию, которую можно вызвать при отладке микроконтроллера 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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для STM32F207 можно увидеть следующие виртуальные регистры:

TRAPS, TRIGFLT, STCLK, XTAL, CLOCK

Подозреваю, что это всё.

Не понимаю. :laughing:

 

P.S. А для STM32F103 есть куча, в том числе PORTA...PORTD. Ага... ну не суки ли!

Может в Keil 4.60 добавилось регистров?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мда-а-а

пипец. проверил на 4.6 такая же фигня.

Придётся мне возвращаться на 8051

Изменено пользователем x893

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ага... ну не суки ли!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может SFR-файл неверно указан (или не находит его). В отладчике через View->Sistem Viewer перефирия видна?

Если нет то в свойствах проекта на вкладке "Target" нужно попробовать указать полный путь до sfr-файла.

Не факт что поможет, но ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В STM Cortex все через макросы, описание которых находится в файлах CMSIS. Например для STM32F100 это файл stm32f10x.h

Для сброса бита порта пишут так GPIOE->ODR &= ~GPIO_ODR_ODR4;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Я не очень понял, о каких регистрах и какой "видимости" идет речь?

Если речь идет о видимости в дебаггере, то у меня Keil 4.23 - все регистры F103 и F407 видны, полагаю что с 207-м аналогично. Только для F103 они все в Peripherals, а для F4 там только регистры ядра, а все остальное, включая порты, во View->System Viewer.

Или Вы не об этом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В System Viewer периферийные регистры видны. Но это не то.

В Symbol Window можно увидеть виртуальные регистры. Их можно использовать, например, для имитации что-то на входах портов. Или для приема по USART. Так вот, для STM32F2XX их там очень мало. В отличие от STM32F103. И подмена файлов stm32f2xx.sfr не помогает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

 

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) куда угодно (в окне дизаа при этом реальный код).

Но ни по шагам ни как - ничего не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужные адреса можно задать командой map. Которую можно записать в ini файле. Который можно подключить во время симуляции. Место для него есть в настройках.

Нулевые адреса в map прописаны были сразу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подозреваю, что это всё.

Не понимаю. :laughing:

Разработчики на своем сайте Вас честно предупредили:

Complete peripheral simulation is not available at this time.
Чего же Вы еще хотите ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разработчики на своем сайте Вас честно предупредили:

Чего же Вы еще хотите ?

Это если искать. Нашел, просветился.

Хочу, чтобы было available now! Или "Оставь надежды..."?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хочу, чтобы было available now! Или "Оставь надежды..."?

Почему бы просто не взять среду, где они уже "available now" и отлаживать в ней.

Неужели нет ни одной Ide с поддержкой периферии STM32F2XX? Не верю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему бы просто не взять среду, где они уже "available now" и отлаживать в ней.

Неужели нет ни одной Ide с поддержкой периферии STM32F2XX? Не верю.

А я не уверен, что существует среда, кроме Keil, где на порт STM32 можно подать какие-нибудь данные снаружи. Если кто подскажет, спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...