AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上运行、将AWTK应用程序移植到其它平台。
在AWStudio上编写好AWTK应用程序后,部署到RTOS平台(如STM32)是很方便的,下面就以STM32F429型号为例子来介绍如何编译AWTK应用到RTOS平台运行。
搭建RTOS平台编译环境
1. 下载Keil5与配置芯片包由于将AWTK应用移植到STM32平台需要用到Keil5,所以需要做一些准备工作,包括下载Keil5以及对应板子型号的芯片包,Keil5以及芯片包的下载地址分别可以从下面两个网址下载。Keil5:www.keil.com/download/product芯片包:www.keil.arm.com/devices
2. 下载移植工程
在官方GitHub(github.com/zlgopen)上有实现STM32几个型号的移植工程,其中包括STM32F429的工程(awtk-stm32f429igtx-raw)。接下来的移植工作需要在这些工程上操作,因此这里下载并解压。其它型号如STM32F103、STM32F767的移植工程均可从官方GitHub下载。
图 1 awtk-stm32f429igtx-raw移植工程目录结构这些工程已经对接好了硬件设备,用户只需要添加应用到工程中编译即可。如果想要从空白工程从零开始移植,可以参考官方的《AWTK移植及移植裁剪指南》文档:
https://awstudio.zlg.cn/docs/awtk_docs/AWTK_Porting_Tailoring/
另外,还需要将AWTK SDK(上图中awtk文件夹)复制到移植工程目录下,最终移植工程目录结构如上图所示:
编译移植工程并下载到嵌入式设备
1. 编译AWTK-DEMO
使用Keil打开awtk-stm32f429igtx-raw/USER/awtk.uvprojx文件即可打开移植工程,工程中默认带有一个AWTK-DEMO应用,可以直接点击Keil菜单栏的“Build”按钮编译工程。
2. 编译自己的应用
如果想在移植工程中编译在PC上调试好的AWTK应用,需要先屏蔽AWTK-DEMO:
- 在Keil的“Project”中右键awtk-demo文件夹 - “Options fro Group ‘AWTK-DEMO’”;取消勾选“Include in Target Build”;点击“OK”保存。
图 2 在Keil中屏蔽AWTK-DEMO接着再往移植工程中加入自己应用的代码文件,这里拿我们先前编写的MyHelloWorld-Demo举例:
点击Keil菜单栏的“Manage Project Items”按钮,弹出设置窗口;
在“Groups”点击添加组按钮,并输入“MyHelloWorld-Demo”;选中新建的组并点击“Add Files”按钮,在文件对话框中选择并添加MyHelloWorld-Demo的代码文件;保存设置后再点击Keil菜单栏的“Rebuild”按钮重新编译工程即可。
图 3 在Keil中添加MyHelloWorld-Demo代码文件
3. 下载应用到嵌入式设备
编译好移植工程后,使用仿真器(如:ST-Link)连接嵌入式板子和电脑,连接成功后在Keil上点击菜单栏的“Download”按钮即可将应用下载到板子上。
图 4 下载应用到板子上其它型号的RTOS平台移植方法也是大同小异,可以从官方的GitHub下载对应的移植工程,先屏蔽工程中自带的示例代码文件(一般组名是AWTK-DEMO),然后往工程中添加用户自己的应用代码及资源文件,最后编译应用并下载到设备即可。
图 5 实际板子运行效果
移植注意事项
在官方GitHub下载的移植工程默认配置好了宏,如果想要自定义开关一些宏可以修改awtk_config.h文件里面的代码,注意使用这个头文件前提是需要在工程中定义HAS_AWTK_CONFIG宏。还有一些需要注意的事项如下:
若要加载PNG/JPG格式的图片,StackSize不可小于32K,可以在platform.c中调整Heap大小;
在使用Keil编译时,要在C/C++ -> Misc Controls 中加上 --gnu;
如果系统有 FPU,初始化时一定要开启 FPU;
如果想自定义添加AWTK代码文件,可以参考下面文档的第二、三章节内容awstudio.zlg.cn/docs/awtk_docs/HowTo/porting_common.html。