共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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |