FreeRTOS库函数版20220817,改成HUGE模式为什么不能运行了|不使用REMOVEUNUSED即可
一直想研究一下FreeRTOS,这几天刚好不忙,就翻出了之前买的STC大学计划实验箱9.4版2022-3-01官网上下载的FreeRTOS-STC32G-CORE-V1.0.2-Library-DemoCode-20220817(函数库版)
用在STC实验箱9.4版上,LARGE模式下可以正常运行(数码管温度和时间显示正常),改成HUGE模式就能不能运行了(数码管不显示)
我改了如下部分,大家帮我看还有没有其他要改的
还有其他兄弟碰到这个问题吗?
另外:我试了一下寄存器版---FreeRTOS-STC32G-CORE-V1.0.2-DemoCode-20220609,也是改上面的这些地方,可以正常运行。
关于FreeRTOS在STC32G-CORE平台上从LARGE模式切换到HUGE模式后无法正常运行的问题,可能涉及内存模型切换带来的指针大小和内存布局变化。HUGE模式下,指针从16位扩展至24位,可能导致原本在LARGE模式下正常使用的内存地址访问失效。建议检查以下几点:
1. **内存映射配置**:确保在HUGE模式下,内存映射配置正确,尤其是堆栈和任务控制块的地址范围。
2. **指针类型处理**:检查代码中所有指针相关操作,确保在HUGE模式下使用正确的指针类型和内存访问方式。
3. **编译选项**:确认编译器选项已正确设置为HUGE模式,且相关库函数支持该模式。
4. **调试信息**:通过调试工具查看程序运行时的内存状态和错误信息,定位问题所在。
建议参考STC官方文档和FreeRTOS移植指南,确保所有配置和代码修改符合HUGE模式的要求。
[本文内容由国芯人工智能辅助生成,仅供参考] 在将FreeRTOS库函数版从LARGE模式切换到HUGE模式时,可能会遇到运行异常的问题。主要原因在于内存模型的差异,LARGE模式和HUGE模式对内存的访问方式和地址空间管理不同,可能导致代码和数据段的重定位出现问题。
建议检查以下方面:
1. **内存映射**:确保在HUGE模式下,代码和数据段的内存映射设置正确,特别是堆栈和全局变量的地址范围。
2. **编译器配置**:检查编译器的内存模型设置,确保所有模块和库文件都一致使用HUGE模式编译。
3. **链接脚本**:验证链接脚本是否适配HUGE模式,确保代码和数据段的分配符合预期。
4. **函数调用**:某些库函数可能对内存模型有依赖,需确认其是否支持HUGE模式。
建议参考STC官方文档和FreeRTOS的移植指南,确保所有配置和代码修改符合HUGE模式的要求。
[本文内容由国芯人工智能辅助生成,仅供参考] 国芯人工智能 发表于 2025-3-6 13:38
在将FreeRTOS库函数版从LARGE模式切换到HUGE模式时,可能会遇到运行异常的问题。主要原因在于内存模型的差 ...
AI别捣乱,用的就是STC官方移植的版本 应该指针长度变了,有些直接操作寄存器的地方地址偏了 我用的是STC官方已经测试过的正式发布的版本FreeRTOS-STC32G-CORE-V1.0.2-Library-DemoCode-20220817,除了configUSE_ROMHUGE,没有改一行代码,
会不会是还有什么地方修改或配置的,我没有做?
slade 发表于 2025-3-7 11:56
我用的是STC官方已经测试过的正式发布的版本FreeRTOS-STC32G-CORE-V1.0.2-Library-DemoCode-20220817,除了 ...
删除这个额外参数即可
HUGE模式下Keil编译对于这个指令的支持不是很好,所以会造成不能正常运行
王昱顺 发表于 2025-3-7 13:36
删除这个额外参数即可
HUGE模式下Keil编译对于这个指令的支持不是很好,所以会造成不能正常运行
...
果然,我搞了两天都没搞定,
谢了,兄弟
页:
[1]