吴忠躺衫网络科技有限公司

電子發燒友App

硬聲App

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

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

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

uClinux在嵌入式系統中的移植

2017-11-06 | rar | 0.5 MB | 次下載 | 1積分

資料介紹

1 引言
  uClinux作為Linux衍生操作系統,具有支持多任務、內核精簡、高效、穩定和源代碼開放等優點,專門應用于無MMU微處理器嵌入式系統[1]。將uClinux應用于嵌入式系統已經成為許多嵌入式開發人員的選擇。本文針對基于三星公司生產的ARM系列微處理器S3C44B0的硬件平臺,詳細論述移植uClinux 的過程,主要包括BootLoader的設計, uClinux內核的修改,交叉編譯環境的建立,uClinux內核的配置,編譯及連接,映像文件的下載及運行。
  2 硬件環境
  硬件平臺以S3C44B0為核心,采用的外部晶振頻率為10MHz,內核主頻最高可達到64MHz;通過RS232接口上位機通訊;外接JTAG接口,支持在線調試;采用SST39VF1601(2M字節)作為程序存儲器,對應的地址空間為0x00000000-0x001fffff;采用HY57VF641620 (8M 字節)作為數據存儲器, 對應的地址空間為0x0c000000-0x0c7fffff。硬件框圖如圖1所示。
  uClinux在嵌入式系統中的移植
  圖 1 硬件框圖
  3 uClinux的移植
  3.1 移植思路
  硬件環境確定以后,首先,要為uClinux設計一個BootLoader,通過BootLoader來初始化硬件,引導uClinux運行。Bootloader設計可以在ads中實現。然后,針對硬件環境,和設計的BootLoader修改uClinux內核。接下來,在Linux操作系統下建立編譯uClinux的交叉編譯環境。最后,配置、編譯、連接uClinux,下載編譯得到的映像文件到Flash,通過BootLoader來啟動uClinux。
  3.2 Bootloader的設計
  BootLoader就是在操作系統內核運行之前運行的一段小程序.通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終轉到操作系統內核準備好合適的環境.這里設計的BootLoader主要有啟動、下載和燒寫引導uClinux的功能。BootLoader完成初始化工作后會通過串口在Windows的終端顯示如下信息:0: tftp download 1: Write NorFlash with download file 2: Boot uClinux
  在終端的提示符“/”下輸入0、1或2分別代表選擇功能0、功能1或 功能2。BootLoader執行對應的操作,功能0利用TFTP網絡傳輸程序到SDRAM,默認下載地址為0x0c000800;功能1下載程序到flash,uClinux的映像文件image.rom的下載地址為0x00010000, Romfs.img的下載地址為0x00100000。這兩個下載地址不是任意的,前一個地址與BootLoader的功能2有關;后一個地址與uClinux的文件系統定位有關。具體確定方法在下文論述;功能2啟動燒寫到Flash的uClinux。[2]
  因為本文的重點是uClinux的移植,所以這里不再詳述BootLoader的具體實現過程,只介紹一下與uClinux相關的地方:(1)因為uClinux要利用S3C44B0的串口輸出一些信息,所以BootLoader初始化過程中要設定處理器的主頻,uClinux根據這個主頻來設定串口寄存器,得到一定數值的波特率。本文選擇的主頻為61Mhz,波特率為115200。(2)執行功能2時,會調用一個MoveRun函數:
  Void MoveRun(void)
  {void (*fp)(U32,U32)=(void(*)(U32,U32))0xc300000; //0xc300000為uClinux的運行地址
  NorFlashRead(0xc300000,0x10000,0x160000) ; //將燒寫到0x10000處的image.rom移到//0xc300000
  (*fp)(0, 0); //啟動uClinux
  }
  (3) 啟動uClinux后,image.rom在0xc300000處自解壓,并在0x0c000000處放置uClinux 的中斷向量表。即使uClinux 內核已經得到處理器的控制權運行,一旦發生中斷,處理器還是會自動跳轉到從0x0地址開始的第一級中斷向量表中的某個表項(依賴于中斷類型)處讀取指令運行。所以在編寫BootLoader時,地址0x0處的一級異常中斷矢量表只需簡單地包含向0x0c000000處的中斷向量表的跳轉指令就可以,這樣就 能夠正確地將發生的事件交給uClinux的中斷處理程序來處理,BootLoader的第一級異常中斷向量表如下所示:
  b ResetHandler ;//跳轉到初始化部分
  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
  3.3 uClinux內核的修改
  目前uClinux已被成功移植到S3C44B0及其他多款ARM芯片上,但由于嵌入式操作系統的運行是與嵌入式系統的硬件密切相關的,而硬件的設計則會因為使用場合的不同而千差萬別,因此,uClinux內核源代碼中和硬件緊密相關的部分就應該針對特定的硬件作出適當的修改。
  首先,從網站(www.uClinx.org)下載源碼uClinux-dist-20040408,但這個發行包中的內核對S3C44B0X處理器的支持是不完整的,必須為內核打上補丁uClinux-2.4.24.patch(可以從http://www.hzlitai.com.cn下載),然后在終端下執行:patch –p0
  -2.4.24.patch就可以安裝該補丁。該補丁完善了對S3C44B0的支持,但是它針對特定的硬件及Bootloader,對內核做了相應的修改,因此我們在做移植時應該根據自己的BootLoader及硬件來修改內核。修改部分如下:
  (1)壓縮內核代碼起始地址修改
  修改目錄linux-2.4.x/arch/armnommu/boot/下的文件Makefile里的如下代碼:
  ifeq ($(CONFIG_BOARD_MBA44),y)
  ZTEXTADDR = 0x0c300000
  ZRELADDR = 0x0c008000
  Endif
  ZTEXTADDR代表 映像文件image.rom自解壓的起始地址,它的值是由BootLoader的功能2決定的。執行功能2,將image.rom從Flash轉移到SDRAM的地址0x0c300000,內核自解壓,所以ZTEXTADDR必須和這個值相同。ZRELADDR代表內核解壓后代碼輸出起始地址。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1AN158 GD32VW553 Wi-Fi開發指南
  2. 1.51MB   |  2次下載  |  免費
  3. 2嵌入式軟件開發符合ISO 26262 功能安全標準
  4. 1.61 MB  |  1次下載  |  免費
  5. 3AN148 GD32VW553射頻硬件開發指南
  6. 2.07MB   |  1次下載  |  免費
  7. 4PZT驅動開關電路
  8. 0.09 MB   |  1次下載  |  免費
  9. 5模擬電路仿真實現
  10. 2.94MB   |  1次下載  |  免費
  11. 6PCB繪制基礎知識
  12. 2.44MB   |  1次下載  |  免費
  13. 7EE-38:ADSP-2181 IDMA端口-周期竊取時序
  14. 75.0KB   |  次下載  |  免費
  15. 8EE-82:使用ADSP-2181 DSP的IO空間對另一個ADSP-2181進行IDMA引導
  16. 86.86KB   |  次下載  |  免費

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  452次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  139次下載  |  1 積分
  5. 3基于STM32單片機智能手環心率計步器體溫顯示設計
  6. 0.10 MB   |  132次下載  |  免費
  7. 4美的電磁爐維修手冊大全
  8. 1.56 MB   |  24次下載  |  5 積分
  9. 5如何正確測試電源的紋波
  10. 0.36 MB   |  19次下載  |  免費
  11. 6感應筆電路圖
  12. 0.06 MB   |  10次下載  |  免費
  13. 7LZC3106G高性能諧振控制器中文手冊
  14. 1.29 MB   |  9次下載  |  1 積分
  15. 8萬用表UT58A原理圖
  16. 0.09 MB   |  9次下載  |  5 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
竞彩足球推荐| 百家乐pc| 百家乐庄闲下载| 做生意的摆件| 谈谈百家乐赢钱技巧| 网上百家乐官网新利| 丹凤县| 同乐城百家乐官网现金网| 赌博百家乐官网规则| 百家乐官网发牌盒子| 罗马百家乐官网的玩法技巧和规则| 百家乐官网庄闲必胜打| 做生意门朝山| 太阳城百家乐赌博害人| 24山分阴阳| 百家乐双筹码怎么出千| 全讯网hg7758.com| bet365手机| 克拉克百家乐官网下载| 百家乐官网技巧之微笑心法| 百家乐官网变牌器| 百家乐赢钱皇冠网| 免费玩百家乐的玩法技巧和规则| 真人游戏下载| 玛曲县| 百家乐官网巴厘岛上海在线| 24 山杨公斗首择日吉凶| 澳门百家乐出千吗| 大发888官方6222.co| 清徐县| 百家乐官网国际娱乐场开户注册 | 大发足球| 百家乐官网投注很好| 24楼层风水| 联众百家乐的玩法技巧和规则| 棋牌室装修效果图| 百家乐官网号论坛博彩正网| 24山分别指什么| 威尼斯人娱乐城惊喜| 杨浦区| 百家乐网络投注|