博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式linux系统的开发——SDK环境的应用
阅读量:6264 次
发布时间:2019-06-22

本文共 2629 字,大约阅读时间需要 8 分钟。

前言

SDK软件开发工具包(Software Development Kit )是为软件工程师在特定的平台上进行应用程序开发而提供的一系列软件开发工具的集合。嵌入式Linux发行版LEDE提供的SDK环境与发行版环境相兼容,在SDK环境下进行程序开发,不像发行版那样需要编译整个linux系统,只需要指定特定开发的功能包进行交叉编译即可。本文介绍在LEDE提供的SDK环境下编译应用程序的方法,以及如何将生成的可执行文件和ipk包应用在系统中。

SDK环境生成

在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.mkPKG_NAME:=yxpr_ipkPKG_RELEASE:=1PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)include $(INCLUDE_DIR)/package.mkdefine Package/yxpr_ipk  SECTION:=utils  CATEGORY:=Utilities  TITLE:=Helloworld-- prints a snarky messageendefdefine Build/Prepare     mkdir -p $(PKG_BUILD_DIR)    $(CP) ./src/* $(PKG_BUILD_DIR)/endefdefine 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文件

#include
int main(void) { printf("this is make ipk and executable file test \n"); return 0; } yxpr_ipk: yxpr_ipk.o $(CC) $(LDFLAGS) yxpr_ipk.o -o yxpr_ipkyxpr_ipk.o: yxpr_ipk.c $(CC) $(CFLAGS) -c yxpr_ipk.cclean: 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

图片描述

转载地址:http://lckpa.baihongyu.com/

你可能感兴趣的文章
更为快捷的Excel操作方式 快捷键 Alt使用技巧动画图解
查看>>
程序员们最易犯的10种错误
查看>>
面试必考题!你知道CSS实现水平垂直居中的第10种方式吗?
查看>>
超多惊喜!苹果 iPhone8 最新渲染图曝光
查看>>
你想要不想要?OPPO R11将搭配前后2000万像素镜头!
查看>>
Payara基金会发布全面支持MicroProfile 2.0的5.183版
查看>>
360金融宣布采用新会计准则 2018年前三季度净利11亿
查看>>
非洲小哥见到马云 竟然提了这样的要求?
查看>>
收购大战:高通承诺将年收入增长率提至8%
查看>>
宁夏:科技创新激活高质量发展动能
查看>>
毕马威:中国消费未现降级 进一步增长潜力巨大
查看>>
四川眉山:苏东坡诞辰982周年非遗传承人展技艺
查看>>
新式茶饮市场扩张 网红奶茶店如何解决排队难题?
查看>>
兰州百万现金表彰星级的哥的姐 弘扬敬业奉献美德
查看>>
Python比总统更受关注:关于Python的五个事实
查看>>
第二代NumPy?阿里开源超大规模矩阵计算框架Mars
查看>>
几小时的事儿,苹果刚发布iOS 11.2.1又被阿里安全工程师完美越狱
查看>>
react配置eslint
查看>>
Web 安全漏洞之 OS 命令注入
查看>>
大数据平台架构技术选型与场景运用
查看>>