嵌入式arm学习总结(六)--S3C2440体系架构学习总结

2019-07-14 02:22发布

平台介绍:mini2440开发板,S3c2440主芯片 硬件信息
1.130个IO口,289个引脚17*17,BGA封装
2.电源
内核:1.25v
内存电源:1.8V
GPIO:3.3v
3.芯片内部有4K字节的SRAM空间0x40000000-0x40001000;
4.s3c2440外部
主频:12M晶振
内部RTC晶振(时钟,万年历)32.768KHZ
5.复位电路
MAX811:上电复位。按键复位,电压低于一定值复位
6.存储芯片
K9F1216D0A为NANDflash
Am29LV160DB为NORFLASH
均用来存储程序和数据
HY57V561620--SDRAM 内存 ARM有两种启动方式:一种为NORFLASH一种NANDFLASH
由OM0和OM1两个引脚决定
4.ARM的GPIO口操作步骤:(以IO口GPB为例)
 1)配置GPIO口功能        GPBCON
 2)配置有无上拉电阻      GPBUP
 3)操作(输出1或者输出0)GPBDAT

1.ARM寻址空间
1)0x0000 0000  NORFLASH的起始地址(片外)存储下载的程序
2)0x3000 0000  SDRAM的起始地址(片外) 用J-Link进行debug时把程序代码放入此空间 
3)0x4000 0000 ——0x4000 1000芯片内部SRAM的起始地址,有4K的SRAM空间
  
   SDRAM和SRAM只是存储空间大小和存取速度不同
4)ARM总寻址空间为1G,分为8个bank,每个bank128M (2 的27次方)  bank0——bank7
   只有bank6和bank7可以作为SDRAM空间使用
5)NANDFLASH---它是有独立的NANDFLASH控制器控制的,所以地址是独立编址的,与ARM的寻址没关系 2.keil里面的code,ro,rw,zi,bass   (实践:在keil中编译程序后看它们的大小变化情况)
1)code:代码大小
   ro:只读,就是代码在内存中占用的区间,可以理解为每次从ROM取指到RAM中的代码(指令)大小
   rw:已初始化,可读可写,程序运行时代码需要占用的内存大小,小于这个区间程序会出错   局部变量(已初始化char i=0;) 和全局变量都属于RW范围
   zi:未初始化段又叫bass段   char i;没初始化i

3.程序存放位置
NORFLASH与NANDFLASH,ARM从它们哪个启动由引脚OM0,OM1决定
4.内部模块: 1)HOST  USB  主动的,相当于电脑的USB,可以检测其他USB设备
   Deveice USB 被动   相当于U盘
2)五个定时器(四个可以做PWM,另一个内部定时器) 3)内部RTC必须外接电池和晶振 4)ADC有8通道10位,其中有4通道与触摸屏共用 5)60个中断源 7)camera视频
   AC97音频:麦克风和耳麦
 
8)FCLK:主频CPUI  最高达 533M   (推荐400M)
   HCLK:高速总线             (推荐200M)
   PCLK:低速总线             (推荐50M)
设置FCLK,HCLK,PCLK时
先设置分频比例
再只需设置FCLK
UCLK为USB时钟