汇编写启动代码之开iCache

本文使用的开发板是九鼎创展的X210 iNand版本。

 

一、iROM中BL0对cache的操作

 

(1)iCache的一切动作都是自动的,不需要人为干预,我们所需要做的仅仅是打开或者关闭iCache。

(2)X210的iROM中BL0默认已经打开了iCache。

 

二、查阅ARM手册中CP15寄存器的相关部分

 

ARM处理器中CP15协处理器的寄存器,如下图所示:

汇编写启动代码之开iCache_第1张图片

 

由上图可知,CP15包括了16个寄存器,其中C1寄存器是控制寄存器,主要用于:

(1)禁止/使能MMU以及其它与存储系统有关的功能

(2)配置存储系统以及ARM处理器相关的工作

 

C1寄存器的位定义,如下图所示:

汇编写启动代码之开iCache_第2张图片汇编写启动代码之开iCache_第3张图片

 

由上图可知,bit12用于开关iCache,其中0代表关闭iCache,1代表开启iCache。

 

三、代码实现

 

(1)开启iCache

 

mrc p15,0,r0,c1,c0,0;			
orr r0, r0, #(1<<12)	// bit12置1
mcr p15,0,r0,c1,c0,0;

 

(2)关闭iCache

 

mrc p15,0,r0,c1,c0,0;			
bic r0, r0, #(1<<12)	// bit12置0
mcr p15,0,r0,c1,c0,0;

 

你可能感兴趣的:(c,嵌入式,iCache)