新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 《ARM與Linux些許問題》第二章:Linux操作系統與ARM工作模式

        《ARM與Linux些許問題》第二章:Linux操作系統與ARM工作模式

        作者: 時間:2016-11-09 來源:網絡 收藏
        ======================================================================================================================================

        首先,ARM開發板在剛上電或復位后都會首先進入SVC即管理模式,此時、程序計數器R15-PC值會被賦為0x0000 0000;bootloader就是在此模式下,位于0x0000 0000的NOR FLASH或SRAM中裝載的,因此、開機或重啟后bootloader會被首先執行。

        本文引用地址:http://www.104case.com/article/201611/317767.htm

        接著,bootloader引導Linux內核,此時、Linux內核一樣運行在ARM的SVC即管理模式下;當內核啟動完畢、準備進入用戶態init進程時,內核將ARM的當前程序狀態CPSR寄存器M[4:0]設置為10000、進而用戶態程序只能運行在ARM的用戶模式。

        由于ARM用戶模式下對資源的訪問受限,因此、可以達到保護Linux操作系統內核的目的。

        需要強調的是:Linux內核態是從ARM的SVC即管理模式下啟動的,但在某些情況下、如:硬件中斷、程序異常(被動)等情況下進入ARM的其他特權模式,這時仍然可以進入內核態(因為就是可以操作內核了);同樣,Linux用戶態是從ARM用戶模式啟動的,但當進入ARM系統模式時、仍然可以操作Linux用戶態程序(進入用戶態,如init進程的啟動過程)。

        即:Linux內核從ARM的SVC模式下啟動,但內核態不僅僅指ARM的SVC模式(還包括可以訪問內核空間的所有ARM模式);Linux用戶程序從ARM的用戶模式啟動,但用戶態不僅僅指ARM的用戶模式。

        ===========================================================================================



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 军事| 湘潭市| 原阳县| 乌鲁木齐市| 当雄县| 新兴县| 吉首市| 宣武区| 浙江省| 南澳县| 屏东县| 法库县| 上犹县| 乐山市| 花莲县| 合作市| 东乡| 苏尼特左旗| 岑溪市| 临清市| 吉安市| 徐汇区| 罗城| 普格县| 翁源县| 东丰县| 治多县| 夏津县| 神木县| 大理市| 枝江市| 任丘市| 喀什市| 延吉市| 大余县| 琼结县| 中西区| 呼伦贝尔市| 柳州市| 和平县| 越西县|