目前我正在使用STM32L476VGT上的FreeRTOS开发一个项目。 到目前为止,我一直在调试臭氧(SEGGER)和J-Link(Edu和Ultra +)
现在我想使用SystemView(SEGGER)“调试”或记录系统事件,但它无法正常工作。
首先我认为有些重要的配置: 16Mhz HSE - >内部80Mhz SysClk FreeRTOS V8.2.3
J-link(连接SCLK,SDIO和SWO)
使用cubeMx创建的项目所以ST HAl库正在使用中(我知道很多人都是英国媒体报道软件,但是当我得到项目时就是这样)。
的main.c
#include "SEGGER_SYSVIEW.h"
//// -- includes, prototypes and definitions
void main (void){
/// -- Hardware init
SEGGER_SYSVIEW_Init(1000, 80000000, 0, 0);
SEGGER_SYSVIEW_Start();
/// - tasks creation
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
/* Start scheduler */
osKernelStart();
}
我只添加了已添加到项目中的基本代码行,以便使用SystemView。
在这一行下,我附上了System Viewer的屏幕截图。
编辑1:
我从一开始就创造了一个新的专业技术。
STM32L476RG是R是另一个有3个LED的电路板 cubemx:STM32L4 lib 1.10.0 FreeRTOS V9.0.0
的main.c
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
SEGGER_SYSVIEW_Init(1000, 80000000, 0, 0);
SEGGER_SYSVIEW_Start();
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
osThreadDef(ledControlTask, ledcontrol, osPriorityNormal, 0, 128);
ledControlTaskHandle = osThreadCreate(osThread(ledControlTask), NULL);
osKernelStart();
while (1)
{
}
}
void ledcontrol(void const * argument)
{
for(;;)
{
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
osDelay(500);
}
}
结果相同:
如果我点击STOP我得到:
此外,如果我在SEGGER SystemView UM0802中解释,请参阅pdf手册:
SEGGER_SYSVIEW_Init(1000, 80000000, 0, 0);
SEGGER_SYSVIEW_Start();
有:
SEGGER_SYSVIEW_Conf();
我得到相同的输出
非常感谢,
吉列尔莫