Other Parts Discussed in Thread: HALCOGEN
主题中讨论的其他器件:HALCOGEN
大家好、
我当前正在调试 FreeRTOS 项目中发生的一些预取中止、发现 HALCoGen 生成的 HL_SYS_LINK_cmd 文件包含 错误的 RAM 大小计算:
查看 HALCoGen 生成的上述代码、RAM 段边界为:
START:origin=(0x08004500+0x00000800)= 0x08004D00
结束:origin + length = 0x08004D00 +(0x0007F800 - 0x00000800)= 0x08083D00
通过查看下面的 Hercules RM57存储器映射、我们可以看到计算出的 RAM 上限(0x08083D00)超出了存储器的 RAM 部分范围(从0x080000到0x0807FFFFF)。 请忽略黄色。 突出显示 的区域是为其创建 MPU 区域的存储器部件(与此特定帖子无关)。
我想我的第一个问题是、在本例中、如何计算0x0007F800数字? 为了错误地计算这个数字、我必须配置错误的其他内容。
第二个问题: 在 CCS 中更改堆栈大小(Properties > ARM Linker > Basic Options)与在 HALCoGen 中更改堆栈大小有何区别? 我知道、在 HALCoGen 中、您可以更改分配给每个堆栈部分的空间、但如果您在 CCS 中更改了整体堆栈大小、但它 与 HALCoGen 中设置的整体堆栈大小不匹配、该怎么办? 还是 viceversa?
感谢您提供的任何帮助。
谢谢、
Surialic

