uboot中为什么设置CPU为SVC模式????????

在看Uboot的start.S文件时候,发现其最开始初始化系统,是将CPU设置为SVC模式,但是S3C2440的CPU的core是ARM920T,其有7种模式,为何非要设置为SVC模式,而不是设置为其他模式呢?
首先,先要了解ARM的CPU的7种模式是哪些:
http://wenku.baidu.com/view/eafa0ad2c1c708a1284a44a4.html

用户usr模式: CPU模式可以设置CPU为用户usr模式,但是由于此模式不可以直接访问板子的硬件资源,而uboot初始化,必须要去访问此类资源,所以不可以设置为usr模式。

svc模式属于特权模式,可以访问所有硬件受控资源。相对于其他的模式,SVC模式可以访问的资源更多。

uboot作用,其要做的事情是初始化系统相关硬件资源,需要获取尽量多的权限,以方便操作硬件,初始化硬件。

还有就是http://www.arm.linux.org.uk/developer/booting.php规定必须设置为SVC模式。

你可能感兴趣的:(Linux)