RT-Theard 配置报错No space in execution regions 和hard fault on handler,问题解决

1.No space in execution regions with .ANY selector matching can.o(.conststring).

使用rt-thread-v4.0.1版STM32f10x系列bsp出现错误
.\build\rtthread-stm32.axf: Error: L6406E: No space in execution regions with .ANY selector matching can.o(.conststring).
使用的是STM32C8T6,flash标定64k,去掉finsh功能可以编译成功,加上finsh则报这样错误,通过menuconfig删减驱动,在编译时可以发现报错数量随驱动多少增减,初步判断内存不够导致,在不改变芯片型号条件下做如下修改可以解决错误:
在这里插入图片描述也就是将芯片flash修改成128k,因为C8T6在64K外的64K是可以读写的,具体可查阅https://blog.csdn.net/a568713197/article/details/84947409,
修改完成既可以编译通过。
同时注意下这里是否是一致的:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: .\objects\sensorless_foc.axf: error: I6971e: emo_ram.o(i.ccu6_sett13compare) 是一个编译错误。该错误通常是由编译器在编译过程中发现的问题引起的。 在这个特定的错误中,出现了一个名为"ccu6_sett13compare"的错误。这可能是由于以下几种原因导致的: 1. ccu6_sett13compare函数或变量未被正确定义或声明:检查代码中是否存在这个函数或变量,并确保它们被正确声明和定义。 2. ccu6_sett13compare函数或变量的命名冲突:检查代码中是否有其他地方也定义了相同名称的函数或变量。如果有,可以尝试修改命名以避免冲突。 3. ccu6_sett13compare函数或变量的使用错误:检查代码中对这个函数或变量的使用情况,确保它们被正确地调用和引用。有时候,一些简单的语法错误或拼写错误也可能导致这种错误。 4. 编译器版本不兼容或缺少必要的库文件:尝试更新编译器版本,或确保所需的库文件已正确安装和链接。 总之,要解决这个错误,需要仔细检查代码,查找可能的问题并逐一排除。 ### 回答2: 根据提供的错误信息 ".\objects\sensorless_foc.axf: error: l6971e: emo_ram.o(i.ccu6_sett13compare)" 可以看出,是在连接阶段发生的错误。错误的原因是在连接中找不到 "emo_ram.o(i.ccu6_sett13compare)" 这个文件或文件中所包含的函数 "i.ccu6_sett13compare"。 在解决此错误之前,我们需要查看一下项目的源代码和相关配置文件。首先,检查是否确实存在名为 "./objects/emo_ram.o" 的目标文件。确保该目标文件正常生成且位于正确的路径下。 如果目标文件存在并位于正确的位置,那么可能是函数 "i.ccu6_sett13compare" 的定义出现了问题。请确认在源代码文件中是否正确地定义了函数 "i.ccu6_sett13compare",并且函数的命名是否正确(大小写、拼写等)。另外,也需要检查该函数是否有正确的链接选项和正确的链接库依赖。 如果以上步骤都没有解决问题,可以尝试重新构建项目。在重新构建之前,可以尝试清除构建缓存,逐个删除相关的对象文件和目标文件,然后重新构建项目。 总之,错误 "l6971e: emo_ram.o(i.ccu6_sett13compare)" 表示连接器在连接项目时无法找到指定的源代码文件或函数定义。需要检查目标文件是否正常生成,函数是否正确定义,并尝试清除缓存和重新构建项目来解决该错误。 ### 回答3: 错误信息中的".\objects\sensorless_foc.axf: error: l6971e: emo_ram.o(i.ccu6_sett13compare)"指示了一个编译错误。具体错误是在文件"emo_ram.o"的"Ccu6_sett13compare"函数中发生了一个l6971e错误。 这个错误通常与CCU6 (Capture/Compare Unit 6)的设置相关。CCU6是一种用于嵌入式系统的定时器/计数器模块,用于实现各种计时和比较功能。在"Ccu6_sett13compare"函数中,可能涉及到了一些需要设置的参数或操作,而这些设置可能出现了问题,导致了编译错误。 要解决这个错误,我们需要仔细检查"emo_ram.o"中的"Ccu6_sett13compare"函数的实现。可能有以下一些步骤可以帮助我们找到并解决问题: 1. 确保"emo_ram.o"文件是正确生成的,并且包含了函数"Ccu6_sett13compare"的正确实现。 2. 检查函数内部的代码,确保没有语法错误或逻辑错误。 3. 检查与CCU6相关的设置和配置,确保设置正确,并且没有冲突或错误。 4. 如果可能的话,查阅编译器或开发工具的文档,查找关于l6971e错误的信息,以了解更多关于该错误的背景和可能的解决方案。 5. 与其他开发者进行沟通,特别是与有经验的嵌入式系统开发人员交流,寻求他们的建议和帮助。 综上所述,解决".\objects\sensorless_foc.axf: error: l6971e: emo_ram.o(i.ccu6_sett13compare)"错误需要仔细检查相关代码和设置,并在必要时请教其他开发者的建议和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值