所谓的存储系统在uClinux中的实现与配置实质上就是对4510的各个存储器组的控制寄存器进行设置。此处运用的是uClinux-Samsung-20020318.tar.gz版本。所谓配置存储系统所有的4510相关特殊寄存器的宏定义在Linux-2.4.x/Include/Asm-armnommu/Arch-samsung/Hardware.h中。部分代码如下:

…。.

#defineDSR0(2《《0)/*ROMBank0数据宽度为半字*/

…。.

#defineDSD0(3《《12)/*RAMBank0数据宽度为字*/

…。.

#defineROM_BASE0_R((0x00000000》》16)《《10)/*ROMBank0的基指针是0x000*/

…。.

#defineSDRAM_BASE0_R((0x01000000》》16)《《10)?/*RAMBank0基指针是0x0100*/

真正进行存储系统映射的代码在Linux-

2.4.x/Arch/Armnommu/Boot/Compressed/head.S部分代码如下:

……。

#ifdefCONFIG_ARCH_SAMSUNG

ldrr0,=SYSCFG/*设定系统寄存器的值*/

ldrr1,=rSYSCFG

strr1,[r0]

adrr0,SDRAM_SYSINIT_RESET/*设定初始化存储映射*/

ldmiar0,{r1-r12}

ldrr0,=SYS_INIT_BASE/*该宏定义位于上面提到的Hardware.h中,是外部存储寄存器组中第一个寄存器的地址*/

stmiar0,{r1-r12}

……

5.结束语

本文阐述了本人在嵌入式系统设计过程中遇到的关于存储系统方面问题,希望因同样问题感到迷惑的开发人员能从本文中获得启发和帮助,从而能够从更深的层次上理解和设计整个系统的硬件和软件。

责任编辑:gt

关于存储技术就介绍完了,您有什么想法可以联系小编。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查