单片机/MCUwilliam hill官网
直播中

李永每

7年用户 1448经验值
私信 关注

CYT4BF通过分配ITCM内存来使用经常执行的代码,下载程序时报错的原因?

我正在使用 CYT4BF,我想通过分配 ITCM 内存来使用经常执行的代码。
SDL 的 tcm 示例中似乎没有 itcm 示例。
我在 linker_directives.ld 文件中添加了.itcm_code 来为 ITCM 区域分配常用代码。
然后我在常用"代码中添加 __attribute__了((部分 (.itcm_code")))。



编译工作正常,但是下载程序时出现总线错误。


Q1) 总线错误是否因为ITCM内存地址与ROM地址重叠而发生?
Q2) 您 CAN 告诉我如何将常用代码分配给 ITCM 内存并使用它?
问题
3) 如果您有使用 ITCM 的示例,请告诉我。



回帖(1)

萧蔼晨

2024-1-31 15:34:53
根据您的描述,我可以提供以下答案:

Q1)总线错误可能是由于ITCM内存地址与ROM地址重叠而引起的。请确保您的ITCM内存分配不会与ROM区域重叠。

Q2)要将常用代码分配给ITCM内存并使用它,请按照以下步骤操作:

1. 在linker_directives.ld文件中,为ITCM区域添加.itcm_code,并确保它不会与ROM区域重叠。

示例代码:
```
.itcm_code :
{
    *(.itcm_code)
} >itcm
```

2. 在您的常用代码中,使用__attribute__((section(".itcm_code")))将其标记为ITCM代码。

示例代码:
```
void __attribute__((section(".itcm_code"))) frequentlyUsedFunction()
{
    // Your code here
}
```

3. 确保在编译时使用适当的选项,以便将代码放入ITCM内存。例如,使用gcc编译器时,可以使用'-Wl,--no-warn-section-align'选项来禁止警告。

Q3)关于ITCM的示例,我在CYT4BF的文档中没有找到具体的示例。您可以查看Cortex-M处理器的文档,那里可能会有更多关于ITCM使用的信息和示例。

希望以上信息对您有所帮助!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分