• <tbody id="wslfv"><pre id="wslfv"></pre></tbody>
    <span id="wslfv"></span>
    <tbody id="wslfv"><pre id="wslfv"></pre></tbody>
    <th id="wslfv"><track id="wslfv"><rt id="wslfv"></rt></track></th>

    <li id="wslfv"><acronym id="wslfv"></acronym></li>
    更多課程 選擇中心

    嵌入式培訓
    達內IT學院

    400-111-8989

    嵌入式開發流程

    • 發布:達內
    • 來源:網絡
    • 時間:2015-07-17 14:21

    1.首先,建立交叉編譯環境:交叉編譯是指:在PC機上編譯,在目標板上執行,我PC是linux+ arm-elf-gcc編譯器.扳子是ARM3000.板子上的系統是uclinux,這時一個剪裁的很小的實時嵌入式linux操作系統.推薦使用這個.

    2.然后就是你寫程序嘍,不過注意可能有些庫函數不能用,因為哪個編譯器稍微受限一點,不是所由的c庫函數都支持,不過一般開發的都有.

    3.連起你的主機和開發板,這個你會不?要連兩個:串口(用來控制板子)和以太口(用來下載程序),我們板子上這些外設都有,你要使沒有可以用其他的口代替傳程序,但串口可是該有的阿!

    4.在你主機上編譯程序生成目標代碼,建議用makefile文件來組織你的聯編關系.

    5.把生成代碼下載到目標板執行調試.我是用的主機的NFS(網落文件)服務,下載到目標板的.

    6.注:目標板是怎么控制的呢?是用串口控制的,可用minicom,設置好你要控制的串口,也應該是你連板子的那個.在命令行里敲上minicom,即進入minicom截面,開啟你的板子,應該就是板子uclinux系統解壓安裝的畫面了.然后用ifconfig eth0.....

    配置ip,這個ip就是你板子的ip了,注意與主機一個網段.然后mount -t nfs 主機ip:/uclinux /板子上的一個目錄,就把主機的 uclinux目錄放到板子上了(這么說其實不合理,應該叫掛載). 然后找到你剛才一經編譯好的哪個目標代碼執行即可.

    1.流程:明確需求->分析硬件軟件可行性(速度,內存,算法等)->硬件選型->原理圖設計,layout,制板(同時軟件功能模塊可開始)->

    開發BSP(即所謂的啟動程序,各硬件芯片的driver等)->放操作系統上去(如果需要的話)->軟件模塊加入->測試,,改bug->生產->over。2.首先,小的功能的話,不需要操作系統,一般一個while(1)配合中斷完事。

    如果要移植,主要是修改與BSP層相連接的部分(如物理內存映射,啟動點銜接等),然后在你的開發環境下編譯過就行了。3.移植后,你創建出來進程后,把你要跑的簡單任務掛到進程中就行了。

    即:進程主函數設為你的任務函數,這樣進程跑起來后就是跑你的任務。4.linux相對龐大,不易掌握,但功能強大;

    ucos短小精悍,但對底層支持度不高。很適合學習時使用。

    基本原理都是一樣的。5.心得:經驗很重要,動手不動口。細心,勤于學習,多問,很多很多。6.如有其他問題,隨時Hi我。

    我的嵌入式linux開發步驟:

    1. 安裝虛擬機,見<安裝及使用心得>,選擇橋接模式

    2. 虛擬機串口設置,見;

    3. 用交叉網線連接PC&開發板.

    4.NFS(PC)設置:見<安裝及使用心得>&&< linux開關機腳本相關>

    備注: a.nfs的文件權限設置777

    b.掛載/卸載nfs時候,注意當前所在文件夾,以免不成功

    讓PC linux的/etc/rc.d/rc.local里面增加了部分命令,隨機啟動.如下:

    [root@localhost rc.d]# more rc.local

    #!/bin/sh

    # This script will be executed *after* all the other init scripts.

    # You can put your own initialization stuff in here if you don't

    # want to do the full Sys V style init stuff.

    touch /var/lock/subsys/local

    ifconfig eth0 10.96.15.169

    ifconfig eth0 netmask 255.255.255.0

    /etc/rc.d/init.d/smb start

    /etc/rc.d/init.d/nfs start

    /etc/rc.d/init.d/portmap start

    /etc/rc.d/init.d/iptables stop

    echo "nfs setup OK from /etc/rc.d/rc.local."

    [root@localhost rc.d]#

    4. NFS(開發板)設置:見<安裝及使用心得>

    在開發板設置腳本/usr/yangchu.sh,這樣開機運行該腳本來自動掛載

    #!/bin/sh

    ifconfig eth0 10.96.15.170

    mount -t nfs 10.96.15.169:/home/myth /mnt -o nolock

    echo “nfs ok!”

    此時由于NFS的緣故,可以在開發板mnt文件里看到實時變化的10.96.15.169:/home/myth文件夾的情況.

    在開發板/etc/init.d/rcS的最后加入了執行上述腳本的語句,開機會自動運行

    這里發現一個問題:發現板子啟動時,不會去執行/usr/etc/rc.local文件,而且/etc/init.d/rcS文件包含了/usr/etc/rc.local的所有語句.不曉得這個是不是板子

    的一個bug,所以開發商把后者的語句都讓前者去執行完畢了.

    此外一個小發現記錄下來:之前用minicom連上板子后,一直是看不到光標的,這給操作帶來很大不便,但無意中發現在minicom執行一個非法操作:cat /usr/1.jpg后會自動退出

    minicom.不過重新進入minicom后就可以看到光標了.

    5.在PC上編輯hello.c文件分別見虛擬機myth文件,用autotools生成makefile,并用GDB調試.見&

    6.在PC上安裝交叉編譯工具,見<交叉編譯場景(arm-linux)分析>:

    一般情況下,主機和目標機是同一類型的計算機,這就是正常的編譯,沒有什么好說的。所謂交叉編譯就是在主機上為目標機編譯,比如在PC上編譯,然后在手機上運行,這種

    編譯就叫交叉編譯.交叉編譯需要交叉編譯器,不同的目標機(主要是看芯片類型)需要不同的交叉編譯器,比如我們這里要介紹的arm-linux交叉編譯,所用的交叉編譯器就是arm-linux-gcc系列。

    使用穩定版本cross-2.95.3.tar.bz2來建立交叉編譯環境:

    a.將cross-2.95.3.tar.bz2解壓到/usr/local/arm,會在該文件夾生成文件夾2.95.3,并刪除壓縮包cross-2.95.3.tar.bz2

    b.在/etc/profile最后行增加環境變量"export PATH=$PATH:/usr/local/arm/2.95.3/bin"

    7.利用交叉編譯工具,在PC上將步驟6生成的hello.c的makefile生成可在開發板運行的hello

    a.修改makefile里的gcc工具

    b../configure --host=arm-linux --prefix=/xxx

    --host:指定目標機的平臺類型。一般格式為CPU類型-操作系統名稱。比如,目標機的CPU為arm,操作系統為linux,可以這樣寫--host=arm-linux。

    --prefix:這是安裝路徑的前綴,即編譯結果放置的位置。默認值是/usr或者/usr/local,交叉編譯時不能使用默認值,否則它會覆蓋你本機的文件,所以要指定一個路徑。比如,可以指定為--prefix=/work/cross/rootfs/usr.配置完成后,運行make編譯,運行make install安裝。

    8.做幾個里的實驗.

    9.內核模塊編譯:見<內核模塊編譯>:

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:嵌入式系統開發的一般流程
    下一篇:達內嵌入式課程體系的八大核心

    嵌入式開發流程

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    欧美一级高清片,一级欧美免费大片视频,欧美三级在线电影免费 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>