閱讀這些內容前,希望你對電腦有了一點簡單的概念,最好學習過電腦群組成原理並知道一些最基本的概念。如果你學習過51系列的單片機並且利用51系列的單片機做過一些開發,那看這些內容就很簡單了。如果你沒這些知識也沒關係,以我的學習經曆來看,可以給大家一個學習電腦群組成原理的建議。你可以先大致學習一下電腦群組成原理,學完之後一般會對電腦有一個大體的瞭解,電腦專業在開設這門課時一般會安排電腦群組成原理實驗,這個實驗大家要好好去做,這樣會打消你對電腦很神秘的認識。有了這些基礎之後,建議大家去學51系列的單片機,在這個小型電腦上做一些開發,這樣你就會對電腦群組成原理有了更真實更深刻的認識。學習了51系列單片機後,你也對電腦語言有了進一步的認識。
好了,下面就介紹和運行UCOS有關的ARM9晶片知識。
一般一個單片機或者說是片上系統,我們要理解的重要知識點有:
寄存器,和程式運行有最直接關係的東東。主要包括CPU內部的通用寄存器和用於控製程序啟動並執行控制寄存器,特殊功能寄存器。
儲存體系,主要內容是如何儲存程式和資料以及如何組織記憶體。
晶片的運行模式,這主要是從硬體上為程式運行提供不同的運行環境。
中斷,異常系統,這是一個很重要的概念,中斷是人和電腦進行互動的重要手段。
片上資源的使用,比如定時器,串口等等資源。這些資源一般是可程式化的,所謂可程式化就是可以通過特殊概念寄存器對他們的工作方式和初始化環境進行設定。當然這些硬體資源的使用不屬於ARM9晶片本身的知識,對CPU來說應該是外設。
當然,學習任何一種晶片都要學習它的組合語言,組合語言是晶片給我們留的唯一的借口,我們就只能通過組合語言來給晶片發布命令,使其讓它按照我們的意願來工作。關於ARM9晶片的組合語言的學習,這裡就不在多說。參考資料為ARM9常用指令集.pdf
還有,學習一個晶片主要參考的資料為晶片廠家的datasheet文檔,學習以ARM9為核心三星公司生產的晶片當然是S3C2410datasheet。如果你的英語水平不好的話可以參考中文的資料----s3c2410中文手冊。
哦,對了,關於ARM晶片和S3C2410的關係和區別你可以百度一下,呵呵。
好了,言歸正傳。說說和運行UCOS有關的硬體知識。其實我上面所列舉的資料已經很詳細了,你通過閱讀這些資料肯定能理解,我這裡說的重點是這些知識和UCOS的聯絡,因為我的主要目的是為大家介紹UCOS在S3C2410上是怎麼啟動並執行,只不過我要把它啟動並執行環境先講清楚而已。
那就先講解處理器運行模式有關的知識,這裡也包含了寄存器的知識了,同時異常和中斷的知識也一併講解。
從程式員的角度看,ARM920T有兩種彙編借口,ARM指令和THUMB指令。關於這兩種指令的相關知識和切換方式不在這裡說明,請參考S3C2410datasheet。
下面就主要講解ARM狀態下的寄存器,以及晶片的七種工作模式。
ARM920T支援7種操作模式:
未完待續。。。。。。。。