<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式項目中使用Linux的技巧

嵌入式項目中使用Linux的技巧

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

對小型來(lái)說(shuō),STM32F429MCU內部閃存足夠用。重要的是要記?。?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/嵌入式">嵌入式中使用多個(gè)二進(jìn)制映像(引導加載程序、內核和根文件系統):這些都需要閃存扇區邊界對齊。這就避免了在裝載一個(gè)圖像時(shí),另一圖像被部分刪除或損壞的風(fēng)險。

本文引用地址:http://dyxdggzs.com/article/201609/303271.htm

步驟3:在主機上安裝Linux

要構建一個(gè)Linux,一臺Linux主機是必需的。對于WindowsPC,最好是安裝OracleVirtualBox,以創(chuàng )建“一臺”512MbyteRAM和16Gbyte硬盤(pán)的新虛擬機。

有許多Linux版本可用;據筆者的經(jīng)驗,Debian就是與VirtualBox環(huán)境相匹配的一款。這款Linux主機必須能夠訪(fǎng)問(wèn)互聯(lián)網(wǎng),以便下載針對這款ARMCortex-M目標MCU的GNU交叉編譯工具。設計師將創(chuàng )建一個(gè)類(lèi)似于圖1所示的樹(shù)形結構,并將交叉構建工具提存到/tools文件夾。

在這點(diǎn)上,有必要建立一個(gè)ACTIVATE.sh腳本。只需使用下列代碼就可實(shí)現。(......>是提取到的GNU工具文件夾路徑):

exportINSTALL_ROOT=.......>

exportPATH=$INSTALL_ROOT/bin:$PATH

exportCROSS_COMPILE=arm-uclinuxeabiexport

CROSS_COMPILE_APPS=arm-uclinuxeabiexport

MCU=STMDISCO

exportARCH=arm

在干凈的Linux系統中安裝GNU工具,但其使用并非自給自足,實(shí)際上還需要其它系統的配合。其運行實(shí)際上依賴(lài)于若干其它系統組件(如主機C/C++ 編譯器、標準C函數庫頭文件,以及一些系統工具)。獲得這些必要組件的一種方法是安裝用于C的Eclipse集成開(kāi)發(fā)環(huán)境(IDE)。除解決這個(gè)迫在眉睫的問(wèn)題外,EclipseIDE還可在開(kāi)發(fā)過(guò)程中的許多其它方面提供幫助,當然,詳述EclipseIDE的特性不是本文目的。

現在,是時(shí)候啟用Linux終端工具了:點(diǎn)擊“應用程序(Applications)”,然后“附件(Accessories)”和“終端(Terminal)”(見(jiàn)圖2)。

2.jpg

圖2:Linux包含的“終端(Terminal)”工具和“文件(Files)”、一種類(lèi)似Windows資源管理器的圖形化工具。

終端是用于配置Linux主機和構建嵌入式Linux應用程序的主要工具。鍵入以下命令來(lái)安裝Eclipse和其它所需工具:

su[輸入根用戶(hù)密碼]

apt-getinstalleclipse-cdt

apt-getinstallgenromfs

apt-getinstalllibncurses5-dev

apt-getinstallgit

apt-getinstallmc

準備該Linux項目的最后一步是下載STM32F429DiscoveryBuildroot,并解壓到/uclinux文件夾。

步驟4:用Buildroot構建μClinux

現在有必要關(guān)閉先前使用根用戶(hù)配置文件的終端,并啟動(dòng)一個(gè)新終端。在命令行中輸入“mc”,并使用導航器導航到“Documents”,然后輸入 “uClinux”命令。按Ctrl+O并激活LinuxARMCortex-M開(kāi)發(fā)部分,并運行“.ACTIVATE.sh”命令。再次按下 Ctrl+O并進(jìn)入“stm32f429-linux-builder-master”文件夾。

用戶(hù)現在有兩個(gè)選擇。如果使用VirtualBox中的示例項目,請遵循“makeclean”和“makeall”命令序列。如果準備一個(gè)全新環(huán)境,使用“make”命令。約30分鐘后,新的μClinux映像將可用,如下所示:

outubootu-boot.bin

outkernelarcharmbootxipuImage.bin

outromfs.bin

將這些新映像寫(xiě)入閃存。如果使用Windows和ST-LINK工具,下面的代碼將工作:

ST-LINK_CLI.exe-ME

ST-LINK_CLI.exe-P“u-boot.bin”0x08000000

ST-LINK_CLI.exe-P“xipuImage.bin”0x08020000

ST-LINK_CLI.exe-P“romfs.bin”0x08120000

將串行調試器(serialconsole)連接到目標電路板(外部RX=>PC10、外部TX=>PC11、115200bits/s、8個(gè)數據位、無(wú)奇偶校驗、1個(gè)停止位模式),然后按下復位按鈕,該μClinux項目將啟動(dòng)運行。開(kāi)機輸出將顯示在串行調試器上,顯示屏將出現Linux的企鵝標識。

步驟5:創(chuàng )建“你好,世界”應用

現在,按照代碼示例和下面的說(shuō)明,將一個(gè)用戶(hù)應用添加到μClinux項目中。

創(chuàng )建:“stm32f429-linux-builder-master/user/src/hello.c”文件:

#include

intmain(){

printf(“Hello,worldn”);

return0;

}

必要時(shí)使用Tab鍵,創(chuàng )建:“stm32f429-linux-builder-master/user/Makefile”文件:

CC=$(CROSS_COMPILE)gcc

LDFLAGS?=$(CFLAGS)

target_out?=out

all:checkdirs

[Tab]$(CC)$(LDFLAGS)src/hello/hello.c-o$(target_out)/bin/

hello$(LDLIBS)

[Tab]-rm-rf$(target_out)/bin/*.gdb

checkdirs:

[Tab]mkdir-p$(target_out)/bin

clean:

[Tab]-rm-rf$(target_out)

通過(guò)activate.sh腳本,在不激活交叉編譯環(huán)境下,在主機測試“Hello,world”這個(gè)應用。

在/user文件夾下,輸入:

makeall

./out/bin/hello

為將hello.c嵌入到LinuxBuildroot里的腳本,修改mk/rootf.mak文件,必要時(shí),使用Tab鍵。(粗體字表示新行開(kāi)始處):

...

user_hello:

[Tab]make-C$(user_dir)CROSS_COMPILE=$(CROSS_

COMPILE)CFLAGS=$(ROOTFS_CFLAGS)target_

out=$(target_out_user)

$(rootfs_target):$(rootfs_dir)$(target_out_busybox)/.config

user_hello

[Tab]cp-af$(rootfs_dir)/*$(target_out_romfs)

[Tab]cp-f$(target_out_kernel)/fs/ext2/ext2.ko$(target_out_romfs)/lib/modules

[Tab]cp-f$(target_out_kernel)/fs/mbcache.ko$(target_out_romfs)/lib/modules

[Tab]cp-f$(target_out_user)/bin/*$(target_out_romfs)/usr/bin



關(guān)鍵詞: 嵌入式 項目 Linux 技巧

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>