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中就可以执行引导启动。