我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 源程序 >

S3C2440学习笔记五(2440slibs源程序的分析)

归档日期:06-13       文本归类:源程序      文章编辑:爱尚语录

  以下程序是什么意思: 为啥这个文件是一堆的汇编代码,因为这里面涉及到了底层驱动,这里既是CPU的核心控制。涉及到了直接操作的寄存器和高速缓存,实际上和51的CPU是一回事,就是51可以干一件事,他就要干几十件事,没有强悍的架构和强大的寄存器和缓存团队,他就没法强悍!就跑400M吧,他为了效率加了cp15这个比较高速的协处理器,这个cp15的本质是数据处理中心。只有早期的PC机和现行的ARM还有这个东西,现在的PC机跑得非常快了,不需要CP15这类东西帮忙了。

  补充一点是,CP15可以理解为MMU,它主要的工作是地址映射,也就是给CPU提供地址。SDRAM一般为32M或64M,但是对于32位的CPU,可以管理4G的空间。那么就把这个4G的空间分成4096份,每一份1M,那么32位地址变成一个组合,14位+18位。

  ; CPSR I,F bit设置CPSR的I位(IRQ)和F位(FIQ)

  ;This function works only if the processor is in previliged mode.

  ;This function works only if the processor is in previliged mode.

  ;void CLR_IF(void);清CPSR_IR,即允许IRQ中断和FIQ中断

  ;This function works only if the processor is in previliged mode.

  应用中,存储系统是通过协处理器CP15完成的。CP15包含16个32位的寄存器,其编号是0-15。对于CP15协处理器的操作使用mcr和mrc两条协处理器指令,这两条指令的记法是从后往钱看:mcr是把r(CPU核寄存器)中的数据传送到c(协处理器寄存器)中,mrc则是把c(协处理器寄存器)中的数据传送到r(CPU核寄存器)中。对CP15协处理器的所有操作都是通过CPU寄存器和CP15寄存器之间交换数据完成的。

  寄存器C0,C1。C0的基本作用是ID编码;C1的基本作用是控制位(可读可写)。

  C1的第12位:I(bit[12])。当数据和地址处于分开时,该控制位禁止使能指令cache;其中0是禁止指令cache,1是使能指令cache;如果系统中使能统一的指令cache和数据cache或者系统中不含cache,读取时该位返回0,写入时忽略该位。当系统中的指令cache不禁止时,读取该位时返回1,写入时忽略该位。当系统中的指令cache不禁止时,读取时该位返回1,写入时忽略该位。

  C1的第2位:C(bit[2])。当数据和地址处于分开时,本控制位禁止使能数据cache;如果系统中使用统一的指令cache和数据cache时,该控制位禁止使能整个cache。其中0是禁止cache,1是使能cache;如果系统中不含cache,读取时该位返回0,写入时忽略该位。当系统中的cache不能禁止时,读取时该位返回1,写入时忽略该位。

  C1的第1位:A(bit)。对于可以选择是否支持内存访问时地址对齐检查的那些系统,本位禁止使能地址对齐检查功能;0是禁止地址对齐检查功能,1是使能对齐检查功能;对齐内存访问时地址对齐检查功能不可选择的那些系统,读取该位时根据系统是否支持地址功能对齐检查功能返回0或者1,写入时忽略该位。

  C1的第0位:M(bit[0])。禁止使能MMU或者PU;其中0是禁止地址对齐检查功能,1是使能地址对齐检查功能;如果系统中没有MMU及PU,读取时该位返回0,写入时忽略该位。

本文链接:http://dropped-call.com/yuanchengxu/87.html