在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM9上linux系統(tǒng)的bootloader設(shè)計(jì)

      基于ARM9上linux系統(tǒng)的bootloader設(shè)計(jì)

      作者: 時(shí)間:2012-04-11 來(lái)源:網(wǎng)絡(luò) 收藏

      3.2 拷貝Stage2至RAM

      習(xí)慣上把stage2拷貝到RAM地址的最頂部1MB開始的空間,RAM的起始地址為0x30000000。實(shí)現(xiàn)代碼如下所示:

      /*計(jì)算stage2在flash中的位置,假設(shè)該映像不超過(guò)64K,自行可修改該值*/

      Adr r0,_start
      Add r2,r0,#(64*1024)
      Add r0,ro,#0x1000
      Ldr r1 ,BLOB_START
      /*開始復(fù)制stage2到RAM,R0=源起始地址,R1=目的地址,r2源結(jié)束地址*/
      copy_loop:
      ldmia r0!,{r3-r10}
      stmia r1!, {r3-r10}
      cmp r0,r2
      ble copy_loop
      ldr r0,BLOB_START //復(fù)制完跳轉(zhuǎn)到RAM執(zhí)行由此入口進(jìn)入stage2

      3.3.設(shè)置堆棧指針

      堆棧初始化取決于用戶使用了哪些中斷,以及需要處理哪些錯(cuò)誤類型。一般情況下,管理者堆棧必須設(shè)置,如果使用了IRQ中斷,則IRQ堆棧也必須設(shè)置,下面以IRQ堆棧為例進(jìn)行設(shè)置。

      IRQMode 堆棧
      orr r1,r0,#IRQMODE|NOINT
      msr cpsr_cxsf,r1; IRQMode
      ldr sp,IRQStack

      4. stage2

      4.1.可執(zhí)行映像stage2的入口

      由于在編譯和鏈接Bootloader這樣的c程序時(shí)不能使用glibc庫(kù)支持的函數(shù),所以直接把main()函數(shù)的起始地址作為第二階段的入口點(diǎn)是最直接的想法。可以用匯編編寫一段trampoline(彈簧床)小程序用CPU跳轉(zhuǎn)指令跳到main()函數(shù)去執(zhí)行,當(dāng)mian()函數(shù)返回時(shí)會(huì)再次回到trampoline程序,具體匯編代碼如下:
      @get read to call c functions
      ldr sp DW_STACK_START @ setup stack pointer
      mov fp ,#0 @ no previous frame,so fp=0
      mov a2, #0 @set argv to NULL
      bl main @call main
      mov pc,#FLASH_BASE @otherwise,reboot

      如果正常不出錯(cuò)就不會(huì)再回到trampoline程序,否則就會(huì)回到最后一條語(yǔ)句重起

      4.2 內(nèi)存影射

      一般s3c2410上配置的SDRSAM大小為64M,該SDRAM的物理地址范圍是0x3000 0000~0x33FF FFFF(屬于Bank 6),由于1個(gè)Section的大小是1M,所以該物理空間可以被分成64個(gè)物理段(頁(yè)框)。

      由于沒有對(duì)MMU的管理代碼,處理器在運(yùn)行時(shí)直接訪問物理地址。同時(shí),因?yàn)锳RM體系結(jié)構(gòu)中數(shù)據(jù)緩沖(Dcache)必須通過(guò) MMU開啟,所以效率比較低,可通過(guò)平板映射(flat,既虛擬地址和物理地址相同)方式開啟MMU,從而使用內(nèi)存空間的 Dcache,提高的運(yùn)行速度。

      如圖1所示:

      35.jpg
      圖1虛擬地址到物理地址映射

      linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


      評(píng)論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉