分类: WINDOWS
2012-04-19 12:23:54
在任何操作系统的启动代码中,首先要确定pc的值,在这里我们将pc的赋值定义在start.s文件中(ARM共有七种中断方式,分别为复位、未定义、软件中断、预取中止、数据终止、IRQ、FIQ,另外还有一个保留的,每一种中断都有自己的起始地址,这些都在start.s中说明);关于复位的具体实现我们写在init.s中,主要实现个模式下堆栈的定义以及bss段的定义,进一步实现mmu、clock、memory、irq、io等的初始化(这些都在boot.c中),最后跳入我们应用程序的入口;其他中断的实现我们都写在了abnormal.s中。从而实现了操作系统的启动。
总之,操作系统的启动过程就是先设置pc的值,在进行个方面的初始化。
其实在写这段程序的过程中,我自己也遇到了很多问题,比如好多的宏定义和下划线,一不小心就少写了一个字母或者一个下划线,使得程序出错又很难找到错误。以后的学习中,一定要心细。