女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>淺談uClinux內核在ARM開發板中的移植

淺談uClinux內核在ARM開發板中的移植

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

資料介紹

 1.Bootloader
  1.1Bootloader概述
  Boot Loader就是在操作系統內核運行之前運行的一段程序。通過這段程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核準備好正確的環境。因此,正確建立uClinux的移植的前提條件是具備一個與uClinux配套、易于使用的Bootloader。
  ARMSYS開發板提供了這樣一個uClinux專用的Bootloader,該Bootloader程序燒錄在系統的地址0x0處,每次上電即運行,能夠正確完成硬件系統的初始化和uClinux的引導。
  理論上,uClinux引導時并非一定需要一個獨立于內核的Bootloader。然而,將Bootloader與內核分開設計能夠使軟件架構更加清晰,也有助于靈活地支持多種引導方式,實現一些有用的輔助功能。
  ARMSYS提供的Bootloader的主要任務可以概括如下:
  1.硬件初始化;
  2.從主機下載新的內核映像和文件系統映像;
  3.燒寫NorFlash和Nandflash;
  4.加載uClinux 內核映像并啟動運行;
  5.提供串行超級終端上的人機操作界面。
  1.2存儲空間分布
  Bootloader采用默認的存儲空間分布地址來加載uClinux內核、文件系統,并按照正確引導uClinux的運行。在ARMSYS的Bootloader中,默認的存儲空間分布如下表:
  內容 起始地址
  存儲介質
  Bootloader程序空間 0x00000000
  Flash
  壓縮內核映像 0x00010000
  Flash
  ROM文件系統映像 0x000e0000
  Flash
  內核運行地址 0x0c008000
  SDRAM
  壓縮內核解壓地址 0x0c100000
  SDRAM
  文件系統加載 0x0c700000 SDRAM
  這個存儲空間的分配方式也不是固定不變的,可以通過修改Bootloader中的相關代碼來改變。
  1.3Bootloader的工作
  完整的Bootloader引導流程可描述如下:
  硬件初始化階段一
  ◎ 硬件初始化
  ◎ 復制二級中斷異常矢量表
  ◎ 初始化各種處理器模式
  ◎ 復制RO和RW,清零ZI
  (跳轉到C代碼入口函數)
  硬件初始化階段二
  ◎ 初始化本階段使用到的硬件設備;
  ◎ 建立人機界面
  ◎
  實現映像文件的下載和燒錄工具
  ◎ 實現映像文件的加載和運行工具
  下面對上述各步驟進行逐一說明,并對與uClinux相關的內容詳細加以說明。
  1.3.1 硬件初始化
  板子上電或復位后,程序從位于地址0x0的Reset Exception
  Vector處開始執行,因此需要在這里放置Bootloader的第一條指令:b
  ResetHandler,跳轉到標號為ResetHandler處進行第一階段的硬件初始化,主要內容為:關Watchdog
  Timer,關中斷,初始化PLL和時鐘,初始化存儲器控制器。比較重要的是PLL的輸出頻率要計算正確,ARMSYS中把它設置為64MHz;這實際上就是處理器的工作主頻,這個時間參數在第二階段計算SDRAM的刷新計數值和UART的波特率等參數時還要用到。
  1.3.2建立二級異常中斷矢量表
  異常中斷矢量表(Exception Vector Table)是Bootloader與uClinux內核發生聯系關鍵的地方之一。即使uClinux內核已經得到處理器的控制權運行,一旦發生中斷,處理器還是會自動跳轉到從0x0地址開始的第一級異常中斷矢量表中的某個表項(依據于中斷類型)處讀取指令運行。
  在編寫 Bootloader時,地址0x0處的一級異常中斷矢量表只需簡單地包含向二級異常中斷矢量表的跳轉指令就可以。這樣,就能夠正確地將發生的事件交給uClinux的中斷處理程序來處理。對于uClinux內核,它在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執行的全過程中都不必響應中斷,那么上面的設置已能滿足要求。但在我們的
  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,
  [r0], #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
  將異常中斷矢量重構到SDRAM,這樣的好處就是可以在其它的功能程序內對中斷處理程序的地址任意賦值
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費