chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>淺談uClinux內(nèi)核在ARM開發(fā)板中的移植

淺談uClinux內(nèi)核在ARM開發(fā)板中的移植

2017-10-27 | rar | 0.5 MB | 次下載 | 1積分

資料介紹

 1.Bootloader
  1.1Bootloader概述
  Boot Loader就是在操作系統(tǒng)內(nèi)核運行之前運行的一段程序。通過這段程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。因此,正確建立uClinux的移植的前提條件是具備一個與uClinux配套、易于使用的Bootloader。
  ARMSYS開發(fā)板提供了這樣一個uClinux專用的Bootloader,該Bootloader程序燒錄在系統(tǒng)的地址0x0處,每次上電即運行,能夠正確完成硬件系統(tǒng)的初始化和uClinux的引導。
  理論上,uClinux引導時并非一定需要一個獨立于內(nèi)核的Bootloader。然而,將Bootloader與內(nèi)核分開設(shè)計能夠使軟件架構(gòu)更加清晰,也有助于靈活地支持多種引導方式,實現(xiàn)一些有用的輔助功能。
  ARMSYS提供的Bootloader的主要任務可以概括如下:
  1.硬件初始化;
  2.從主機下載新的內(nèi)核映像和文件系統(tǒng)映像;
  3.燒寫NorFlash和Nandflash;
  4.加載uClinux 內(nèi)核映像并啟動運行;
  5.提供串行超級終端上的人機操作界面。
  1.2存儲空間分布
  Bootloader采用默認的存儲空間分布地址來加載uClinux內(nèi)核、文件系統(tǒng),并按照正確引導uClinux的運行。在ARMSYS的Bootloader中,默認的存儲空間分布如下表:
  內(nèi)容 起始地址
  存儲介質(zhì)
  Bootloader程序空間 0x00000000
  Flash
  壓縮內(nèi)核映像 0x00010000
  Flash
  ROM文件系統(tǒng)映像 0x000e0000
  Flash
  內(nèi)核運行地址 0x0c008000
  SDRAM
  壓縮內(nèi)核解壓地址 0x0c100000
  SDRAM
  文件系統(tǒng)加載 0x0c700000 SDRAM
  這個存儲空間的分配方式也不是固定不變的,可以通過修改Bootloader中的相關(guān)代碼來改變。
  1.3Bootloader的工作
  完整的Bootloader引導流程可描述如下:
  硬件初始化階段一
  ◎ 硬件初始化
  ◎ 復制二級中斷異常矢量表
  ◎ 初始化各種處理器模式
  ◎ 復制RO和RW,清零ZI
 ?。ㄌD(zhuǎn)到C代碼入口函數(shù))
  硬件初始化階段二
  ◎ 初始化本階段使用到的硬件設(shè)備;
  ◎ 建立人機界面
  ◎
  實現(xiàn)映像文件的下載和燒錄工具
  ◎ 實現(xiàn)映像文件的加載和運行工具
  下面對上述各步驟進行逐一說明,并對與uClinux相關(guān)的內(nèi)容詳細加以說明。
  1.3.1 硬件初始化
  板子上電或復位后,程序從位于地址0x0的Reset Exception
  Vector處開始執(zhí)行,因此需要在這里放置Bootloader的第一條指令:b
  ResetHandler,跳轉(zhuǎn)到標號為ResetHandler處進行第一階段的硬件初始化,主要內(nèi)容為:關(guān)Watchdog
  Timer,關(guān)中斷,初始化PLL和時鐘,初始化存儲器控制器。比較重要的是PLL的輸出頻率要計算正確,ARMSYS中把它設(shè)置為64MHz;這實際上就是處理器的工作主頻,這個時間參數(shù)在第二階段計算SDRAM的刷新計數(shù)值和UART的波特率等參數(shù)時還要用到。
  1.3.2建立二級異常中斷矢量表
  異常中斷矢量表(Exception Vector Table)是Bootloader與uClinux內(nèi)核發(fā)生聯(lián)系關(guān)鍵的地方之一。即使uClinux內(nèi)核已經(jīng)得到處理器的控制權(quán)運行,一旦發(fā)生中斷,處理器還是會自動跳轉(zhuǎn)到從0x0地址開始的第一級異常中斷矢量表中的某個表項(依據(jù)于中斷類型)處讀取指令運行。
  在編寫 Bootloader時,地址0x0處的一級異常中斷矢量表只需簡單地包含向二級異常中斷矢量表的跳轉(zhuǎn)指令就可以。這樣,就能夠正確地將發(fā)生的事件交給uClinux的中斷處理程序來處理。對于uClinux內(nèi)核,它在RAM空間中基地址為0xc000000處建立了自己的二級異常中斷矢量表,因此,
  Bootloader的第一級異常中斷矢量表如下所示:
  b ResetHandler ;Reset Handler
  ldr
  pc,=0x0c000004 ;Undefined Instruction Handler
  ldr pc,=0x0c000008 ;Software
  Interrupt Handler
  ldr pc,=0x0c00000c ;Prefetch Abort Handler
  ldr
  pc,=0x0c000010 ;Data Abort Handler
  b 。
  ldr pc,=0x0c000018 ;IRQ
  Handler
  ldr pc,=0x0c00001c ;FIQ Handler
  LTORG
  如果在Bootloader執(zhí)行的全過程中都不必響應中斷,那么上面的設(shè)置已能滿足要求。但在我們的
  ARMSYS上提供了USB下載器,需要用到中斷,那么Bootloader必須在同樣的地址(0xc000000)處配置自己的二級異常中斷矢量表,以便同uClinux兼容。這張表事先存放在Flash Memory里,引導過程中由Bootloader將其復制到RAM地址0x0C000000:
  存放矢量表:
  ;IRQ ==the program put this phrase to 0xc000000
  ExceptionHanlderBegin
  b 。
  ldr pc, MyHandleUndef ; HandlerUndef
  ldr
  pc, MyHandleSWI ; HandlerSWI
  ldr pc, MyHandlePabort ; HandlerPabort
  ldr
  pc, MyHandleDabort ; HandlerDAbort
  b 。 ; HandlerReserved
  ldr pc,
  MyHandleIRQ ; HandlerIRQ
  ldr pc, MyHandleFIQ ; HandlerFIQ
  MyHandleUndef DCD HandleUndef ;reserve a word(32bit)
  MyHandleSWI DCD
  HandleSWI
  MyHandlePabort DCD HandlePabort
  MyHandleDabort DCD
  HandleDabort
  MyHandleIRQ DCD HandleIRQ
  MyHandleFIQ DCD HandleFIQ
  ExceptionHanlderEnd
  建立二級矢量表:
  ;****************************************************
  ;* Setup IRQ handler
  *
  ;****************************************************
  ldr
  r0,=(_IRQ_BASEADDRESS + 0x100)
  ldr r2,=_IRQ_BASEADDRESS
  add r3,r0,
  #0x100
  0
  CMP r0, r3
  STRCC r2, [r0], #4;cc:Carry clear;save R2 to R0
  address, R0 =R0+ 4。
  BCC %B0
  ldr r1,=_IRQ_BASEADDRESS
  ldr r0,=ExceptionHanlderBegin ;if there isn‘t
  ’subs pc,lr,#4‘ at 0x18, 0x1c
  ldr r3,=ExceptionHanlderEnd
  0
  CMP r0, r3
  ;put the vector table at _IRQ_BASEADDRESS(0xc000000)
  LDRCC r2, [r0],
  #4
  STRCC r2, [r1], #4
  BCC %B0
  ldr r1,=DIsrIRQ;put the IRQ judge program at
  _IRQ_BASEADDRESS+0x80(0xc000080)
  ldr r0,=IsrIRQ ;if there isn’t ‘subs
  pc,lr,#4’ at 0x18, 0x1c
  ldr r3,=IsrIRQEnd
  0
  CMP r0, r3
  LDRCC r2,
 ?。踨0], #4
  STRCC r2, [r1], #4
  BCC %B0
  ldr r1, =MyHandleIRQ ;MyHandleIRQ point to DIsrIRQ
  ldr r0,
  =ExceptionHanlderBegin
  ldr r4, =_IRQ_BASEADDRESS;
  sub r0, r1, r0
  add
  r0, r0,r4
  ldr r1, =DIsrIRQ
  str r1, [r0]
  定義Handlexxx:
  ^ (_IRQ_BASEADDRESS)
  HandleReset # 4
  HandleUndef # 4
  HandleSWI #
  4
  HandlePabort # 4
  HandleDabort # 4
  HandleReserved # 4
  HandleIRQ #
  4
  HandleFIQ # 4
  ^ (_IRQ_BASEADDRESS+0x80)
  DIsrIRQ # 4
  ;IntVectorTable
  ^
 ?。╛IRQ_BASEADDRESS+0x100)
  HandleADC # 4
  HandleRTC # 4
  HandleUTXD1 #
  4
  HandleUTXD0 # 4
  HandleSIO # 4
  HandleIIC # 4
  HandleURXD1 #
  4
  HandleURXD0 # 4
  HandleTIMER5 # 4
  HandleTIMER4 # 4
  HandleTIMER3 #
  4
  HandleTIMER2 # 4
  HandleTIMER1 # 4
  HandleTIMER0 # 4
  HandleUERR01 #
  4
  HandleWDT # 4
  HandleBDMA1 # 4
  HandleBDMA0 # 4
  HandleZDMA1 #
  4
  HandleZDMA0 # 4
  HandleTICK # 4
  HandleEINT4567 # 4
  HandleEINT3 #
  4
  HandleEINT2 # 4
  HandleEINT1 # 4
  HandleEINT0 # 4
  將異常中斷矢量重構(gòu)到SDRAM,這樣的好處就是可以在其它的功能程序內(nèi)對中斷處理程序的地址任意賦值
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1索尼333ESL電路圖資料
  2. 10.11 MB   |  2次下載  |  免費
  3. 2TINA-TI 模擬電路設(shè)計、仿真和分析軟件中文教程
  4. 3.83 MB   |  0次下載  |  5 積分
  5. 3SS6548D40V 直流有刷電機驅(qū)動芯片中文資料
  6. 1.55 MB   |  次下載  |  1 積分
  7. 4SS6235M 4A 33V性價比超高電機驅(qū)動芯片中文資料
  8. 1.26 MB   |  次下載  |  免費
  9. 5FP7195-中文應用說明書
  10. 0.93 MB   |  次下載  |  免費
  11. 6VSA101-G250T01-I 電壓傳感器產(chǎn)品使用手冊
  12. 0.72 MB   |  次下載  |  免費
  13. 7FS4056E系列單節(jié)線線充電IC
  14. 2.41 MB  |  次下載  |  免費
  15. 8FS5281E(5V USB輸入雙節(jié)鋰電池串聯(lián)應用升壓充電管理IC)
  16. 3.30 MB  |  次下載  |  免費

本月

  1. 148V到5KW無橋LLC雙向逆變器的電路原理圖免費下載
  2. 0.26 MB   |  157次下載  |  10 積分
  3. 22KW逆變側(cè)功率管的損耗如何進行計算詳細公式免費下載
  4. 0.40 MB   |  33次下載  |  2 積分
  5. 3高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
  6. 2.27 MB   |  33次下載  |  5 積分
  7. 4STM32F10x參考手冊資料
  8. 13.64 MB   |  12次下載  |  1 積分
  9. 5光伏并網(wǎng)逆變器原理
  10. 7.31 MB   |  7次下載  |  2 積分
  11. 6SW5099規(guī)格書
  12. 1.37 MB   |  6次下載  |  1 積分
  13. 7星火6J3-1交直流二波段收音機電路圖資料
  14. 1.86 MB   |  6次下載  |  免費
  15. 8S7-200 可編程序控制器系統(tǒng)手冊
  16. 12.81 MB   |  5次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191422次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分