ARM基础
异常与工作模式的关系
-
USR正常程序执行的模式,
在这个模式下,不能通过代码直接切换工作模式,除了swi产生软中断。 -
SYS运行操作系统的特权模式
类USR模式,但可直接切换工作模式 -
FIQ
通过FIQ异常进入,用于支持高速数据传输及通道处理 -
IRQ
通过IRQ异常进入,用于支持通用中断处理 -
SVC操作系统保护模式
通过Reset异常和软中断异常进入, -
ABT
Prefetch Abort和Data Abort异常进入,用于支持虚拟内存和存储器保护 -
UND
Undefined Instruction异常进入,用于支持硬件协处理器的软件仿真
在PC上开发ARM程序时,win和linux系统中编译运行一个C程序的步骤有哪些不同?
- 打开系统,打开集成环境、创建工程、编辑代码、编译、运行
- 打开系统,打开终端命令窗口,使用命令和vim工具创建并编辑源文件,使arm-gcc和Makefile编译程序,使用命令运行程序
BANK存储管理控制器
行列单元格,存储单元和存储阵列,逻辑BANK,L-BANK
s3c2440对外引出27根地址线ADDR0~26,所以访问范围是128MB
BANK相关寄存器
以下寄存器按地址+4递增!
- BWSCON位宽和等待控制寄存器,0x22011110
- BANKCONx0 ~ 5. 6 ~7控制寄存器,0x00000700.0x00018005
- REFRESH刷新控制寄存器,0x008C07A3
- BANKSIZE,0x000000B1
- MRSRBx6~7模式设置寄存器,0x00000030
存储控制器所外接的外设访问地址,功能部件寄存器地址的范围?
BANKx | 外设名称 | 起始地址 | 结束地址 | 大小 | 位宽 |
---|---|---|---|---|---|
BANK0 | NOR Flash | 0x00000000 | 0x001FFFFF | 2MB | 16 |
BANK1 | IDE接口命令块寄存器 | 0x08000000 | 00800000F | 16 | 16 |
BANK2 | IDE接口控制块寄存器 | 0x10000000 | 0x1000000F | 16 | 16 |
BANK3 | 10M网卡CS8900A | 0x19000000 | 0x190FFFFF | 1M | 16 |
BANK4 | 10/100M网卡DM9000 | 0x20000000 | |||
BANK5 | 扩展串口A | 0x28000000 | 0x28000007 | 8 | 8 |
BANK6 | SDRAM | 0x30000000 | 0x33FFFFFF | 64M | 32 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vCku8zGA-1569498977116)(E3C8B06BF4B2421B81EE7CA12771D17F)]