讀書(shū)筆記| (二)ARM9 嵌入式學(xué)習(xí):代碼 & 原理篇

讀書(shū)筆記| ARM9 嵌入式學(xué)習(xí)

讀書(shū)筆記| ARM9 嵌入式學(xué)習(xí)

1. 啟動(dòng)代碼


1.1 功能:ARM處理器初始化

  • 硬件初始化
  • 程序代碼的搬移
  • 程序?yàn)镃嘱能,硬件無(wú)法識(shí)別吝梅,須初始化程序運(yùn)行環(huán)境

1.2 代碼實(shí)現(xiàn)流程步驟

  • 建立異常中斷向量表

    • 硬件固有的向量表,硬件實(shí)現(xiàn)惹骂,簡(jiǎn)單跳轉(zhuǎn)
    • 軟件設(shè)定的向量表苏携,進(jìn)一步確定中斷源
  • 初始化各模式的堆棧

  • 初始化硬件

    • 關(guān)閉看門狗
    • 屏蔽所有中斷
    • 初始化pll和系統(tǒng)時(shí)鐘
    • 初始化存儲(chǔ)系統(tǒng)(SDRAM...)
      • 對(duì)存儲(chǔ)器控制器的初始化
      • 即是對(duì)13個(gè)寄存器的初始化
        • 與存儲(chǔ)器控制器相關(guān)
        • 設(shè)定外部數(shù)據(jù)總線相關(guān)參數(shù)
  • 初始化應(yīng)用程序執(zhí)行環(huán)境
    將代碼和數(shù)據(jù)全部復(fù)制到SDRAM中

  • 跳轉(zhuǎn)到主程序

    • 方法一:b Main
    • 方法二:調(diào)用標(biāo)準(zhǔn)C庫(kù)函數(shù)__main()

1.3 相應(yīng)外部中斷的pro執(zhí)行流程

  • 切換模式
    • 處理器執(zhí)行完當(dāng)前指令
    • 將當(dāng)前cpsr保存到IRQ模式下spsr上
    • PC-4存放到IRQ模式下的R14上
  • 硬件強(qiáng)制將PC指向中斷向量表0x18處
    • b HandlerIRQ
  • 執(zhí)行HandlerIRQ,獲取IsrIRQ地址
  • 跳到該地址2次查表,找具體中斷服務(wù)函數(shù)地址
  • 跳到中斷服務(wù)程序執(zhí)行
  • 執(zhí)行中斷对粪,返回

2. ARM可執(zhí)行程序的映像文件


  • 文件結(jié)構(gòu)
    • ZI: 未初始化的數(shù)據(jù)段
    • RW: 可讀/寫(xiě)數(shù)據(jù)段
    • RO: 代碼,只讀數(shù)據(jù)段
    • 加載域
    • 運(yùn)行域

3. Nand/Nor


3.1 Nand:

  • 對(duì)應(yīng)PC硬盤(pán)兜叨,容量大穿扳,斷電數(shù)據(jù)不丟失
  • 無(wú)法直接尋址
  • 須有控制器控制

3.2 Nor:

  • 容量小,斷電數(shù)據(jù)不丟失
    與SDRAM的區(qū)別
  • 可直接尋址
  • 用于執(zhí)行小程序

3.3 啟動(dòng)方式:

  • nor啟動(dòng)
    • 上電后直接執(zhí)行nor中程序
    • 執(zhí)行一小段后国旷,將程序搬移到SDRAM中
  • nand啟動(dòng)
    • 上電后,將nand前4k數(shù)據(jù)復(fù)制到Stepping Stone
    • 執(zhí)行SStone中的程序
      該程序中會(huì)實(shí)現(xiàn)將所有程序從搬到SDRAM中
    • 跳到SDRAM執(zhí)行

4茫死、系統(tǒng)時(shí)鐘


4.1 S3C2440處理器有關(guān)時(shí)鐘

  • Fin: 外部晶振頻率
  • FCLK用于CPU核
  • HCLK
    • 用于AHB總線互連的設(shè)備上
    • AHP上的外設(shè)
      • 存儲(chǔ)器控制器
      • LCD控制器
      • 中斷控制器
  • PCLK
    • 用于APB總線互連的低速設(shè)備上
    • ADC/UART/GPIO/RTC/IIC/SPI

4.2 鎖相環(huán)(MPLL跪但、UPLL):實(shí)現(xiàn)倍頻

4.3 相關(guān)控制寄存器

MPLLCON: 控制FCLK和Fin的比例關(guān)系
CLKDIVN: 控制FCLK、HCLK峦萎、PCLK比例關(guān)系

4.4 系統(tǒng)時(shí)鐘初始化流程

  • 剛上電屡久,F(xiàn)CLK=Fin
  • 復(fù)位信號(hào)nRESET恢復(fù)高電平,開(kāi)始生成時(shí)鐘頻率
  • 鎖相環(huán)捕獲爱榔,需要一定時(shí)間(LockTime)
  • 鎖相環(huán)輸出新頻率值

5被环、中斷


5.1 定義

ARM處理器與各類外部設(shè)備進(jìn)行通信的方式之一

5.2 中斷類型

  • 硬中斷: 硬件設(shè)備出發(fā)的中斷
  • 軟中斷:
    • 軟件觸發(fā)
    • 具體是由某段程序代碼觸發(fā)的
    • 該函數(shù)需加swi關(guān)鍵字

5.3 相關(guān)寄存器

  • 中斷寄存器
    • SRCPND
    • SUBSRCPND
  • 中斷屏蔽寄存器
    • INTMSK
    • INTSUBMSK
  • INTOFFSET
  • 中斷模式寄存器
    • INTMODE
  • 中斷優(yōu)先級(jí)寄存器

5.4 中斷處理流程

  • 中斷源將中斷請(qǐng)求發(fā)送給中斷控制器

    • 中斷產(chǎn)生,SUBSRCPND相應(yīng)位置1
    • 如果INTSUBMSK不對(duì)相應(yīng)位進(jìn)行屏蔽详幽,SRCPND也置一
  • 中斷控制器將最需要處理的中斷請(qǐng)求發(fā)送給CPU

  • cpu保存現(xiàn)場(chǎng)筛欢,切換工作模式(IRQ),響應(yīng)中斷

    • 非獨(dú)立寄存器放該模式下的堆棧
    • 將該模式下的CPSR保存到即將進(jìn)入的模式的SPSR中
    • ?唇聘?版姑?將pc減4存進(jìn)R14
      * R14=PC-4
      * 減4的原因: 要返回發(fā)生中斷指令的下一條指令處執(zhí)行
    • PC值設(shè)為0X00000018,中斷向量表中IRQ的入口地址
  • 調(diào)用中斷處理程序迟郎,識(shí)別具體中斷源剥险,并進(jìn)行處理

  • 從中斷處理程序中返回,恢復(fù)現(xiàn)場(chǎng)宪肖,接著執(zhí)行

5.5 清除中斷

  • 對(duì)中斷寄存器清除中斷表制,與其他寄存器不同
  • 寫(xiě)1清除中斷標(biāo)志,清除之后相應(yīng)位值為0

5.6 相關(guān)要點(diǎn)

  • 切換cpu工作模式時(shí)控乾,非獨(dú)立的寄存器值需要入堆棧
  • 為什么FIQ比IRQ中斷響應(yīng)速度快?

FIQ獨(dú)立寄存器數(shù)多于IRQ么介,獨(dú)立寄存器不需入棧保存

6 存儲(chǔ)器控制器


6.1 用途:提供CPU訪問(wèn)外部設(shè)備所需的信號(hào)

6.2 地址空間:128MB/BANK、8個(gè)BANK,總尋址空間1GB

  • s3c2440的cpu具有32位地址阱持、數(shù)據(jù)總線
  • 但地址線只引出27根夭拌,即最大尋址空間128M
  • 每個(gè)128m作為一個(gè)BANK,引出8跟片選信號(hào)nGCSx,實(shí)現(xiàn)1G
  • 理論物理地址空間可達(dá)4g
    • 除去1G外設(shè)空間
    • cpu內(nèi)部使用的特殊功能寄存器地址空間

6.3 SDRAM

  • 同步動(dòng)態(tài)隨機(jī)存取內(nèi)存
  • 內(nèi)部結(jié)構(gòu): 存儲(chǔ)陣列衷咽,由行鸽扁、列、邏輯存儲(chǔ)體組成

6.3.1 工作原理:

  • 讀操作需控制線镶骗、地址線配合發(fā)出一系列命令來(lái)完成
  • 發(fā)出L-BANK激活命令桶现,鎖存相應(yīng)L-BANK地址
  • 指定行、列鼎姊,找到所需單元格
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末骡和,一起剝皮案震驚了整個(gè)濱河市相赁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慰于,老刑警劉巖钮科,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異婆赠,居然都是意外死亡绵脯,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門休里,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蛆挫,“玉大人,你說(shuō)我怎么就攤上這事妙黍°睬郑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵拭嫁,是天一觀的道長(zhǎng)可免。 經(jīng)常有香客問(wèn)我,道長(zhǎng)噩凹,這世上最難降的妖魔是什么巴元? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮驮宴,結(jié)果婚禮上逮刨,老公的妹妹穿的比我還像新娘。我一直安慰自己堵泽,他們只是感情好修己,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著迎罗,像睡著了一般睬愤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纹安,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天尤辱,我揣著相機(jī)與錄音,去河邊找鬼厢岂。 笑死光督,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的塔粒。 我是一名探鬼主播结借,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼卒茬!你這毒婦竟也來(lái)了船老?” 一聲冷哼從身側(cè)響起咖熟,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎柳畔,沒(méi)想到半個(gè)月后馍管,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡薪韩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年咽斧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躬存。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖舀锨,靈堂內(nèi)的尸體忽然破棺而出岭洲,到底是詐尸還是另有隱情,我是刑警寧澤坎匿,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布盾剩,位于F島的核電站,受9級(jí)特大地震影響替蔬,放射性物質(zhì)發(fā)生泄漏告私。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一承桥、第九天 我趴在偏房一處隱蔽的房頂上張望驻粟。 院中可真熱鬧,春花似錦凶异、人聲如沸蜀撑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)酷麦。三九已至,卻和暖如春喉恋,著一層夾襖步出監(jiān)牢的瞬間沃饶,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工轻黑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糊肤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓苔悦,卻偏偏與公主長(zhǎng)得像轩褐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子玖详,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容