主题中讨论的其他器件:HALCOGEN
e2e.ti.com/.../7875.Test.zipHello社区、
将 应用程序与 FreeRTOS 合并时遇到问题。 应用 本身运行良好 的裸机。
我为 合并的版本创建了一个新的 CCS 工程(v7.4)和一个新的 HALCoGen 文件。 现在、每当我尝试初始化栈中 大小超过1字节(例如 int)的变量时、程序会崩溃并在 HL_sys_intvecs.asm 的"DataEntry"行结束。 我检查了 MPU 设置、根据这些设置、RAM 应从0x08000000开始、并在0x0807FFFF 结束。 由于某种原因、初始 SP 被设置为0x07FFFAA00等地址。 因此、它超出了 RAM 的范围。 如果我手动将 SP 地址更改为接近0x08000000的值、则初始化有效(但这当然不是解决方案)。 在反汇编过程中、我注意到、通过向 strb 指令传递大偏移量、可以在 RAM 边界内分配和初始化 Vols、unit8_ts 和其他一个字节长的数据类型:
strb R12、[sp、#0x8a4]
这是初始化的第一个布尔值。
但是、以下是初始化 int 时执行的指令:
STR R12、[sp](无偏移、SP 被设定为 RAM 之外的地址)
该程序随后崩溃、因为它尝试 写入被禁止的位置。
在我看来、某项操作在配置方面是不明智的...但我已经比较了我的两个项目之间的 CCS 和 HALCoGen 设置、到目前为止还没有找到与此相关的任何操作。 此外、我使用 TMS57板在 FreeRTOS 上运行了相同的应用程序、它运行良好。 对于这两种情况、我都使用了 TI v16.9.6.LTS 编译器。
我附加 了 HALCoGen 文件、以防有人 查看。
感谢 您提供的任何帮助和指导。
谢谢、
Surialic