ARM处理器上电/复位操作
本问节选自《嵌入式系统Linux内核开发实战指南(ARM平台)》一书
ARM处理器上电与复位操作过程类似,都是从处理器的低端复位向量地址0位置读取第一条指令,由于ARM处理器的异常中断向量是连续排列的,所以异常中断入口指令一般都是一条跳转指令,至少跳过异常中断向量区,然后按照程序流程执行。
不同嵌入式处理器的启动模式有很大差别,相同架构的不同处理器型号或序列的启动模式也不一样,比如:MC68VZ328(MC68K)有4种启动模式;PPC405GP(PowerPC)有两种启动模式;PPC440EP(PowerPC)有8种启动模式;SB1250(MIPS)有两种启动模式;PNX1700(DSP)有4种启动模式,而大部分处理器只有一种启动模式,可通过芯片的数据手册了解芯片的启动模式。
ARM处理器中的大部分也只有一种启动模式,如S3C4510、S3C44B0、IXP425等,但有的也有两种或多种启动模式,如AT40800、CS89712等。
在ARM处理器中,不管是一种启动模式还是两种启动模式,每种启动模式都是从处理器的低端复位向量地址0位置读取第一条指令是不变的,不同的是,只有一种启动模式的处理器启动时都是从挂在CS0片选上的flash或ROM芯片的0地址处读取指令,而有两种启动模式的处理器的另一种启动模式是从片内的ROM或SRAM的0地址位置读取指令。
我们这里只列出AT40800系列芯片的启动模式