當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]什么是uclinuxuclinux表示micro-control linux.即“微控制器領(lǐng)域中的Linux系統(tǒng)”,是Lineo公司的主打產(chǎn)品,同時(shí)也是開放源碼的嵌入式Linux的典范之作。uCLinux主

什么是uclinux

uclinux表示micro-control linux.即“微控制器領(lǐng)域中的Linux系統(tǒng)”,是Lineo公司的主打產(chǎn)品,同時(shí)也是開放源碼的嵌入式Linux的典范之作。uCLinux主要是針對(duì)目標(biāo)處理器沒有存儲(chǔ)管理單元MMU(Memory Management Unit)的嵌入式系統(tǒng)而設(shè)計(jì)的。它已經(jīng)被成功地移植到了很多平臺(tái)上。由于沒有MMU,其多任務(wù)的實(shí)現(xiàn)需要一定技巧。

uClinux是嵌入式Linux領(lǐng)域非常重要的分支,已成功應(yīng)用于路由器、機(jī)頂盒、PDA等領(lǐng)域,與標(biāo)準(zhǔn)Linux在內(nèi)存管理方面有著本質(zhì)的區(qū)別。

uCLinux是一種優(yōu)秀的嵌入式Linux版本,是micro-Controller-Linux的縮寫。它秉承了標(biāo)準(zhǔn)Linux的優(yōu)良特性, 經(jīng)過各方面的小型化改造,形成了一個(gè)高度優(yōu)化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,卻仍然保留了Linux的大多數(shù)的優(yōu)點(diǎn):穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡(luò)功能、對(duì)各種文件系統(tǒng)完備的支持和標(biāo)準(zhǔn)豐富的API。它專為嵌入式系統(tǒng)做了許多小型化的工作,目前已支持多款CPU。 其編譯后目標(biāo)文件可控制在幾百KB數(shù)量級(jí),并已經(jīng)被成功地移植到很多平臺(tái)上。

 


uClinux下STM32開發(fā)環(huán)境搭建

一實(shí)驗(yàn)環(huán)境介紹:

目標(biāo)板:STM3210E-EVAL

上位機(jī)操作系統(tǒng):RedHatFedora 10

虛擬機(jī):VMware 6.5

二、在開始搭建環(huán)境之前你需要三個(gè)壓縮包:

1、IA32 GNU/Linux Installer :GNU工具安裝包,你可以把它簡單的理解為Windows下面的MDK或者IAR等編譯環(huán)境。

2:這是Linux 2.26內(nèi)核的源文件??梢岳斫鉃槭窃赪indows下面我們要編寫的文件的工程的源文件的一部分。

3、uClinux-dist-20080808-20090112.patch.gz:為了支持STM32的開發(fā)和加入一些源文件??衫斫鉃樵赪indows下面我們要編寫的文件的工程的源文件的另一部分。

第2個(gè)軟件包加上第3個(gè)軟件包就是我們?cè)贛DK和IAR下的工程源文件了。理所當(dāng)然地就包含了TImer.c lib.h等STM32的庫文件了。

OK,接下為你地有一個(gè)在PC上跳的Linux操作系統(tǒng),我這里安裝的是Fedora 10 。安裝過程這里就不作詳細(xì)的介紹了,這一類教程網(wǎng)上都有。這里有一點(diǎn)需要注意一下的,就是硬盤的空間盡可能的大點(diǎn),因?yàn)檐浖?將占用2.6G左右的空間,而軟件包1、3也會(huì)占幾百M(fèi)的空間。因此你在安裝完Linux后到少要保證你的用戶區(qū)的空間要不少于3G。

若你之前玩過S3C44B0X上面的uClinux且看了網(wǎng)上現(xiàn)在點(diǎn)擊率最高的那套視頻教程的話我想你大概會(huì)使用SSH建立一條從Window到虛擬Linux的通道。在這里我花點(diǎn)小時(shí)間說說一個(gè)我個(gè)人使用的方法:使用VMware自帶的軟件共享功能。

1、 Windows下,打開VMware。

2、 VM –》SetTIngs…。

3、 在彈出介面中選擇OpTIons標(biāo)簽。

 


4、 選擇Shared Folders.

 


5、 右邊選擇Always Enable

6、 右下角Add.。把你準(zhǔn)備共享的Windows文件夾(一般為你存放那幾個(gè)軟件包的文件夾或盤)的路徑(host path)添加進(jìn)去。Name的話就是你在linux看到的文件夾的名稱。

 


說到這里再提一下Hardware那里可以把串口,USB等添加進(jìn)去。方便日后調(diào)試之用。

啟動(dòng)linux后你將會(huì)在/mnt/hgfs文件夾下看到你剛剛共享的文件夾。

三、把三個(gè)軟件包拷貝到linux里面。找一個(gè)容易找到的地方安頓好它們。

(1)接下來安裝GNU工具:

1、 運(yùn)行終端

2、 使用cd命令進(jìn)入那三個(gè)軟件包所在的文件夾

3、 執(zhí)行#./arm-2009q1-163-arm-uclinuxeabi.bin 運(yùn)行第一個(gè)軟件包

4、 運(yùn)行一段時(shí)間后會(huì)彈出一個(gè)安裝向?qū)Т翱?,跟著你需要做的就只是像在windows下面安裝軟件那樣安裝它就好?;旧鲜且宦穘ext ,到了選擇安裝文件夾時(shí)你需要注意一下它的位置,以便日后查找,用于設(shè)置環(huán)境變量。

(2)解壓第2個(gè)軟件包可以點(diǎn)擊右鍵解壓也可以在終端中輸入命令進(jìn)行解壓:(在軟件包當(dāng)前目錄路徑下運(yùn)行)# tar –xjvf uClinux-dist-20080808.tar.bz2

由于這個(gè)包的文件比較多,所以需要一定的時(shí)間。解壓后會(huì)生成一個(gè)uClinux-dist的文件夾。

(3)打補(bǔ)丁,patch第3個(gè)軟件包。

在終端下運(yùn)行:

#zcat uClinux-dist-20080808-20090112.patch.gz | patch -p1(上面的命令的前提條件是第2個(gè)包的安裝路徑和path軟件包也是同時(shí)在當(dāng)前目錄下。)

若不在同一目錄下,你必須先進(jìn)入uClinux-dist文件夾。運(yùn)行#zcat /路徑/uClinux-dist-20080808-20090112.patch.gz | patch -p1上面路徑:用你的第3個(gè)軟件包的存放路徑代替。

四、為STM3210E-EVAL配置uClinux

進(jìn)入uClinux-dist文件夾。

運(yùn)行#make menuconfig

進(jìn)入目標(biāo)板配置界面:

 


進(jìn)入”Vendor/Product SelecTIon”

 


uClinuxOnSTM32選擇Vendor,

然后選擇”STMicroelectionics”如圖:[!--empirenews.page--]

 


完成上述選擇后會(huì)自動(dòng)返回到上一界面。在上一界面選擇:” STMicroelectionics Products”里面有兩個(gè)選項(xiàng):

“STM3210E-EVAL-jffs” 和“STM3210E-EVAL-MCU_Flash”

若選擇“STM3210E-EVAL-jffs”則程序?qū)耐獠看鎯?chǔ)器中啟動(dòng)。而選擇“STM3210E-EVAL-MCU_Flash”剛從內(nèi)部FLASH中啟動(dòng)運(yùn)行。從內(nèi)部運(yùn)行的是一個(gè)uClinux的微內(nèi)核。是一個(gè)刪減的版本。

在這里我們選擇“STM3210E-EVAL-jffs”

然后回到最頂?shù)牟藛雾?xiàng)。

進(jìn)入Kernel / Library / Defaults Selection選項(xiàng)

第一項(xiàng)為”Kernal Version “ 選擇內(nèi)核版本。這里選擇2.26版。

第二項(xiàng)為”libc Version” C庫的版本,這里選擇None.

第三項(xiàng)為“Default all settings”將默認(rèn)廠商/產(chǎn)品的配置應(yīng)用到內(nèi)核。(為了將剛剛選擇的ST的E板的信息和配置加進(jìn)去,些項(xiàng)必選)。

第四項(xiàng)為“Customize Kernel Settings”用于自定義內(nèi)核設(shè)置。(嵌入式的內(nèi)核都是自己定制的,此項(xiàng)必選)。

第五項(xiàng)為“Customize Application/Library Settings”用于自定義添加到文件系統(tǒng)的應(yīng)用。(可選擇性地為板子添加若刪除LED,LCE,串口等的應(yīng)用,此項(xiàng)必選)。

第六項(xiàng)為“Update Default Vendor Settings”其功能為將當(dāng)前修改的情況設(shè)置為默認(rèn)版本。(由官方開發(fā)的模板應(yīng)該是最好的,所以這項(xiàng)一般不選,當(dāng)你做出比官方更好,更穩(wěn)定的配置時(shí),可將您自己的模板設(shè)置為默認(rèn)模板,在這里,這一項(xiàng)就不選項(xiàng)了。)

退出當(dāng)前配置,系統(tǒng)會(huì)提示你是否要保存。選擇”YES”退出后,接下來將自動(dòng)進(jìn)入uCLinux的配置界面:完整的內(nèi)核配置的詳盡介紹(每一項(xiàng)的意義,內(nèi)容很多)這里只介紹與E板相關(guān)的配置。

如圖所示:

 


進(jìn)入”System Type”

該目錄內(nèi)容如下:

 


“MMU-based … “ 因?yàn)镾TM32不具有MMU,此項(xiàng)跳過。

“ARM System type” ARM系統(tǒng)類型。進(jìn)去后選擇,基于STM32的ST板。

“STMicroelectionics,boards ”選項(xiàng)就只有一個(gè)選項(xiàng)了。選擇之。

“Support ARMv7-M processors” 選擇。

最重要的一項(xiàng)為設(shè)定內(nèi)存的地址。

“Set flash/sram size and base addr”

這些都需要根據(jù)你的板子的情況而家它上面有內(nèi)外部內(nèi)在的基地址和大小,中斷微量表的位置等的設(shè)置。

這一菜單配置完成后回到頂層菜單。

進(jìn)入“Boot Options”菜單,

 


設(shè)置”Kernel Execute-In-Place from ROM”

這里設(shè)置的是程序執(zhí)行的地址。

若程序是在外部存儲(chǔ)器執(zhí)行的話這里的地址就為0X6400 0000

若為內(nèi)部FALSH執(zhí)行剛為0X8000 0000

設(shè)置后返回,進(jìn)入“Device Drivers” -》 “Character Device” -》 “Serial Drivers”。意思是到”設(shè)備驅(qū)動(dòng)”-》”字符驅(qū)動(dòng)”-》”串口驅(qū)動(dòng)”菜單下選擇對(duì)E板的串口支持,用于與板子的交互操作。

在此目錄下選擇:

[ * ] STM3210E-EVAL USART Port

[ *] Support for console on STM3210E-EVAL USART Port

選擇后返回頂層菜單。選擇”File System”“File systems” -》 “Miscellaneous File system”選擇[ * ] Journalling Flash File System v2 (JFFS2)support 實(shí)現(xiàn)對(duì)JFFS2文件系統(tǒng)的支持。

完成后退出內(nèi)核配置,自動(dòng)進(jìn)入應(yīng)用設(shè)置。

 


如上圖所示,選擇”Miscellaneous Applications ”

選擇: “STM3210E-EVAL Demo(s)”

菜單里面有幾個(gè)已經(jīng)做好的應(yīng)用。都選上。

最后退出菜單,保存設(shè)置。

在編譯剛剛所做的一切之前有一個(gè)很重要的步驟。就是把你的GNU工具的路徑添加到環(huán)境變量中。不然的話直接make 的話就會(huì)找不到編譯器。

執(zhí)行export PATH$PATH:”你安裝的GNU工具的路徑”

添加完成后,就可以運(yùn)行make就可以了。

一切順利的話你將會(huì)在uClinux-dist/image目錄下看到生成的三個(gè)映像文件。(如果是使用外部FLASH的話)

若使用的是內(nèi)部的FLASH啟動(dòng)的微內(nèi)核的配置的話就只會(huì)生成一個(gè)文件。而且生成的過程需要按以下的方式:

1、先運(yùn)行make ucfront命令

2、再運(yùn)行make user_only命令

3、跟著運(yùn)行make romfs命令

4、最后運(yùn)行make image命令,一切順利的話,你將會(huì)在uClinux-dist/image目錄下看到生成的映像文件。

最后將生成的影像文件拷貝回Windows,使用STM32的燒寫軟件Flash loader demonstrator將軟件燒寫進(jìn)去就行了。

本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉