horsedo
驱动小牛
驱动小牛
  • 注册日期2001-11-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1829回复:3

高分请教:有人详细研究过ARM的CACHE系统的使用吗

楼主#
更多 发布于:2004-04-08 09:39
我正在为这个头疼,
本来程序转得好好的,可是原来没打开DCACHE转得很慢,
打开CACHE后发现很奇怪的一些东西
CACHE的几个基本操作:
invalidate,flush,drain write buffer,PLD
等等都试过了,发现有些无法掌控的现象,好像还和 stack 的位置有关
是不是有什么需要特别注意的没搞好
有人有类似经验的吗,谢谢
                                  


就是本来程序好好的
某个函数中加入几个局部变量,就 data abort
再加入几个局部变量,就好了
右加入几个局部变量,又 data abort 或者 prefetch_abort
像是有神经病
我是完全按照手册干的
很是不明白
I0P80310开发板,CPU为 Intel80200(XScale)    

反汇编没发现任何BUG
页表设置也没问题
就是不知道为什么,苦啊    





linjunchao
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2005-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-08 17:11
我记得ARM的CACHE在使能前必须先FLUSH,你仔细看看芯片资料,一般只要在某个寄存器中写某位就可以了,虽然我用的是ARM7TDMI,但我想在这点应该是一样的
horsedo
驱动小牛
驱动小牛
  • 注册日期2001-11-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-04-09 09:24
这个早就试过了,还是没有解决
谢谢回复,不过不给分你
horsedo
驱动小牛
驱动小牛
  • 注册日期2001-11-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-04-09 17:38
顶,顶到搞定为止
游客

返回顶部