`
jsntghf
  • 浏览: 2544144 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

汇编写启动代码之开iCache

阅读更多

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

 

一、iROM中BL0对cache的操作

 

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

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

 

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

 

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

 

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

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

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

 

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

 

由上图可知,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;

 

分享到:
评论

相关推荐

    一个2路组相连icache verilog代码

    一个2路组相连icache verilog代码

    xfs_icache.rar_icache

    `xfs_icache.c`和`xfs_icache.h`是实现和定义XFS i-cache功能的源代码文件。`xfs_icache.c`包含了实现i-cache分配和初始化的具体函数,这些函数可能包括i-node的缓存插入、查找、替换以及回收等操作。而`xfs_icache....

    icache 设计资料

    ### icache设计资料 #### 缓存设计原理与硬件实现 本资料主要介绍了缓存(cache)的设计原理及其硬件实现方法。缓存是计算机体系结构中的一个重要组成部分,它位于主存与处理器之间,用于提高数据访问速度。通过...

    ARM启动的相关代码

    ARM启动的相关代码,以点LED灯为例,步骤如下: 第一步 关闭看门狗; 第二步 初始化icache; 第三步 初始化堆栈; 第四步 设置时钟; 第五步 判断启动设备(nand/sd/onenand等),检查校验和,然后从启动设备中拷贝前...

    xfs_icache.rar_V2

    本文将深入探讨XFS文件系统中的inode缓存机制,特别是在Linux内核版本v2.13.6中的实现细节,通过分析`xfs_icache.c`和`xfs_icache.h`两个关键源代码文件,来揭示其内部工作原理。 首先,我们需要了解inode的概念。...

    华为icache彩页

    P2P应用的快速发展很大程度上促进了互联网的发展和宽带接入的普及化,但是其所带来的负面效应也随之显现,最突出的矛盾就是对网络资源的滥用。无论运营商如何增加网络带宽,P2P应用总是会尽力抢占所有可用的资源。...

    icache:内存缓存中的golang类型和线程安全键值

    icache是​​Go的缓存库,具有很高的并发访问性能。 与其他库相比,它的主要优点是它不对数据进行序列化,而仅存储值。 结果,当您从中获取值时,您将不需要解组任何东西。 这样可以节省您的时间和资源。 可以存储...

    Tiny210开源代码

    2. `leds_c_icache`:这里的"icache"可能指的是指令缓存,意味着这是C语言编写的代码,可能包含了一些针对处理器指令缓存优化的代码。C语言是嵌入式系统中常用的高级编程语言,可以提供较好的性能和可移植性。 3. `...

    ARM9指令Cache缓存模块的Verilog代码.rar

    在本资料包"ARM9指令Cache缓存模块的Verilog代码.rar"中,包含了一个用Verilog语言编写的ARM9指令Cache的实现代码,这对于理解Cache工作原理和进行硬件描述语言编程非常有帮助。 1. **ARM9架构**:ARM9是ARM公司...

    ARM9指令cache的verilog代码

    5. **写策略(Write Policy)**:包括写直达(Write Through)和写回(Write Back)。写直达直接将数据写入主存,而写回则将数据暂存,仅在替换时写回。 四、Verilog实现 在`icache.v`文件中,可能会包含以下关键...

    arm9的cache介绍.doc

    arm9 cache 的RTL 代码中定义了多个信号和寄存器,例如 IAbit、swic_data、swic_addr、InMREQ、IABORT 等,每个信号和寄存器都有其特定的功能。 arm9 cache 的优点是可以提高处理器的执行速度,因为它可以将常用的...

    A caching strategy to improve iSCSI performance

    然而,将SCSI协议封装到IP之上需要大量的开销流量,用于SCSI命令传输和互联网上的握手过程,这直接影响了iSCSI的整体性能。因此,寻找优化iSCSI性能的方法成为了一个迫切的需求。 ### iCache缓存策略 iCache策略的...

    Hotspot 方法调用之StubGenerator 源码解析1

    ICache(指令缓存)则是一个硬件级别的优化,它缓存最近使用的代码片段,以减少CPU从主内存加载指令的时间,从而提高执行速度。 总的来说,StubGenerator是Hotspot虚拟机中的一个重要组件,它通过生成平台特定的...

    Linux的启动过程与相应源码分析

    对于基于S3C2440的嵌入式系统,内核启动过程中还有一些特定的硬件配置,例如设置MPLL(多路锁相环)以调整CPU频率,以及初始化ICACHE以提高性能。这些步骤确保了Linux内核能够正确地识别和利用硬件资源。 总的来说...

    [原创]自己动手编写嵌入式Bootloader之(1).pdf

    ### 第一阶段:汇编代码(start.S) 由于嵌入式系统上电后,硬件设备尚未初始化,不具备运行C语言程序的条件,因此Bootloader的初始部分通常采用汇编语言编写。这一阶段的代码需完成原始硬件初始化和C运行环境的...

    Linux平台下Mini210S裸机程序开发指南.pdf

    程序开发中的重定位过程涉及到将代码从IROM移动到DRAM(动态随机存取存储器),以及如何控制指令缓存(icache)。这些都是裸机程序开发中的核心知识点,需要开发者仔细研究和实践。 此外,教程还覆盖了S5PV210...

Global site tag (gtag.js) - Google Analytics