0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

ZLG致远电子 2023-12-07 12:08 次阅读

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有三种方式:

  1. AWStudio安装目录下的Installer文件夹自带的SDK;推荐
  2. 板子供应商提供的SDK,可能与应用依赖版本不兼容,需找供应商更新SDK;
  3. 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" 命令识别正确的触摸或鼠标设备文件名。

394e3a26-94b6-11ee-9788-92fbcf53809c.png

图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_CPPPATHOS_LIBPATH是否包含头文件与库文件搜索路径。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4982

    文章

    18281

    浏览量

    288470
  • Linux
    +关注

    关注

    87

    文章

    10991

    浏览量

    206736
  • awtk
    +关注

    关注

    0

    文章

    23

    浏览量

    169
收藏 人收藏

    评论

    相关推荐

    Linux嵌入式系统与硬件平台的关系

    以为一个没有磁盘的Linux嵌入式系统可以运行任何Linux应用程序。综上所述,Linux
    发表于 04-10 11:33

    分享Linux嵌入式系统与硬件平台的关系

    ,但这可能会花很长的时间,而且如果不仔细的话,还可能带来很大的困扰。许多Linux应用程序都要用到虚拟内存,在许多嵌入式系统中,是没有价值的,所以不要以为一个没有磁盘的
    发表于 09-18 14:46

    嵌入式Linux应用程序开发标准教程

    内容简介:隆重申明:本书为嵌入式与移动开发系列,国家信息技术紧缺人才培养工程系列丛书,内容末尾提供免费下载嵌入式Linux应用程序开发标准教程这本书,在业内有着非常多的赞美,非常适合
    发表于 05-07 15:40

    AWTK的特点

    能支持Linux、MacOS、iOS、Android操作系统,还能支持Windows操作系统、WEB以及各种小程序,可以说是一个全能的嵌入式GUI引擎。AWTK的跨
    发表于 11-04 07:57

    AWTK有何功能

    可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。运行效果截图最终目标:支持开发嵌入式应用程序。支持开发 Linux 应用程序。支持开发
    发表于 08-20 07:42

    基于lrzsz嵌入式linux传输应用程序

    嵌入式linux与pc串口传输文件基于lrzsz嵌入式linux传输应用程序通常用nfs、tftp等比较麻烦,一般小应用也就几k用串口就行,
    发表于 12-16 06:05

    创建一个简单Hello World Linux应用程序的过程

    本教程将向您介绍创建一个简单的Hello World Linux应用程序的过程,然后将该应用程序加载到运行ARM
    发表于 08-28 06:32

    嵌入式Linux应用程序例程

    嵌入式Linux应用程序例程(arm嵌入式开发步骤)-嵌入式Linux
    发表于 07-30 13:23 16次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>应用程序</b>例程

    嵌入式linux一个简单的hello程序编译运行示例

    嵌入式linux一个简单的hello程序编译运行示例由于嵌入式的cpu速度比较慢,所以
    发表于 11-01 16:56 9次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>一个简单的hello<b class='flag-5'>程序</b><b class='flag-5'>编译</b>及<b class='flag-5'>运行</b>示例

    如何用AWTK和AWPLC快速开发嵌入式应用程序

    AWPLC 是 ZLG 自主研发的 PLC 系统(兼容 IEC61131-3),本文用一个简单的温度控制系统,来演示如何用 AWTK 和 AWPLC 快速开发嵌入式应用程序
    的头像 发表于 09-26 11:46 1149次阅读

    【从0开始创建AWTK应用程序】开发及调试环境搭建

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用
    的头像 发表于 11-11 10:00 289次阅读
    【从0<b class='flag-5'>开始创建</b><b class='flag-5'>AWTK</b><b class='flag-5'>应用程序</b>】开发及调试环境搭建

    【从0开始创建AWTK应用程序创建应用程序并在模拟器运行

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用
    的头像 发表于 12-01 08:24 221次阅读
    【从0<b class='flag-5'>开始创建</b><b class='flag-5'>AWTK</b><b class='flag-5'>应用程序</b>】<b class='flag-5'>创建</b><b class='flag-5'>应用程序</b>并在模拟器<b class='flag-5'>运行</b>

    AWTK开源智能串口屏方案】HMI端程序移植编译运行

    本篇文章介绍一下AWTK开源智能串口屏方案的串口屏端(即HMI端)的编译运行步骤,并介绍如何将HMI端移植到Linux或STM32平台或RT
    的头像 发表于 01-18 08:24 294次阅读
    【<b class='flag-5'>AWTK</b>开源智能串口屏方案】HMI端<b class='flag-5'>程序</b>移植<b class='flag-5'>编译</b>及<b class='flag-5'>运行</b>

    AWTK开源智能串口屏方案】MCU SDK使用与编译运行

    本篇文章将介绍AWTK-HMI中的MCU端开发方法,包括MCUSDK常用API的说明、使用流程及如何编译Linux和STM32平台。引言:AWTK
    的头像 发表于 02-19 12:11 402次阅读
    【<b class='flag-5'>AWTK</b>开源智能串口屏方案】MCU SDK使用与<b class='flag-5'>编译</b><b class='flag-5'>运行</b>

    【从0开始创建AWTK应用程序编译应用到RTOS平台

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用
    的头像 发表于 03-21 08:23 180次阅读
    【从0<b class='flag-5'>开始创建</b><b class='flag-5'>AWTK</b><b class='flag-5'>应用程序</b>】<b class='flag-5'>编译</b><b class='flag-5'>应用到</b>RTOS<b class='flag-5'>平台</b>