Jump to content

    
Sign in to follow this  
zorromen

SEGGER SystemView для FREERTOS10

Recommended Posts

Здравствуйте, кто еще не пользовался данной программой от SEGGER тот много потерял. Все хорошо, удобно, но если использовать как для NO_OS, но если нужно использовать с STM32 FREERTOS10 от CubeMX, тот патч рельно отличается от того что идет от ST, только 2 файла из 5 подходят. Кто как патчит, как народ выкручивается? Я написал для себя патчер на лазарусе. Для M3 и M4F ядер, все прикручивал чисто к CubeMX.

Инструкция

1. Кидаем  в \Middlewares\Third_Party проектаimage.png.c8e79c76616ebdee9f896ab7b120288a.png Там кучка батников и мелких консольных прог, каждая патчит свой файл, поэтому не пугаемся.

2. Т.к. я такой еще программер, поэтому делаем по индуски, следующее, FREERTOS_Config.exe копируем в корень проекта image.png.59d79240ab1c8ba5bd9c146332cb5b1d.png

И делаем на него ярлык и его копируем в папку SEGGER_FREERTOS_Patcher, это для батника чтобы легче запускать.  image.png.d2cd6fc2370bf8478bfedfee4687fefa.png   

3. Запускаем Пропачтить M3.bat или Пропачтить M4.bat, готово, но учтите запускать один раз после генерации проекта, иначе если 10 раз нажать, то 10 раз пропатчит, это ерунда будет. Добавил батники Backup_In.bat и Backup_Out.bat это для бекапа 5 файлов в папку, и обратно в FREERTOS, ну это если кому нужно. 

Прога патчит абсолютно все что меняет CubeMX. Настройка муторная, но потом запускаете батник и готово.

Думаю тем кто занимается FREERTOS будет интересно. 

image.thumb.png.e1978a3b850a8db87a00cbfe1d578451.png

SEGGER_FREERTOS_Patcher.rar

Share this post


Link to post
Share on other sites

Патч для FREERTOS я сделал, все как указано в официальном патче только с поправкой на ветер. И работает он только для него. Для вас можно посмотреть в сторону NoOS, и там можно сделать тоже самое, читаем документацию от SysnemView, там что-то с создать таск и все такое, сам когда-то такое писал чтобы видеть как работают свои функции, ну и самое мое любимое это смотреть за работой прерываний. Особенно находил визуально косяки, что требовали изменения приоритетов.

Например, для прерываний конструкция

void DMA1_Channel5_IRQHandler(void)

      SEGGER_SYSVIEW_RecordEnterISR();

    
      SEGGER_SYSVIEW_RecordExitISR();
 
}

Ищем в исходниках _cbSendSystemDesc в конфигах segger, добавляем I#31=DMA1_5 UART RX

И теперь в SystemView при прерывании 31 дается имя DMA1_5 UART RX

static void _cbSendSystemDesc(void) {
  SEGGER_SYSVIEW_SendSysDesc("N="SYSVIEW_APP_NAME",D="SYSVIEW_DEVICE_NAME",O=FreeRTOS");
  SEGGER_SYSVIEW_SendSysDesc("I#15=SysTick,I#31=DMA1_5 UART RX");
}

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this