共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【S32K3学习整理】使用 LPUART 的loopback 模式实现核间通讯被打赏¥28元 | |
| arduinounoq原生zephyr环境搭建被打赏¥31元 | |
| 树莓派3+Klipper,MPU6050共振补偿被打赏¥41元 | |
| GroveCreatorKit套件+摇杆测评被打赏¥18元 | |
| 设备功耗web监控界面(ESP32C5)被打赏¥28元 | |
| OrangePiZero2W系统被打赏¥33元 | |
| Linux环境下以模拟方式快速实现出入管理功能测试被打赏¥24元 | |
| 树莓派3+Klipper,老3D打印机满血升级被打赏¥33元 | |
| OK1126B-S开发板下串口屏及其应用被打赏¥21元 | |
| 低功耗超声波液位测距仪(ESP32S3)被打赏¥27元 | |
我要赚赏金
