保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

基于ARM体系的嵌入式系统BSP的程序设计


大部分的程序代码和数据都要在SDRAM中运行。
  
  在HMS30C7202中,与SDRAM配置有关的寄存器有4个:配置寄存器、刷新定时寄存器、写缓冲写回寄存器和等待驱动寄存器,需要根据实际的系统设计对此分别加以正确配置。
  
  SDRAM的初始化过程如下:加电→延迟10ms(各具体SDRAM器件延时时间可能不同)→设置配置寄存器参数→延时→写刷新定时寄存器,设置刷新周期→延时→使能自动刷新→延时→设置模式寄存器(位于SDRAM内部)。
  
  1.4存储器地址分布重映射(remap)和MMU
  
  系统一上电,程序将自动从0地址处开始执行。因此,必须保证在0地址处存在正确的代码,即要求0地址开始入是非易失性的ROM或Flash等。但是因为ROM或Flash的访问速度相对较慢,每次中断响应发生后,都要从读取ROM或Flash上面的向量表开始,影响了中断响应速度。一般程序执行后将SDRAM映射为地址0,并把系统程序加载到SDRAM中运行,其具体步骤可以采用以下的方案:
  
  (1)上电后,从0地址的ROM开始往下执行;
  
  (2)根据映射前的地址,对SDRAM进行必要的代码和数据拷贝;
  
  (3)拷贝完成后,进行重映射操作;
  
  (4)因为RAM在重映射前准备好了内容,使得PC指针能继续在RAM里取得正确的指令。
  
  在这种地址映射的变化过程中,程序员需要仔细考虑的是:程序的执行流程不能被这种变化所打断,注意保证程序流程在重映射前后的承接关系。
  
  存储器的地址分配是很灵活的,可以将I/O操作映射成内存操作,也可以通过映射对某些不可访问的地址空间进行保护等。进行存储器初始化设计时,一定要根据应用程序的具体要求来完成地址分配。对地址管理通过MMU即存储器管理单元实现。
  
  在ARM系统中,MMU通过页式虚拟存储管理,将虚拟空间和物理空间分别分成一个个固定大小的页,并建立两者之间的映射关系,从而实现虚拟地址到物理地址的转换。MMU还可完成存储器访问权限的控制和虚拟存储器空间缓冲特性的设置。
  
  以下是实现MMU的部分代码:
  
  for=(i=1;i<0x1000;i++){
  
  pagetable[i]=(i<<20)|MMU_SECDESC;
  
  }//建立页表,每页大小为1MB,页表偏移序号是物理地址的高12位;
  
  for(addr=SDRAM_BASE;addr<(SDRAM_BASE+SDRAM_SIZE/2);addr+=SIZE_1M)
  
  pagetable[addr>>20]=addr|MMU_SECDESE|
  
  MMU_CACHEABLE|MMU_BUFFERABLE;
  
  //将SDRAM_BASE至(SDRAM_BASE+SDRAM_SIZE/2)空间的设置为不可CACHE和不可BUFFER的
  
  for(addr=SDRAM_BASE+SDRAM_SIZE/2;addr<(SDRAM_BASE+SDRAM_SIZE);addr+=SIZE_1M)
  
  pagetable[addr>>20]=(addr+0x100

《基于ARM体系的嵌入式系统BSP的程序设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/143387.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。