Freertos的Systick_Handler重定义

我的程序再创建系统之前,会使用HAL库来初始化系统时钟源。

这个过程中,我发现总是卡死。

进单步调试,打断点发现,只要我在配置HSE外部时钟的时候,if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF)这里停下来再运行就能成功跑下去,不然连时钟配置的函数都跑不完就会进硬件错误中断中去。我找了半天没有找到原因。

往下看了一下,发现这个初始化时钟的函数内,会调HAL_GetTick,坑爹啊。

这个计时默认是由滴答中断产生的,而我因为创建系统,滴答中断就屏蔽掉了,使用的是系统的中断。

结果导致卡死的原因就是,因为uwTick的全局变量不累加,Systick_Handler不进去,导致了系统一直在等待HSE起振卡死进硬件错误中断。

所以我就只能删掉FreeRTOSConfig函数中的定义部分

但是这样系统就没得跑了啊,没有定时中断了啊。那就把系统的中断跑到Systick_Handler里面去。且,同时需要监控任务是否跑起来,跑起来才跑系统中断,不然只跑HAL_IncTick();

相关推荐
Mr-pn-junction7 小时前
clk_gate
单片机·嵌入式硬件·fpga开发
尼喃11 小时前
662K和65Z5三脚稳压芯片PW6566,附引脚定义与典型电路图
嵌入式硬件
李永奉15 小时前
杰理可视化SDK开发-【BUG】配置“TWS两边同时按消息使能”功能后,按键单击功能无效失灵
开发语言·单片机·嵌入式硬件·物联网·bug
执迷不悟82315 小时前
51单片机--中断/定时/PWM
单片机·嵌入式硬件·51单片机
A小调的码农17 小时前
OPENOCD+MSYS+VSCODE:从“灯不亮“到“终于亮了“
ide·vscode·stm32·单片机·编辑器
AI的探索之旅17 小时前
让 Claude Code 直接操刀画原理图和 PCB:VSCode 插件接外部 API 全流程
linux·ide·vscode·嵌入式硬件·编辑器
Dlrb121118 小时前
单片机通信协议---串口及串口通信
单片机·嵌入式硬件·串口·uart·modbus·波特率·主机从机
嵌入式-老费19 小时前
esp32开发与应用(用好ttl转485模块)
stm32·单片机·嵌入式硬件
謓泽19 小时前
【6.30】芯片 Bring-up 三步核心|从短路检查到 SPI 排障全拆解!
单片机·嵌入式硬件
2CM_Embed19 小时前
Quartus II 工程编译与 FPGA 下载流程记录
嵌入式硬件·fpga开发