www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]摘要:Linux是一種支持多種體系結(jié)構(gòu)處理器的操作系統(tǒng),有很強(qiáng)的移植性。描述了將μClinux移植到基于S3C4510B處理器目標(biāo)板上的方法與過程。首先介紹了S3C4510B處理器和μClinux,并簡(jiǎn)單說明了如何搭建移植環(huán)境,然

摘要:Linux是一種支持多種體系結(jié)構(gòu)處理器的操作系統(tǒng),有很強(qiáng)的移植性。描述了將μClinux移植到基于S3C4510B處理器目標(biāo)板上的方法與過程。首先介紹了S3C4510B處理器和μClinux,并簡(jiǎn)單說明了如何搭建移植環(huán)境,然后著重討論了在該開發(fā)板上Bootloader的設(shè)計(jì)實(shí)現(xiàn)以及μClinux內(nèi)核的移植方法,最后對(duì)在這種基于μClinux的嵌入式系統(tǒng)環(huán)境下如何開發(fā)應(yīng)用程序做了簡(jiǎn)單說明。

關(guān)鍵詞:嵌入式系統(tǒng);移植;μClinux;S3C4510B;Bootloader

1引言

ARM(AdvancedRISCMachines),既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。

1991年ARM公司成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。目前,采用ARM技術(shù)知識(shí)產(chǎn)權(quán)(IP)核的微處理器,即我們通常所說的ARM微處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場(chǎng),基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處理器75%以上的市場(chǎng)份額,ARM技術(shù)正在逐步滲入我們生活的各個(gè)方面。

采用RISC架構(gòu)的ARM微處理器一般具有如下特點(diǎn):體積小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;大量使用寄存器,指令執(zhí)行速度更快;大多數(shù)數(shù)據(jù)操作都在寄存器中完成;尋址方式靈活簡(jiǎn)單,執(zhí)行效率高;指令長(zhǎng)度固定。ARM的產(chǎn)品主要包括ARM7Thumb家族和ARM9Thumb家族、ARM10Thumb家族以及StrongARM家族。

2基于ARM的S3C4510B處理器和μClinux

本文所使用的S3C4510B是Samsung公司使用ARM7處理器內(nèi)核開發(fā)的一塊嵌入式微處理器。作為一款高性價(jià)比的網(wǎng)絡(luò)處理器,S3C4510B已廣泛應(yīng)用于各種網(wǎng)絡(luò)設(shè)備中,其中央處理器為ARM7TDMI核。ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。TDMI的基本含義為:

T:支持16位壓縮指令集Thumb;

D:支持片上Debug;

M:內(nèi)嵌硬件乘法器(Multiplier);

I:嵌入式ICE,支持片上斷點(diǎn)和調(diào)試點(diǎn)。

ThumbTM16位壓縮指令集能以較小的存儲(chǔ)空間需求,獲得32位的系統(tǒng)性能。S3C4510B處理器包括8kB可配置的一體化Cache/SRAM,1個(gè)I2C串行接口,2個(gè)UART,2個(gè)32位定時(shí)器,18個(gè)可編程的通用I/O口,以及1個(gè)10M/100M以太網(wǎng)控制器。豐富的片內(nèi)外圍極大地簡(jiǎn)化了系統(tǒng)的設(shè)計(jì)。同時(shí)這款微處理器對(duì)操作系統(tǒng)的支持廣泛,包括WindowsCE、Linux、PalmOS等μClinux是針對(duì)控制領(lǐng)域的嵌入式Linux操作系統(tǒng),他從Linux2.0/2.4內(nèi)核派生而來,沿襲了主流Linux的絕大部分特性。適合不具備內(nèi)存管理單元(MemoryManagementUnit,簡(jiǎn)稱MMU)的微處理器/微控制器,例如ARM7TDMI,他通常具有很少內(nèi)存或Flash的嵌入式系統(tǒng)。在GNU通用公共許可證(GUNGPL)的保證下,運(yùn)行μClinux操作系統(tǒng)的用戶可以使用幾乎所有的LinuxAPI函數(shù),不會(huì)因?yàn)闆]有MMU而受到影響。

3建立μClinux開發(fā)環(huán)境

嵌入式系統(tǒng)的開發(fā)與一般的應(yīng)用開發(fā)最大的差別在于,前者需要建立特殊的硬件環(huán)境,而后者一般基于特定的操作系統(tǒng)或分布式平臺(tái)。后者的平臺(tái)已經(jīng)對(duì)硬件或網(wǎng)絡(luò)媒質(zhì)做了抽象,從而不需要由系統(tǒng)開發(fā)者來完成這些工作。而在嵌入式系統(tǒng)開發(fā)中,這也由開發(fā)者完成。

嵌入式系統(tǒng)開發(fā)環(huán)境一般分成主機(jī)端(HOST)和目標(biāo)板(TARGET)兩個(gè)部分。主機(jī)端是開發(fā)平臺(tái),用于運(yùn)行開發(fā)過程中的各種工具;目標(biāo)板是運(yùn)行和測(cè)試平臺(tái),是嵌入式系統(tǒng)的最終駐留環(huán)境。在主機(jī)端和目標(biāo)板之間需要通過某種方式進(jìn)行通信,如使用RS232C串口。這種通信的目的在于發(fā)送控制指令和傳輸數(shù)據(jù),同時(shí)獲得反饋信息。圖1是系統(tǒng)移植工作的硬件環(huán)境。

主機(jī)端的PC使用COM1通過MAX232和S3C4510B的UART1相連接,通過串口完成對(duì)目標(biāo)板的必要控制功能。S3C4510B開發(fā)板上配備有一塊DM9161以太網(wǎng)卡芯片和主機(jī)端建立原始(raw)IP連接,使用鏈路層地址完成大批量數(shù)據(jù)的傳送。

硬件環(huán)境建立之后,就需要?jiǎng)?chuàng)建軟件開發(fā)環(huán)境。軟件環(huán)境主要是指ARM體系結(jié)構(gòu)的交叉編譯環(huán)境,在主機(jī)端使用RedHatLinux8.0操作系統(tǒng),并在其上建立gcc的ARM體系結(jié)構(gòu)的交叉開發(fā)環(huán)境??梢詮膆ttp://mac.os.nctu.edu.tw處下載工具鏈:

(1)armelfbinutils2.115.i385.rpm

一些輔助工具,包括objdump(可以反編譯二進(jìn)制文件),as(匯編編譯器),ld(連接器)等。

(2)armelfgcc2.95.32.i386.rpm

配置目標(biāo)為arm的GNU的C編譯器。使用他在宿主機(jī)上開發(fā)編譯目標(biāo)上可運(yùn)行的二進(jìn)制文件。

(3)genromfs0.5.11.i386.rpm

生成Romfs的工具。Romfs是一種文件系統(tǒng)。這種文件系統(tǒng)相對(duì)于一般的ext2文件系統(tǒng)要求更少的空間。

將這3個(gè)文件放在宿主機(jī)上的任意一個(gè)目錄下,然后輸入下面的命令來安裝:

們就建立好了μClinux的軟件開發(fā)環(huán)境。

4Bootloader的設(shè)計(jì)實(shí)現(xiàn)

Bootloader被用于系統(tǒng)從硬件啟動(dòng)到操作系統(tǒng)啟動(dòng)的過渡,是嵌入式系統(tǒng)中必不可少的一段程序。他相當(dāng)于PC機(jī)中的BIOS和OSLoader,用于初始化運(yùn)行硬件和啟動(dòng)操作系統(tǒng),因此其實(shí)現(xiàn)方式由硬件的特性決定。和BIOS/OSLoader一樣,他需要固化在目標(biāo)板中,每次啟動(dòng)目標(biāo)板時(shí),首先會(huì)運(yùn)行Bootloader,在他完成CPU和相關(guān)硬件的初始化之后,才從事先規(guī)定的地址啟動(dòng)操作系統(tǒng)或嵌入式應(yīng)用的固化程序。

在嵌入式系統(tǒng)開發(fā)過程中,Bootloader還擔(dān)任了與主機(jī)端通信的任務(wù),他相當(dāng)于一個(gè)“服務(wù)器”,不斷監(jiān)聽從主機(jī)端傳來的控制信息和數(shù)據(jù)信息,完成相應(yīng)的操作。

當(dāng)系統(tǒng)上電后,Bootloader從地址0x0開始執(zhí)行,將存儲(chǔ)器映射重新配置,如表1所示,并會(huì)執(zhí)行Linux的固化內(nèi)核。

??

Bootloader可以使用ARM仿真軟件SDT2.5通過JTAG下載到目標(biāo)板上。[!--empirenews.page--]

5μClinux內(nèi)核的編譯和移植

作為操作系統(tǒng)的核心,μClinux內(nèi)核負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動(dòng)程序、文件系統(tǒng)和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的各種性能。μClinux內(nèi)核采用模塊化的組織結(jié)構(gòu),通過增減內(nèi)核模塊的方式來增減系統(tǒng)的功能。

內(nèi)核配置,在產(chǎn)品列表中選擇Samsung/4510B。在庫的選擇上選uC-libc。

(2)makedep

尋找依存關(guān)系。

(3)makeclean

清除以前構(gòu)造內(nèi)核時(shí)生成的所有目標(biāo)文件、模塊文件和一些臨時(shí)文件。

(4)makelib_only

編譯庫文件。

(5)makeuser_only

編譯用戶應(yīng)用程序文件。

(6)makeromfs

生成romfs文件系統(tǒng)。

(7)makeimage

(8)make

通過各個(gè)目錄的makefile文件進(jìn)行,會(huì)在各目錄下生成一大堆目標(biāo)文件。

上述步驟完成后,就完成了對(duì)μClinux源碼的編譯工作。我們可以在/μClinuxSamsung/images目錄下看到2個(gè)內(nèi)核文件:image.ram和image.rom。

其中iamge.rom可以直接燒寫入Flash存儲(chǔ)器中,當(dāng)系統(tǒng)復(fù)位或上電時(shí),內(nèi)核自解壓到SDRAM運(yùn)行。Image.ram可以通過SDT載入到SDRAM中直接運(yùn)行。

μCLinux的內(nèi)核有2種可選的運(yùn)行方式:可以在Flash上直接運(yùn)行,也可以加載到RAM中運(yùn)行。

Flash運(yùn)行方式:把內(nèi)核的可執(zhí)行映像文件燒到Flash上,系統(tǒng)啟動(dòng)時(shí)從Flash的某個(gè)地址開始逐句執(zhí)行。這種方法實(shí)際上是很多嵌入式系統(tǒng)采用的方法。

內(nèi)核加載RAM方式:把內(nèi)核的壓縮文件存放在Flash上,系統(tǒng)啟動(dòng)時(shí)讀取壓縮文件在內(nèi)存里解壓,然后開始執(zhí)行,這種方式相對(duì)復(fù)雜一些,但是運(yùn)行速度可能更快。同時(shí)這也是標(biāo)準(zhǔn)Linux系統(tǒng)采用的啟動(dòng)方式。

6應(yīng)用程序在μClinux上的開發(fā)

下面將介紹如何把一個(gè)應(yīng)用程序(例如examplec)添加到μClinux上的過程。

首先進(jìn)入μClinux-Samsung/user目錄并建立一個(gè)自己的子目錄,如myproject。將examplec復(fù)制到myproject目錄下,并編寫相應(yīng)的makefile文件。接著進(jìn)入user目錄,增加一行語句到該目錄下的makefile文件:

dir_$(CONFIG_USER_MAAPP_LEDNXY)+=myapp

切換到目錄μClinuxSamsung/config下,打開configin這個(gè)文件,并在最后增加類似下面的語句:

mainmenu_optionnext_comment

comment'MyApplication'

bool'example'CONFIG_USER_MYPROJECT_

EXAMPLE

comment'MyApplication

endmenu

此后,在編譯內(nèi)核的makemenuconfig時(shí)就可以在CustomizeVendor/UserSetting(NEW)這一項(xiàng)的子菜單中選中自己的應(yīng)用程序example,然后按第5節(jié)中相同的辦法進(jìn)行編譯即可。

但是,如果我們每修改一次應(yīng)用程序,就要把他加入到內(nèi)核中重新編譯,顯然效率太低,也不可行。那么有什么方法來節(jié)省調(diào)試時(shí)間呢?

在上面的章節(jié)中曾提到Bootloader可以擔(dān)當(dāng)與主機(jī)端通信的任務(wù),在這里我們就可以通過他把應(yīng)用程序快速下載到目標(biāo)板上。

首先通過elf2flt這個(gè)工具交叉編譯example.c生成在μClinux下的可執(zhí)行文件example(flat格式),命令如下:

arm-elf-gcc-Wall-o2-wl,elf2flt-oexampleexample.c

接著將宿主機(jī)與目標(biāo)板通過串口線連接,并在宿主機(jī)上啟動(dòng)一個(gè)超級(jí)終端,例如minicom,選擇好一個(gè)COM口(通常是串口1),設(shè)置波特率為19200,8個(gè)數(shù)據(jù)位、1個(gè)停止位,無校驗(yàn)。然后選擇傳輸協(xié)議Zmodom,最后選定需要傳輸?shù)奈募xample并發(fā)送。傳輸結(jié)束后可以通過超級(jí)終端在目標(biāo)板的目錄中發(fā)現(xiàn)example,這說明傳輸成功。

在目標(biāo)板上將example加上x屬性(可執(zhí)行屬性),然后輸入命令/example就可以運(yùn)行此程序了。顯然,通過這種方法可以很方便快捷的調(diào)試應(yīng)用程序,等調(diào)試結(jié)束,再把他加入到內(nèi)核中一起編譯即可。

7結(jié)語

討論了如何將μClinux移植到ARM7體系微處理器S3C4510B上的基本流程,同時(shí)也簡(jiǎn)要的介紹了Bootloader以及應(yīng)用程序的加載和調(diào)試方法。在不同的宿主機(jī)和目標(biāo)板環(huán)境下,具體移植過程中可能會(huì)出現(xiàn)各種不同的錯(cuò)誤或問題,可以充分利用GCC這個(gè)強(qiáng)大的工具,根據(jù)他的錯(cuò)誤提示來一步步的進(jìn)行修正,最終成功的移植μClinux。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

加利福尼亞庫爾弗城2024年7月16日 /美通社/ --?Snail, Inc. (納斯達(dá)克股票代碼: SNAL) (以下簡(jiǎn)稱"蝸牛游戲"或"公司")是一家領(lǐng)先的全球獨(dú)立開發(fā)商和發(fā)行商,專注于互動(dòng)數(shù)字娛樂,今日宣布方舟:...

關(guān)鍵字: iOS 安卓系統(tǒng) 移植 移動(dòng)平臺(tái)

上海2023年2月16日 /美通社/ -- 近日,諾華中國(guó)宣布與中國(guó)紅十字基金會(huì)正式啟動(dòng)"中國(guó)地中海貧血救助項(xiàng)目"廣西地區(qū)專項(xiàng)援助,將在當(dāng)?shù)囟ㄏ蛸Y助困難家庭地中海貧血患兒,同時(shí)通過相關(guān)醫(yī)生培...

關(guān)鍵字: BSP 控制 移植 大眾

北京2022年12月7日 /美通社/ -- 2022年12月3日,由高博醫(yī)學(xué)(血液?。V東研究中心南方春富(兒童)血液病研究院、南方醫(yī)科大學(xué)南方醫(yī)院共同主辦的高博醫(yī)學(xué)論壇·華南造血干細(xì)胞移植論壇通過線下線上...

關(guān)鍵字: 移植 HD PID 血細(xì)胞

捐款近4000萬 上海2022年12月7日 /美通社/ -- 2022年12月7日下午,中芯國(guó)際"芯肝寶貝計(jì)劃"十年紀(jì)念暨2022年度捐贈(zèng)儀式在上海仁濟(jì)醫(yī)院舉行。十年來,該項(xiàng)目捐贈(zèng)善款總額近4000...

關(guān)鍵字: 中芯國(guó)際 移植

北京2022年11月14日 /美通社/ -- 2022年10月,高博醫(yī)學(xué)(血液?。┍本┭芯恐行谋本└卟┎┤梳t(yī)院造血干細(xì)胞移植科迎來了五周歲"生日"。在吳彤主任帶領(lǐng)下,移植科于2017年從無到有,歷經(jīng)五...

關(guān)鍵字: 移植 OS MT CD

上海2022年11月6日 /美通社/ -- 在第五屆中國(guó)國(guó)際進(jìn)口博覽會(huì)期間,武田制藥攜5款創(chuàng)新產(chǎn)品亮相武田罕見遺傳與血液疾病領(lǐng)域?qū)?chǎng)發(fā)布會(huì)。用于移植后抗巨細(xì)胞病毒(CMV)感染或疾病治療[1]的馬立巴韋[2]迎來&quo...

關(guān)鍵字: 移植 BSP CD FDA

亙喜生物科技集團(tuán)宣布正在中國(guó)開展的、旨在全面評(píng)估GC007g治療復(fù)發(fā)/難治性急性B淋巴細(xì)胞白血病效果的1/2期注冊(cè)性臨床試驗(yàn)順利進(jìn)入2期研究階段,首例入組患者已給藥。GC007g是亙喜生物旗下的一款靶向CD19的供者來源...

關(guān)鍵字: 移植 CD

北京2022年9月9日 /美通社/ -- 諾誠健華(香港聯(lián)交所代碼:09969)今天宣布,tafasitamab (Minjuvi®)聯(lián)合來那度胺治療不適合自體干細(xì)胞移植 (ASCT) 條件的復(fù)發(fā)/難治彌漫性大B...

關(guān)鍵字: VI NJU BSP 移植

蘇州2022年8月19日 /美通社/ -- 近日,華中科技大學(xué)同濟(jì)醫(yī)學(xué)院附屬協(xié)和醫(yī)院心外科董念國(guó)教授團(tuán)隊(duì)運(yùn)用與心擎醫(yī)療聯(lián)合研發(fā)的短中期體外全磁懸浮心室輔助裝置MoyoAssist®,成功救治三例危重的終...

關(guān)鍵字: 磁懸浮 移植 IC 靜脈

上海2022年8月17日 /美通社/ -- 2022年8月16日,聚焦于基因和細(xì)胞治療的上海邦耀生物科技有限公司(以下簡(jiǎn)稱"邦耀生物")宣布,其...

關(guān)鍵字: CD 移植 BSP ISP
關(guān)閉