加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 搭建Linux平台交叉编译环境
    • 编译打包并运行应用程序
    • 新版AWTK SDK配置与编译方式
    • 链接错误解决思路
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

【从0开始创建AWTK应用程序】编译应用到嵌入式Linux平台运行

02/05 11:20
2325
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上运行、将AWTK应用程序移植到其它平台。

搭建Linux平台交叉编译环境

在上一篇文章我们介绍了使用AWTK开发简单的应用并在PC上模拟运行,本篇文章就来介绍一下怎么让应用程序运行在嵌入式Linux平台上。

1. 准备交叉编译环境

交叉编译通常在PC的Ubuntu上进行,准备对应板子的交叉编译工具链、AWTK SDK(awtk与awtk-linux-fb)、应用工程(应用需提前在AWTK Designer上打包资源)。SDK版本需要配套,否则会出现编译不通过或运行异常问题,具体根据AWTK应用程序所依赖的SDK版本选择,获取SDK有三种方式:

    AWStudio安装目录下的Installer文件夹自带的SDK;(推荐)板子供应商提供的SDK,可能与应用依赖版本不兼容,需找供应商更新SDK;Github上最新版的SDK,要求应用使用最新版awtk开发,但最新版SDK未经测试,可能存在BUG。

第一种和第三种方式需要自行配置awtk_config.py,配置方法见下面小节;第二种供应商一般会配置好,或者有专门的配置教程可以参考。

将工具链、SDK和应用拷贝到Ubuntu以下路径,SDK与应用需放在同一级目录:

工具链:/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/
SDK与应用:
/home/user/
|-- awtk/
|-- awtk-linux-fb/
|-- awtk-hello-demo/

2.配置交叉编译工具链路径

将交叉编译工具解压到Ubuntu环境内,接着打开awtk-linux-fb目录的awtk_config.py,找到TOOLS_PREFIX参数配置工具链的路径。配置tslib则需修改TSLIB_LIB_DIR与TSLIB_INC_DIR参数。# awtk_config.py
TSLIB_LIB_DIR='/opt/tslib/lib'
TSLIB_INC_DIR='/opt/tslib/include'
TOOLS_PREFIX='/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-'

配置设备可以到awtk-linux-fb/awtk-port/main_loop_linux.c修改,下图分别对应着Framebuffer、触摸屏、键盘和鼠标等设备配置。

我们可以通过 "hexdump  /dev/input/xx" 命令识别正确的触摸或鼠标设备文件名。

 图1 配置设备名称

编译打包并运行应用程序

1. 编译awtk

在Ubuntu打开awtk-linux-fb目录并输入scons命令编译awtk。

2. 编译应用程序

同样在awtk-linux-fb目录输入命令scons APP=../awtk-hello-demo,“APP=”后面为应用程序相对路径。

提示“scons: done building targets.”代表编译成功,若编译失败考虑SDK版本不配套或awtk_config.py中工具链路径设置不正确等情况。

3. 发布并运行应用程序

在提示编译成功之后,还需要执行下面命令生成realease文件夹。

./release.sh ../awtk-hello-demo/res demo

将release文件夹通过scp或其它工具将其拷贝到板子上,并在板子上运行命令:./release/bin/demo若提示can't load library 'xxx.so',需添加动态库查找路径,在板子控制台输入export LD_LIBRARY_PATH=so所在文件夹的路径,再运行应用即可。

新版AWTK SDK配置与编译方式

若使用Github最新版的SDK,可以使用另外一种配置与编译方式,这种方式可以避免了在一堆配置里面寻找配置项的麻烦。

1. 配置交叉编译工具链路径

在awtk-linux-fb目录创建名为awtk_config_define.py的文件,将TOOLS_PREFIX等参数及对应的路径写入该文件中。awtk_config_define.py还可以由脚本生成并支持修改其它参数,具体可以看最新版awtk-linux-fb的README文档。

2. 编译awtk

在Ubuntu打开awtk-linux-fb目录并输入scons命令编译awtk。

3. 编译与发布应用

去到应用程序目录下,使用scons LINUX_FB=true命令编译应用。接着输入python ./scripts/release.py生成release文件夹。

将release文件夹通过scp或其它工具将其拷贝到板子上,并在板子上运行命令:

./release/bin/demo

链接错误解决思路

若在编译过程中遇到‘undefined symbol’错误提示,需检查awtk_config.py脚本OS_LIBS是否添加链接库,OS_CPPPATH与OS_LIBPATH是否包含头文件与库文件搜索路径。

到这里,我们就完成了把AWTK应用程序应用部署到嵌入式Linux的操作,大家如果在移植过程中遇到了什么错误,可以在评论区或是加入官方交流群进行讨论。

系列往期文章:【从0开始创建AWTK应用程序 】 创建应用程序并在模拟器运行

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
AFBR-5803ATZ 1 Broadcom Limited Transceiver, 1270nm Min, 1380nm Max, 125Mbps(Tx), 125Mbps(Rx), ST Connector, Through Hole Mount, ROHS COMPLIANT, SIP-9

ECAD模型

下载ECAD模型
$34.2 查看
HFBR-1522ETZ 1 Foxconn Transmitter, 1Mbps, Through Hole Mount, ROHS COMPLIANT, 6 PIN
$13.81 查看
TJA1055T/3/CM,118 1 NXP Semiconductors TJA1055 - Enhanced fault-tolerant CAN transceiver SOIC 14-Pin

ECAD模型

下载ECAD模型
$1.95 查看
致远电子

致远电子

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。收起

查看更多

相关推荐

电子产业图谱