Группа компаний Промэлектроника
Группа компаний Промэлектроника

+7 (343) 372-92-30

info@ic-contract.ru

Пожалуйста, введите Ваше имя
Пожалуйста, введите Ваш номер телефона
Пожалуйста, введите Ваш адрес электронной почты Ошибка в адресе почты
Пожалуйста, введите Ваше сообщение
  • Производители
  • О компании
  • Контакты
  • About us
  • Форум
  • Главная
  • Статьи
  • Вывод отладочной информации SWO в среде IAR и KEIL

Вывод отладочной информации SWO в среде IAR и KEIL

Микроконтроллеры  STM32 имеют возможность вывода отладочной информации через  специализированный вывод  Serial Wire Output (SWO) программного интерфейса SWD, что не требует применения дополнительных разъемов на плате и позволяет осуществить однонаправленную  передачу данных от микроконтроллера к программе отладчика.

Опция позволяет начать вывод сообщений, используя всего одну встроенную команду - «printf», обеспечивая при этом малые нагрузки на ядро процессора.

Для применения SWO в среде IAR Embedded Workbench необходимо вначале программы добавить заголовочный файл командой #include <stdio.h> и выполнить следующие действия:
    
1. В меню  основные опции, выбрать - Semihosted, Via SWO

 Semihosted

2. В меню программатор, указать частоту работы микроконтроллера - SYSCLK(MHZ)

 SYSCLK

3.  Подключить файл - #include <stdio.h>

4. В тексте программы разместить  выражение вида - printf("Text\n\r")

5. Откомпилировать код и запустить процесс отладки - Download and debug

6. Выбрать в меню – View/Terminal I/O

7. Для начала процесса отладки и просмотра сообщений в окне терминала нажать - Go

Сообщения можно просматривать не только и в режиме отладчика, но и в обычном режиме выполнения программы в микроконтроллере с помощью внешних программ, например - STM32 ST-LINK Utility.  Для настройки программы выберите - ST-link/Printf via SWO viewer и укажите частоту – System clock (Hz).

 System-clock

Вывод сообщений SWO можно выполнить и в среде Keil  µVision,  для этого потребуется выполнение следующих действий:

1.Перед функцией main необходимо разместить код

#include <stdio.h>
#define ITM_Port8(n)    (*((volatile unsigned char *)(0xE0000000+4*n)))
#define ITM_Port16(n)   (*((volatile unsigned short*)(0xE0000000+4*n)))
#define ITM_Port32(n)   (*((volatile unsigned long *)(0xE0000000+4*n)))
#define DEMCR           (*((volatile unsigned long *)(0xE000EDFC)))
#define TRCENA          0x01000000


struct __FILE { int handle; /* Add whatever you need here */ };
FILE __stdout;
FILE __stdin;

int fputc(int ch, FILE *f) {
   if (DEMCR & TRCENA) {

while (ITM_Port32(0) == 0);
    ITM_Port8(0) = ch;
  }
  return(ch);
}

2. В  программе  main  разместить  команду  -   printf("Text\n\r")

3.  Настроить программатор-отладчик в соответствии с настройками

opt

 opt1

opt2

3.  Запустить процесс отладки – Start/stop Debag Session

4.  Выбрать в меню -  View/Serial Windows/Debug printf() Viewer

5.  Нажать - Run

После чего можно закрыть среду отладки, запустить STM32 ST-LINK Utility и наблюдать за автономным выполнением кода программы в устройстве.

Следует отметить, что вывод информации SWO имеет аппаратную поддержку ядра Cortex-M3/M4, что требует минимальных затрат ресурсов и может быть наиболее востребовано при получении данных от микроконтроллера, работающего в условиях крайне низкого энергопотребления. Практически, при написании статьи,  данная возможность была опробована на серии STM32Lxx.

Дополнительную информацию о микроконтроллерах STM32 можно получить  на сайте компании STMicroelectronics.

 

Получить более подробную информацию по продукции STMicroelectronics вы можете, обратившись:

E-mail:Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

Телефон: (343) 372-92-30

О компании

  • Производители
  • О компании
  • Контакты
  • About us
  • Форум

iso

Производители

  • BSB Electrical
  • Artery
  • CABO Electronics Ltd.
  • Winstar Display
  • Forlinx
  • Sinecon
  • Wuxi Leapers Semiconductor
  • Asahi Optics
  • DISEA Electronics Co., Ltd.
  • Xiner Semiconductor
  • Honglitronic
  • Techsem

© 2012–2023 «Ай-Си Контракт»


Телефон: +7(343) 372-92-30
Email: Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

Promelec logo 4MS Off2