2019嵌入式原理实验源代码init_第1页
2019嵌入式原理实验源代码init_第2页
2019嵌入式原理实验源代码init_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*init.c:进行一些初始化,在Stepstone中运*它和head.S同属第一部分程序,此时MMU/*WATCHDOG寄存器#define (*(volatileunsignedlong)/*控制器的寄存器起始地址#define *关闭WATCHDOG,否则CPUvoid{WTCON=0;//关闭WATCHDOG很简单,往这个寄存器写0}00020:00021:*设置控制器以使用void{/*SDRAM13个寄存器的值unsignedlong ,,,,,,,,, i=volatileunsignedlong*p=(volatileunsignedlongfor(;i<13;p[i]=}*将第二部分代码到voidcopy2thto{unsignedint*pdwSrc=(unsignedint*)2048;unsignedint*pdwDest=(unsignedint while(pdwSrc<(unsignedint{*pdwDest=}}*void{00068:00069:*00070:#defineMMUFULL(3<< 权限#define(0<</*属于哪个域#define(1<</*必须是1#defineMMU(1<</*cacheable#define(1<<#define/*表示这是段描述符00077:#define (MMU_FULL_ACCESS| |MMU_SPECIAL| MMU00079:#define (MMU_FULL_ACCESS| |MMU_SPECIAL| MMU_CACHEABLE|MMU_BUFFERABLE|00081:#defineMMUSECTION unsignedlongvirtuladdr, unsignedlong*mmu_tlb_base=(unsignedlong*)0x stone的起始物理地址为0,第一部分程序的起始运行地址也是 *为了在开启MMU *将0~1M virtuladdr= physicaladdr= *(mmu_tlb_base+(virtuladdr>>20))=(physicaladdr&0xFFF00000)|\ MMUSECDESCWB; * 是GPIO *把从 开始的M虚拟地址空间映射到从 开始的M物理地址空 virtuladdr=0xA physicaladdr=0x *(mmu_tlb_base+(virtuladdr>>20))=(physicaladdr&0xFFF00000)|\ MMUSECDESC; *SDRAM的物理地址范围是 *总共64M,涉及64 virtuladdr=0xB physicaladdr=0x while(virtuladdr<0xB *(mmutlbbase+(virtuladdr>>20))=(physicaladdr&0xFFF00000)|\ virtuladdr+= physicaladdr+=0x100000; 00121:00123:00124:*启动00125:00126:voidmmuinit(void)00127:{ unsignedlongttb=0x asm r0, p15,0,r0,c7,c7,0\n" /*使无效ICaches和DCaches*/ p15,0,r0,c7,c10,4\n" /*drainwritebufferonv4*/ p15,0,r0,c8,c7,0\n" /*使无效指令、数据TLB*/ r4, /*r4=页表基址 p15,0,r4,c2,c0, /*设置页表基址寄存器 r0, p15,0,r0,c3,c0, /*域控制寄存器设为 * 对于控制寄存器,先读出其值,在这基础上修改感的位 * p15,0,r0,c1,c0, /*读出控制寄存器的 /*控制寄存器的低16位含义为:.RVI..RS *R:表示换出Cache 0=Randomrecement;1=Roundrobinre *V:表示异常向量表所在的位置, 0=Lowaddresses=0x ;1Highaddresses0xFFFF0000 *I:0=关闭ICaches;1=开启ICaches *R、S:用来与页表中的描述符一起确定内存的权 *B:0=CPU为小字节序;1=CPU为大字节序 *C:0=关闭DCaches;1=开启DCaches *A:0=数据时不进行地址对齐检查;1=数据时进行地址对齐检 *M:0=关闭MMU;1=开启 * /*.RVI..RSB....CAM r0,r0, /*..11............清除V、I位 r0,r0, /*......11........清除R、S位 r0,r0, /*1....111清除B/C/A/M * r0,r0, /*..............1开启对齐检查 r0,r0,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论