1. CPU到特定地址获取第一行指令来执行,实现方式通常有2中:
(1) 指定特定地址为启动地址---CPU reset后,将PC(Program Counter)寄存器设为特定地址,只要user的程序确实存储在这个地址,就能正确执行。
(2)通过中断矢量表存储程序启动地址---CPU reset后,会将CPU中存储中断矢量表(Interrupt Vector Table)地址的寄存器设为某特定地址,接着引发 Reset中断, 所以只要user将中断矢量表存储在这个地址,并指定Reset中断的中断处理程序(Interrupt Service Routine)为的某个函数(如boot()),这样该函数就可以在开机后被CPU执行。
2. User的程序开始运行后,会对CPU做初始化动作。
3. 将程序的数据段从只读存储器(ROM或Flash)载入RAM中。
4. CPU初始化完成后,之后初始化应用程序用到的硬件设备。
5. 初始化各个子系统,如RTOS(嵌入式OS)、动态存储器管理、图形界面系统等。
6. 执行应用程序的主程序。
原文:http://www.cnblogs.com/xiaoxxy/p/3571698.html