本篇文章介绍一下AWTK开源智能串口屏方案的串口屏端(即HMI端)的编译运行步骤,并介绍如何将HMI端移植到Linux或STM32平台或RTOS平台,以及如何配置资源文件。
引言:AWTK-HMI是基于AWTK与AWTK-MVVM开发的低代码智能串口屏方案,本系列文章介绍如何从零开发HMI程序,包括搭建开发环境、创建HMI运行时工程、修改应用界面以及开发MCU程序。
上一篇文章《【AWTK开源智能串口屏方案】方案介绍和工作原理》介绍到HMI端工程(又称为运行时)运行在串口屏硬件上,负责界面显示和人机交互,用户可替换里面的资源文件切换为不同的应用。它是支持跨平台且不受硬件和系统限制的,本篇文章就来介绍一下如何将HMI端分别编译到Windows、Linux平台和STM32中。
图1 AWTK-HMI工作原理
在Windows上编译HMI端程序
编译串口屏程序很简单,只需几个步骤即可。首先确保电脑上安装好了AWTK的开发环境,若没有可以看往期文章教程《【从0开始创建AWTK应用程序】开发及调试环境搭建》。
从官方的Gitee(网址:gitee.com/zlgopen/awtk-hmi)下载awtk-hmi仓库到本地目录,并根据README.md文档内的使用说明运行“prepare.bat”下载awtk与awtk-mvvm代码文件。
图2执行prepare.bat后的目录结构
接着进入hmi/demo_home2目录,输入scons命令编译HMI端的demo程序,并输入下面的命令打包资源文件:
python ./scripts/update_res.py all
此时demo_hom2目录下分别新增了bin和res两个文件夹:bin目录下是存放HMI端存放编译后的可执行文件与动态库;res则是存放运行时的资源文件,后期可以通过AWStudio设计新的界面替换res目录的资源文件达到更新运行时UI界面的效果。
进入到bin目录下运行demo.exe即可启动编译好的HMI端程序。
图3 HMI端demo程序运行效果
移植HMI端程序到嵌入式Linux平台
将Windows下载好的awtk-hmi目录复制到Ubuntu交叉编译环境中,并且在awtk-hmi目录下载awtk-linux-fb移植层文件,最终awtk-hmi目录结构如下图:
图4 awtk-hmi交叉编译目录结构
首先进入到awtk-linux-fb配置好交叉编译工具链路径(具体配置教程可以看往期文章介绍《【从0开始创建AWTK应用程序】编译应用到嵌入式Linux平台运行》),配置好后输入scons命令进行编译。接着进入awtk-mvvm目录,输入下面的命令进行编译。
scons LINUX_FB=true WITH_JERRYSCRIPT=false
回到awtk-linux-fb目录并输入下面第一条scons命令编译HMI应用程序,编译完成后接着输入下面第二条命令发布应用。
scons APP=../demo_home2sh release.sh ../demo_home2/res demo
此时awtk-linux-fb目录下会生成一个release文件夹,里面同样包含了可执行文件目录bin和资源文件目录assets,后期可以通过AWStudio设计新的界面替换assets目录文件达到更新运行时UI界面效果。最后,只需要将release文件夹拷贝到板子上并运行release/bin目录下的demo程序即可。
移植HMI端程序到STM32平台
这里以stm32h743开发为例子来介绍如何将HMI程序移植到STM32平台,awtk-hmi自带了一个stm32h743移植工程,所以整个移植流程比较方便。首先同样需要将awtk、awtk-mvvm放到awtk-hmi目录中,另外还需要运行下面两条git命令下载awtk-fs-adapter和awtk-sqlite3。
图 5 AWTK-HMI移植STM32的目录结构
接着使用keil打开hmi/awtk-stm32h743iitx-freertos/USER/awtk.uvprojx,点击Build按钮并等待编译完成,可以看到以下信息。图6 stm32h743移植工程在keil上编译成功的信息
一般HMI端代码和资源文件是分开的,因此还需要将资源文件目录assets放到SD卡或U盘等形式,插入板子上使用文件系统来读取。后期也能通过AWStudio设计新的界面替换该目录达到更新运行时UI界面效果。
如果资源文件想要存放在SD卡中,需要让 AWTK 支持 FATFS,并且通过awtk_config.h配置资源文件路径,详细操作可以阅读下面目录的移植文档说明:
awtk-hmi/mcu/stm32/stm32h743-freertos/docs/stm32h743iitx_port.md
图7 awtk_config.h配置资源文件路径
其它硬件平台和RTOS移植方法也是大同小异的,可以从官方的Github下载对应的移植工程,参照stm32h743的移植工程在keil中添加所需的代码文件(awtk、awtk-mvvm、hmi等)并配置awtk_config.h。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
开源
+关注
关注
3文章
3335浏览量
42483 -
编译
+关注
关注
0文章
657浏览量
32867 -
串口屏
+关注
关注
8文章
532浏览量
37426
发布评论请先 登录
相关推荐
基于AWTK推出的ZMP110x串口屏应用方案
串口屏广泛应用于工业自动化、智能家电、医疗设备、共享设备等各个显示领域。立功科技基于AWTK推出的ZMP110x串口
发表于 07-25 17:16
•1229次阅读
【从0开始创建AWTK应用程序】编译应用到嵌入式Linux平台运行
AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上
AWTK 串口屏开发(1) - Hello World
本文以一个简单的温度设置程序为例,介绍AWTK串口屏的开发流程和MVVM数据绑定的基本方法。功能这个例子很简单,制作一个调节温度的界面。在这里例子中,模型(也就是数据)里只有一个温度变
AWTK 串口屏开发(3) - 告警信息
告警信息是一个常用的功能。在AWTK开源串口屏中,内置告警信息模型,只需设计用户界面即可实现告警信息的显示和管理。1.功能告警信息是一个常用的功能,MCU在设备异常时,会发送告警信息到
AWTK 开源串口屏开发(6) - 定时器的用法
定时器是个常用的功能,AWTK串口屏提供了丰富的定时器函数,用于定时器的启动、停止、暂停、恢复、修改和重置等功能,本文以计时器的例子来介绍定时器的基本用法。定时器也是一个常用的功能,在AWTK
【从0开始创建AWTK应用程序】编译应用到RTOS平台
AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上
AWTK 开源串口屏开发(17) - 通过 MODBUS 访问数组数据
在AWTK串口屏中,内置MODBUS客户端通道模型,不用编写代码即可实现在ListView中显示远程设备上的数组数据。1.功能不用编写代码,实现对远程设备上数组数据的显示。2.创建项目
评论