关于S3C2440的学习总结(一)内存分配和启动方式

  ARM是功能更加强大的单片机,在学习裸机程序设计的过程中,发现ARM比一般的单片机集成了更多的外设,包含更多的GPIO,有更多的寄存器,通过寄存器的设置和启用来控制相关引脚,从而控制相关设备。这导致ARM的编程和一般单片机的编程有所不同,ARM9一般是32位。而现在单片机一般为8位和16位,编程时在单片机上对于某个位一般直接赋值,而对于ARM则习惯使用位操作,一方面容易实现操作,另一方面不影响寄存器其他位的值。

       S3C2440为32位的CPU,故从理论计算其应该有4GB的寻址范围,但实际上只有1GB被使用来连接外设,另一部分作为CPU的内部存储器地址,其余未被使用。其中1GB的寻址范围又分为BANK0~BANK7,其中BANK6和BANK7的大小是可编程的,一般接SDRAM,BANK0~BANK5固定是128M,,CPU对外引出8根片选信号nGCS0~nGCS7,对应于BANK0~BANK7     ,故可达到1GB的寻址空间。

       支持两种方式的启动:NOR FLASH和NAND FLASH。NOR  FLASH的接口与ARM完全相同,可直接访问任意地址,支持XIP,故选择从NOR  FLASH启动可直接讲引导代码放在NOR  FLASH中执行引导。NAND  FLASH的访问必须为串行访问。CPU内部有4KB的缓冲RAM,成为“steppingstone”,当从NAND  FLASH启动时,CPU先将NAND  FLASH的前面4KB的代码复制到steppingstone中,然后跳到地址0处开始执行,故只需将引导代码放在NAND FLASH的前4KB中就可以执行引导启动。

原文地址:https://www.cnblogs.com/LJTbozai/p/2264861.html