999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于S3C44B0X的μCLinux內核移植

2011-09-26 02:03:58李鳳勤
上海電力大學學報 2011年4期
關鍵詞:嵌入式程序系統

陸 靜,李鳳勤

(上海電力學院計算機與信息工程學院,上海 200090)

所謂嵌入式操作系統內核移植,就是使一個操作系統能夠在某個微處理器平臺或微控制器上運行.嵌入式操作系統是嵌入式系統的靈魂,在同一個硬件平臺上可以嵌入不同的嵌入式操作系統.例如 ARM7TDMI內核,可以嵌入 Nucleus,VxWorks,μCLinux等不同的操作系統.嵌入式操作系統一般都不是為特定的處理器設計的,不能通過簡單的下載方式直接將廠商提供的內核二進制文件下載到嵌入式系統的ROM中運行.因此,嵌入式操作系統的移植技術成為嵌入式開發中的一個重要問題.本文詳細論述了μCLinux嵌入式操作系統移植到S3C44B0X微處理器的過程及方法,為其他類型的系統內核移植提供借鑒.

1 μCLinux操作系統及S3C44B0X處理器

1.1 μCLinux操作系統

μCLinux是Linux操作系統的衍生,由Linux的內核發展而來,是專門為沒有內存管理單元MMU微處理器(如ARM7TDMI)而設計的嵌入式操作系統.μCLinux是對標準Linux進行適當裁剪和優化后,形成的高度優化、代碼緊湊的嵌入式Linux.它保留了Linux的大多數優點,如穩定性、優異的網絡能力,以及優秀的文件系統支持等[1].

嵌入式μCLinux操作系統主要由3個基本部分組成:引導程序,μCLinux內核,文件系統.

內核是操作系統的核心部分,它提供了對計算機設備的核心管理調用.內核所在的地址空間稱作內核空間,外部管理程序與用戶進程所占用的地址空間稱為外部空間.通常一個程序運行會跨越兩個空間,當執行到內核空間代碼時,稱程序處于內核態;而當程序執行到外部空間代碼時,稱程序處于用戶態.單一內核是操作系統的主流,操作系統中所有的系統相關功能都被封裝在內核中,它們與外部程序處于不同的內存地址空間中,并可以通過各種方式防止外部程序直接訪問內核中的數據結構,使程序只允許系統調用的接口訪問系統的內核.而在微內核中,操作系統的內核只需要提供最基本、最核心的一部分操作,如創建刪除任務、內存管理、中斷管理等.其他程序(如文件系統、網絡協議等)盡可能地放在內核之外,可以獨立地運行,并對外部用戶程序提供操作系統服務,服務之間使用進程間通信機制.Linux采用的是單一內核結構,而μCLinux采用的是微內核結構,并可以通過定制使內核小型化[2,3].

標準Linux是針對有內存管理單元MMU的處理器而設計的.在這種處理器上,虛擬地址被送到MMU,由MMU將虛擬地址映像為物理地址,通過賦予每個任務不同的虛擬—物理地址轉換映射,以支持不同任務之間的保護.μCLinux專門用于支持沒有MMU的處理器,因此不能使用處理器的虛擬內存管理技術.μCLinux對于內存的訪問是直接的,所有程序中訪問的地址都是實際的物理地址,用戶程序與內核處于同一個地址空間,操作系統對內存空間沒有保護.因而在移植操作系統之前,需要充分考慮系統引導裝載程序的大小、中斷向量的大小,以及內核的大小,然后再為它們在FLASH中分配地址.

1.2 S3C44B0X 處理器

嵌入式系統的核心是嵌入式處理器.本文所用目標板是以SAMSUNG公司生產的ARM處理器芯片S3C44B0X為控制核心.

S3C44B0X是SAMSUNG公司推出的16/32位RISIC處理器,它為手持設備和一般應用提供了高性價比和高性能的微控制器解決方案.SAMSUNG S3C44B0X微處理器芯片內集成ARM7TDMI核,并在ARM7TDMI核基本功能的基礎上集成了豐富的外圍功能模塊,便于低成本設計嵌入式應用系統.這些外圍功能模塊包括:8 kB Cache;內部SRAM,LCD控制器;帶自動握手的2通道UART,4通道DMA;系統管理器;帶PWM功能的5通道定時器;I/O端口;具有日歷功能的實時時鐘RTC;8通道10位ADC;IIC總線接口;IIS總線接口;同步SIO接口;PLL倍頻器等.通過提供全面通用的片上外設,大大減少了系統中除處理器以外的原件配置,從而使系統成本大為降低[4].

設計中選用的開發板以S3C44B0X為控制核心,外部晶振頻率為10 MHz,內核主頻最高可達64 MHz,通過 RS232接口與上位機通訊,外接JTAG接口,支持在線調試.開發板采用SST39VF1601芯片(2 M字節)作為程序存儲器,對應的地址空間為0x00000000-0x001fffff,采用HY57VF641620芯片(8 M字節)作為數據存儲器,對應的地址空間為0x0c000000-0x0c7fffff.

2 引導裝載程序

系統引導裝載程序(Boot Loader)是在系統復位后執行的第一段代碼,相當于PC機上的BIOS,以及商業實時操作系統中的板級支持包BSP.Boot Loader首先完成系統硬件的初始化,包括時鐘的設置、存儲區的映射,以及堆棧指針的設置等,然后跳轉到操作系統內核入口,將系統控制權交給操作系統.此后系統的運行與Boot Loader再無任何關系[5].

在將Boot Loader程序燒入嵌入式開發板之前,通常都要被編譯成二進制文件(后綴名為.bin),這樣不僅能減少占用空間,還可以減少CPU的運算量.系統加電或復位后,所有的CPU通常都從某個由CPU制造商預先安排的地址上取指令.例如,基于ARM7TDMI核的CPU在復位時通常都從地址0x00000000取其第一條指令,而基于CPU構建的嵌入式系統通常都有某種類型的固態存儲設備(ROM或FLASH等)被映射到這個預先安排的地址上.因此在系統加電后,CPU將首先執行Boot Loader程序.

本設計中,將Boot Loader安放在FLASH中的0x1f000000地址,將中斷向量放在0x00000000的位置.Boot Loader完成系統初始化工作后,將內核的映像文件由Flash拷貝到SDRAM中,再從SDRAM中執行μCLinux內核的引導程序,加載μCLinux內核.將內核的映射文檔從FLASH中的0x10000000地址處加載到 SDRAM 中的0xC0000000的地址處運行.引導程序操作模式如圖1所示.

圖1 引導程序操作模式

3 μCLinux移植方法

3.1 移植思路

硬件環境確定以后,首先給μCLinux設計一個Boot Loader,通過Boot Loader來初始化硬件,引導μCLinux運行.然后針對硬件環境和設計的Boot Loader修改μClinux內核,并在Linux操作系統下建立編譯μCLinux的交叉編譯環境.最后配置、編譯、連接μCLinux,將下載編譯得到的映像文件存入Flash,并通過Boot Loader來啟動μCLinux.

3.2 移植所需開發環境

一套包含編譯功能的集成開發環境IDE是嵌入式系統開發必不可少的,ADS IDE開發環境是常用的ARM編譯開發環境,是ARM公司推出的針對ARM芯片的編程開發界面,使用了Code Warrior公司的編譯器,它幾乎支持Windows的各種操作系統.編譯完成后,可使用ARM擴展調試器(ARM eXtended Debugger,AXD)進行調試.其中,AXD是ADS中獨立于Code Warrior的圖形軟件.另外,嵌入式系統開發時需要一個交叉開發環境.交叉開發是指在一臺通用計算機上進行軟件編輯編譯,然后下載到嵌入式設備中運行調試的開發方式.移植前首先要準備好建立交叉開發環境的軟/硬件資源.

設計中,選擇交叉編譯工具 arm-elf-tools-20030314.sh.在 Linux環境,root用戶的 shell下執行./arm-elf-tools-20030314.sh,即可建立起完整的交叉編譯環境.最后需添加交叉編譯器的路徑,在root用戶的shell下執行export=$PATH:/usr/local/arm-elf/bin.

3.3 編 譯

編譯過程中,首先要完成對Boot Loader的編譯.主要設置參數為:把 Post-linker設置成ARMFromelf;RO為0xc7c0000(從0xc7c0000地址開始為只讀數據);RW為空;Object/Symbol為vector.o;section為Selfboot;設置輸出文件格式和保存路徑.

然后安裝 μCLinux源代碼并編譯.將壓縮μCLinux操作系統源代碼文件 μClinux-dist-20040408.tar.gz拷貝到 PC機上 linux操作系統的/usr/src目錄下,用 tarjxvfμClinux-dist-20040408.tar.gz命令解壓縮源代碼文件,產生/usr/src目錄下的/μClinux-dist子目錄,此目錄中含有編譯μCLinux操作系統的全部源文件.同時,根據開發板上的硬件配置,對μCLinux內核源代碼中與硬件緊密相關的部分作出適當的修改.

考慮到S3C4510B和S3C44B0X都屬于SAMSUNG公司生產的ARM7TDMI核的芯片,在很多硬件結構上都很類似.因而對照S3C4510B進行S3C44B0X的移植工作,下載針對S3C4510B的內核補丁程序后,對其作出相應的內核修改,并修正源代碼中的硬件參數設置,具體可以從修改壓縮內核運行地址、處理器配置選項及內核起始地址開始.修改內核起始地址的代碼如下:

#arch/armnommu/Makefile

#S3C44B0X

ifeq($(CONFIG_BOARD_SNDS100),y)

TEXTADDR=0x0c000000//內核的起始地址

MACHINE=S3C44B0X

INCDIR=$(MACHINE)

CORE_FILES:=$(CORE_FILES)#romfs.o

endif

3.4 下載和執行

配置超級終端波特率為57 600 Baud,無奇偶校驗,1位停止,無數據流控制.將一級中斷矢量文件boot.s從Boot Loader中分離出來,單獨進行編譯,生成二進制文件boot.bin后燒入到FLASH的起始地址0x00000000,而 Boot Loader仍放在FLASH的0x1f000000處.開發板在重新上電后復位,終端就出現了Boot Loader的啟動信息,如圖2所示.

圖2 Boot Loader啟動信息

在交叉編譯環境中完成μCLinux的編譯后,會產生一個二進制的內核文件image.bin,將其下載到SDRAM中的0xc0080000地址位置,并燒入FLASH中的0x10000000地址處,如圖3所示.

圖3 二進制內核文件燒入FLASH

由于FLASH的內存容量只有2 MB,所以內核的解壓運行不能在FLASH中直接進行,而需將其移入SDRAM中0xc0000000地址處(SDRAM的容量是8 MB),讓其在SDRAM起始位置處解壓運行μCLinux內核文件.將μCLinux映像文件燒入S3C44B0X開發板后,內核文件解壓、啟動過程如圖4所示.

圖4 內核文件解壓和啟動過程

4 結語

對于嵌入式系統開發人員來說,經常需要根據不同的硬件平臺移植嵌入式操作系統,因而掌握移植方法非常重要.本文成功實現了將μCLinux嵌入式操作系統內核移植到ARM處理器芯片S3C44B0X中,該方法對μCLinux或μC/OS-II嵌入式操作系統移植到其他處理器為核心的硬件平臺具有很好的借鑒作用.

[1]周立功.ARM嵌入式系統實驗教程[M].北京:北京航空航天大學出版社,2005:279-290.

[2]馬忠敏,李善平,康慨,等.ARM&Linux嵌入式系統教程[M].北京:北京航空航天大學出版社,2004:10-30.

[3]任哲.嵌入式實時操作系統原理及應用[M].北京:北京航空航天大學出版社,2005:50-70.

[4]田澤.嵌入式系統開發與應用教程[M].北京:北京航空航天大學出版社,2005:290-294.

[5]李全利,張小麗.基于ARM的嵌入式 μCLinux系統開發[J].長春理工大學學報:自然科學版,2009,32(2):264-267.

猜你喜歡
嵌入式程序系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
搭建基于Qt的嵌入式開發平臺
“程序猿”的生活什么樣
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 伊人婷婷色香五月综合缴缴情| 91无码视频在线观看| A级毛片高清免费视频就| 成人av专区精品无码国产 | 自偷自拍三级全三级视频| 亚洲欧美日韩另类在线一| 99久久精品国产自免费| 72种姿势欧美久久久大黄蕉| 国产精品一区二区久久精品无码| 伊人AV天堂| 中文字幕无码av专区久久| 一区二区影院| 亚洲天堂2014| 全裸无码专区| 欧美一级色视频| 日本成人福利视频| 中文字幕免费视频| 精品三级在线| 国产女人18水真多毛片18精品| 久久综合色视频| 日本三级黄在线观看| www.精品视频| 这里只有精品免费视频| 中文字幕亚洲第一| 中文字幕首页系列人妻| 国产精品污视频| 日韩久草视频| 国产精品专区第1页| 亚洲免费成人网| 久久精品国产亚洲AV忘忧草18| 免费一级毛片不卡在线播放| 欧美亚洲一区二区三区在线| 久久鸭综合久久国产| 久996视频精品免费观看| 欧美日韩激情在线| 亚洲一区二区三区香蕉| 国产网站免费| 国产尤物在线播放| 91网址在线播放| 99精品伊人久久久大香线蕉| 亚洲欧美一区二区三区麻豆| 免费无码在线观看| 97青青青国产在线播放| 国产制服丝袜无码视频| 日韩AV手机在线观看蜜芽| 九九香蕉视频| 高清久久精品亚洲日韩Av| 亚洲二三区| 美女视频黄又黄又免费高清| 色AV色 综合网站| 国产精品一区二区久久精品无码| 无码一区中文字幕| 狠狠躁天天躁夜夜躁婷婷| 国产无吗一区二区三区在线欢| 美女无遮挡免费网站| WWW丫丫国产成人精品| 日本欧美一二三区色视频| 久久一级电影| 国产综合无码一区二区色蜜蜜| 国产精品女人呻吟在线观看| 欧美成人二区| 小蝌蚪亚洲精品国产| 亚洲Av激情网五月天| 狠狠色香婷婷久久亚洲精品| 欧美日韩综合网| 男人天堂亚洲天堂| 中文字幕 91| 91久久偷偷做嫩草影院电| 日韩资源站| 五月丁香伊人啪啪手机免费观看| 欧美视频二区| 美女被操91视频| 亚洲AV无码精品无码久久蜜桃| 99久久精品国产麻豆婷婷| 欧美中文字幕在线二区| 99久久亚洲综合精品TS| 欧美亚洲一区二区三区导航| 中文字幕1区2区| 一本久道热中字伊人| 天天色天天综合网| 亚洲无码高清一区| 久久综合国产乱子免费|