Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15364249
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: LINUX

2008-03-18 17:02:10

cache的初始化

ARM9的BSP,在romInit()函数里对cache进行的操作为:
1.设置几个cache区;
2.flush caches(通过以下代码实现:
                               LDR R0,=0x00000000
                               MCR p15,0,R0,c7,c5,0
                               MCR p15,0,R0,c7,c6,0
               )
问题:
1.flush cache是什么意思?
2.在romInit()函数里一般对cache进行的操作是什么?

1.flush cache是什么意思? 
   使所有的 IDC 无效,这样CPU读取数据和指令时可以直接到原存储地址去读取,而不必从cache中得到,因为cache保留的是以前的数据, 而当前原地址的数据可能发生了变化,这样保证了数据的正确性.使CPU得到最新的数据,当然,这样会降低CPU的处理速度.

2.在romInit()函数里一般对cache进行的操作是什么? 
  在romInit()函数里,对cache主要的操作就是flush cache,因为对系统初始化前,必须要保证初始化过程的正确和连续,所以要有flush cache,disable interrupt 等操作.
阅读(4203) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~