共2条
1/1 1 跳转至页
44b0,cache,cache 关于44b0的cache和非cache区域
问
有那位前辈可以讲一下以cache非cache区域的具体用法,及其设置。
我用44B0搭和弦IC的IAP,发现设定8Kcache可用的时候,程序不正常。0Kcache的时候就好了。我知道ISR大部分会CACHE MISS,那cache是怎么个用法呢?找了好久才找到这么一句话“合理的配置是打开对RAM区间的Cache,关闭对其它地址区间(非存储器设备,I/O设备 )的Cache。”有没有详细点的说明啊?
还有二个非cache区我也不明白,地址是可以设定的,那它可有多大,实际上又对应着哪的物理地址呢? 答 1: cache要初始化!void InitCache(void)
{
int i;
rSYSCFG=0x08; // Disable cache
rNCACHBE0=0xc0001c00;
for(i=0x10004000;i<0x10004800;i+=16)
{
*((int *)i)=0x0;
rSYSCFG=0x0e; // Enable cache
}
}
答 2: 谢谢指点谢谢masashinakayama,这么快就回我了!我记得我有试过调用cache要初始化,好像仍有问题,但我那个好像少了下面这句。
rNCACHBE0=0xc0001c00;这个值是如何得出的?rNCACHBE1呢?
我用44B0搭和弦IC的IAP,发现设定8Kcache可用的时候,程序不正常。0Kcache的时候就好了。我知道ISR大部分会CACHE MISS,那cache是怎么个用法呢?找了好久才找到这么一句话“合理的配置是打开对RAM区间的Cache,关闭对其它地址区间(非存储器设备,I/O设备 )的Cache。”有没有详细点的说明啊?
还有二个非cache区我也不明白,地址是可以设定的,那它可有多大,实际上又对应着哪的物理地址呢? 答 1: cache要初始化!void InitCache(void)
{
int i;
rSYSCFG=0x08; // Disable cache
rNCACHBE0=0xc0001c00;
for(i=0x10004000;i<0x10004800;i+=16)
{
*((int *)i)=0x0;
rSYSCFG=0x0e; // Enable cache
}
}
答 2: 谢谢指点谢谢masashinakayama,这么快就回我了!我记得我有试过调用cache要初始化,好像仍有问题,但我那个好像少了下面这句。
rNCACHBE0=0xc0001c00;这个值是如何得出的?rNCACHBE1呢?
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 28BYJ-48机械臂实现人脸跟随被打赏¥24元 | |
| 基于RK3506B的片温识读功能的实现被打赏¥25元 | |
| 【瑞萨RA8D1测评】基于FreeRTOS的lvgl移植教程被打赏¥29元 | |
| 电子价签墨水屏开发被打赏¥35元 | |
| 【Ozone】RTT 打印终端使用被打赏¥29元 | |
| BMS保护板绝缘检测功能-不平衡电桥技术绝缘电阻检测设计与实现被打赏¥34元 | |
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |
我要赚赏金
