大家好,请教个问题,我在omapl138 ARM核测移植了sysbios系统, 然后将TI官方提供的starterware库中的ipc_polling案例移植到了sysbios系统中,
我没有在 cfg中使能 Cache,但是当我向一个指定的内存写入值时,
#pragma DATA_SECTION(ipcPvMemArm, "ipc_arm"); //在这里将变量 ipcPvMemArm的存储空间指定位 ipc_arm段
IPC_notifyEvent ipcPvMemArm; //IPC_RAM 80010000 00000010 00000010 00000000 RW X
#pragma DATA_SECTION(ipcPvMemDsp, "ipc_dsp");
IPC_notifyEvent ipcPvMemDsp; /* space for event to DSP DSP事件空间*/
如果全速运行,就是不能写入到 0x80010000内存中,如果我单步执行的话,就可以写入数据,请问,这是什么原因造成的?
[我直接ARM核裸机,使用Ipc_polling是可以正常运行的]
Shine:
请问设断点跑呢?全速跑有没有可能别的代码修改过这块地址?
shuo wang10:
回复 Shine:
单步调试,是一定可以写进去的,
在前后设置断点,有时可以,有时不可以。
我就这一处有对此位置的操作,SYSBIOS系统,只建立了这一个线程,应该是没有修改此位置。
是不是ARM缓存是默认启动的? 程序运行太快,还没有回写到此空间?
shuo wang10:
回复 Shine:
谢谢,已经向内存写数据通了,是Cache一致性引起的,我把 ARM的 D-Cache关闭了,
调用了starterware库中的 CacheDisable(CACHE_DCACHE);
还有想请教下,我并没有在cfg中将Cache开启,应该是SYSBIOS自动启动的,我把 D-Cache关闭是否对整个SYSBIOS系统有影响?
感谢!