嵌入式linux系統的開發 SDK環境的應用

2021-09-13 18:01:49 字數 3171 閱讀 8820

sdk軟體開發工具包(software development kit )是為軟體工程師在特定的平台上進行應用程式開發而提供的一系列軟體開發工具的集合。嵌入式linux發行版lede提供的sdk環境與發行版環境相相容,在sdk環境下進行程式開發,不像發行版那樣需要編譯整個linux系統,只需要指定特定開發的功能包進行交叉編譯即可。本文介紹在lede提供的sdk環境下編譯應用程式的方法,以及如何將生成的可執行檔案和ipk包應用在系統中。

在lede原始碼目錄下執行make menuconfig命令進入lede配置介面,選擇 [*] build the lede sdk進行編譯,之後會在/source-17.01.4/bin/targets/ramips/mt7628下生成sdk軟體壓縮包 lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.linux-i686.tar.xz。

將軟體包lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.linux-i686.tar.xz解壓後得到lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.linux-i686目錄,目錄結構如下圖所示,該目錄結構與lede目錄結構基本一致,其中/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16目錄為編譯工具鏈的存放位置。

注:在lede配置介面選擇package the lede based toolchain選項進行編譯,會在bin/targets/ramips/mt7628 路徑下生成工具鏈軟體lede-toolchain-ramips-mt7628_gcc-5.4.0_musl-1.1.16.linux-i686.tar.bz2,提供給eclipse這樣的第三方平台呼叫。

1)在lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.linux-i686/package目錄下新建開發的功能程式目錄yxpr_ipk

2)在yxpr_ipk目錄下新建makefile檔案和src目錄,makefile檔案內容如下所示,關鍵內容中pkg_name:=yxpr_ipk指定了功能程式名稱,define package/yxpr_ipk中section指定了功能模組在kernel 配置介面的父目錄,title指定了功能模組在kernel 配置介面的標題說明

include $(topdir)/rules.mk

pkg_name:=yxpr_ipk

pkg_release:=1

pkg_build_dir:= $(build_dir)/$(pkg_name)

include $(include_dir)/package.mk

define package/yxpr_ipk

section:=utils

category:=utilities

title:=helloworld-- prints a snarky message

endef

define build/prepare

mkdir -p $(pkg_build_dir)

$(cp) ./src/* $(pkg_build_dir)/

endef

define package/yxpr_ipk/install

$(install_dir) $(1)/bin

$(install_bin) $(pkg_build_dir)/yxpr_ipk $(1)/bin/

endef

$(eval $(call buildpackage,yxpr_ipk))

3)在src目錄下新建程式檔案yxpr_ipk.c和makefile檔案

#includeint main(void)  

yxpr_ipk: yxpr_ipk.o

$(cc) $(ldflags) yxpr_ipk.o -o yxpr_ipk

yxpr_ipk.o: yxpr_ipk.c

$(cc) $(cflags) -c yxpr_ipk.c

clean:

rm *.o yxpr_ipk

4)在lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.linux-i686目錄下執行make menuconfig命令進入kernel配置介面,按如下圖示進行配置後執行編譯

注: 當編譯過程**現「……has both : and :: entries.  stop.」錯誤時為makefile檔案中行末尾存在空格,出現「 makefile missing separator. stop.」錯誤時為tab鍵誤用,makefile檔案中只有命令所在行才能以tab開頭

5)編譯完成後會在 /ramips/mt7628/lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.linux-i686/bin/packages/mipsel_24kc/base/目錄下生成yxpr_ipk_1_mipsel_24kc.ipk,同時會在/lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.linux-i686/build_dir/target-mipsel_24kc_musl-1.1.16/yxpr_ipk/目錄下生成yxpr_ipk可執行bin檔案

通過winscp工具將ipk包和可執行bin檔案傳輸至裝置的檔案系統根檔案目錄下,執行./yxpr_ipk直接執行bin檔案程式,執行opkg install yxpr_ipk_1_mipsel_24kc.ipk安裝ipk包後在/bin/路徑下生成yxpr_ipk可執行程式,也可通過opkg list命令檢視是否安裝成功。

注:需要增加bin檔案的可執行許可權,否則提示permission denied

嵌入式Linux系統開發

對於嵌入式系統,大家都很熟悉吧 現在隨著網路的發展,嵌入式已經成為it最有發展前途的乙個行業,所以很多人都想著學習嵌入式。舉個列子吧 對於乙個新手來說,如果讓他完成一項linux的系統開發,對他而言難於上青天 在凌陽教育是這樣安排的一些課程 linux系統提供了許許多多的功能,作為乙個軟體開發人員我...

嵌入式系統的開發

一.嵌入式系統的開發過程和工具 1.開發步驟 1 需求分析與規格說明 通常包括功能部分和非功能部分,非功能部分需求主要是指效能 成本 尺寸 重量和功耗等 2 系統設計 也叫做概要設計或總體設計,根據規格說明書中系統要實現的功能,確定如何實現這些功能的硬體和軟體,即哪些功能由硬體完成,哪些功能由軟體完...

linux嵌入式開發

我的環境 主機 ubuntu 64位 開發板 mini2440 6 makefile檔案修改 在 opt friendlyarm mini2440 linux 2.6.29下執行 sudo vi.makefile 搜尋arm linux得到乙個結果 cross compile?arm linux 然...