中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

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

        作者: 時間:2016-09-12 來源:網(wǎng)絡 收藏

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

        本文引用地址:http://www.antipu.com.cn/article/201609/303271.htm

        步驟3:在主機上安裝Linux

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

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

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

        exportINSTALL_ROOT=.......>

        exportPATH=$INSTALL_ROOT/bin:$PATH

        exportCROSS_COMPILE=arm-uclinuxeabiexport

        CROSS_COMPILE_APPS=arm-uclinuxeabiexport

        MCU=STMDISCO

        exportARCH=arm

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

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

        2.jpg

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

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

        su[輸入根用戶密碼]

        apt-getinstalleclipse-cdt

        apt-getinstallgenromfs

        apt-getinstalllibncurses5-dev

        apt-getinstallgit

        apt-getinstallmc

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

        步驟4:用Buildroot構建μClinux

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

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

        outubootu-boot.bin

        outkernelarcharmbootxipuImage.bin

        outromfs.bin

        將這些新映像寫入閃存。如果使用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個數(shù)據(jù)位、無奇偶校驗、1個停止位模式),然后按下復位按鈕,該μClinux項目將啟動運行。開機輸出將顯示在串行調試器上,顯示屏將出現(xiàn)Linux的企鵝標識。

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

        現(xiàn)在,按照代碼示例和下面的說明,將一個用戶應用添加到μClinux項目中。

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

        #include

        intmain(){

        printf(“Hello,worldn”);

        return0;

        }

        必要時使用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)

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

        在/user文件夾下,輸入:

        makeall

        ./out/bin/hello

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

        ...

        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



        評論


        相關推薦

        技術專區(qū)

        關閉