You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32F103RBT上embOS在Keil中运行崩溃的问题咨询

STM32F103RBT embOS测试项目链接错误及调试崩溃问题

项目基础信息

  • 基于STM32F103RBT搭建embOS测试项目,初始采用默认配置
  • 调整编译器为MISRA兼容、C标准设为C99、C标准设为C11后,多数编译错误已解决,但遗留两个链接错误:

.\Objects\marlin.axf: Error: L6218E: Undefined symbol Stack_Mem (referred from os_initsysstackinfo.o). .\Objects\marlin.axf: Error: L6218E: Undefined symbol __initial_sp (referred from os_initsysstackinfo.o).

已尝试的解决方法

方法1:修改启动汇编文件导出符号

在启动汇编文件中添加以下代码导出Stack_Mem和__initial_sp:

Stack_Size   EQU   0x00000400

; EXPORT the Stack_Mem and __initial_sp symbols for use in C files
EXPORT Stack_Mem
EXPORT __initial_sp

执行后出现新的链接错误:

.\Objects\marlin.axf: error: L6002U: Could not open file .\objects\startup_stm32f10x_md.o: No such file or directory

方法2:注释embOS栈初始化代码

注释OS_InitSysStackInfo函数中的栈信息初始化代码:

OS_SysStackBaseAddr = (unsigned long) &Stack_Mem;
OS_SysStackSize = (unsigned int) ((unsigned long)&__initial_sp - (unsigned long)&Stack_Mem);
OS_SysStackLimit = (unsigned long) &__initial_sp;

执行后项目可编译通过,但调试过程中直接崩溃。

疑问

如何正确完成该embOS测试项目的调试与验证?

内容的提问来源于stack exchange,提问作者ASiDesigner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 15:53:12