ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
1115909
klen (11.07.2021 21:37, просмотров: 688)
не получается правильно запустить SWO на stm32h750vb 

вывод начинает работать но возникают странные для меня нюансы после инициализации


1. SWO выводит данне без проблем.

2. до конца сеанса все прекрасно отлаживается.

3. при попытке сбросить через отладчик или по выводу RST процессор кудато выпадает и это состояние сбросить можно только переключением питания..

че за хрень что даже ресет не страбатывает?


вот говнокод которым я подымаю swo (гибрид моего и того что на форуме ST нашел)

   core_debug.debug_and_trace_enable();
   dwt.unlock();

   dwt.cyc_counter = 0 ;
   dwt.cyc_counter_enable();
   dwt.cpi_counter_enable();


   constexpr size_t swo_boud = 50000 ;
   const size_t swo_prescaler = 400000000 / swo_boud - 1;

   #define SWO_BASE          (0x5C003000UL) //not defined in stm32h743xx.h
   #define SWTF_BASE         (0x5C004000UL)



   dbgmcu.trace_port_clock_enable();
   dbgmcu.d1_debug_clock_enable();
   dbgmcu.d3_debug_clock_enable();

   *((volatile uint32_t *)(SWO_BASE + 0xFB0)) = 0xC5ACCE55;  //write LAR
   *((volatile uint32_t *)(SWO_BASE + 0x0F0)) = 1;  //protocol mode, 1-manchester or 2-NRZ
   *((volatile uint32_t *)(SWO_BASE + 0x010)) = swo_prescaler;
   *((volatile uint32_t *)(SWTF_BASE + 0xFB0)) = 0xC5ACCE55; //write LAR
   *((volatile uint32_t *)(SWTF_BASE + 0x000)) = 0x00000301;

   itm.swo_enable(0);



после чтения рефмануала также осталя осадочек от того что Debug CoreSight новый не такой как в f7, как минимум таблицы аресов и модули SWO и SWTF появились ..... а хидер у ST один.