AWTK是基于C語言開發(fā)的跨平臺GUI框架。本系列文章介紹如何從0開始創(chuàng)建AWTK應(yīng)用程序,包括搭建開發(fā)調(diào)試環(huán)境、使用AWTK創(chuàng)建Hello工程并在模擬器上運行、將AWTK應(yīng)用程序移植到其它平臺。
搭建Linux平臺交叉編譯環(huán)境
在上一篇文章我們介紹了使用AWTK開發(fā)簡單的應(yīng)用并在PC上模擬運行,本篇文章就來介紹一下怎么讓應(yīng)用程序運行在嵌入式Linux平臺上。
1. 準(zhǔn)備交叉編譯環(huán)境
交叉編譯通常在PC的Ubuntu上進(jìn)行,準(zhǔn)備對應(yīng)板子的交叉編譯工具鏈、AWTK SDK(awtk與awtk-linux-fb)、應(yīng)用工程(應(yīng)用需提前在AWTK Designer上打包資源)。SDK版本需要配套,否則會出現(xiàn)編譯不通過或運行異常問題,具體根據(jù)AWTK應(yīng)用程序所依賴的SDK版本選擇,獲取SDK有三種方式:
- AWStudio安裝目錄下的Installer文件夾自帶的SDK;(推薦)
- 板子供應(yīng)商提供的SDK,可能與應(yīng)用依賴版本不兼容,需找供應(yīng)商更新SDK;
- Github上最新版的SDK,要求應(yīng)用使用最新版awtk開發(fā),但最新版SDK未經(jīng)測試,可能存在BUG。
第一種和第三種方式需要自行配置awtk_config.py,配置方法見下面小節(jié);第二種供應(yīng)商一般會配置好,或者有專門的配置教程可以參考。
將工具鏈、SDK和應(yīng)用拷貝到Ubuntu以下路徑,SDK與應(yīng)用需放在同一級目錄:
工具鏈:/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/
SDK與應(yīng)用:
/home/user/
|-- awtk/
|-- awtk-linux-fb/
|--awtk-hello-demo/
2.配置交叉編譯工具鏈路徑
將交叉編譯工具解壓到Ubuntu環(huán)境內(nèi),接著打開awtk-linux-fb目錄的awtk_config.py,找到TOOLS_PREFIX參數(shù)配置工具鏈的路徑。配置tslib則需修改TSLIB_LIB_DIR與TSLIB_INC_DIR參數(shù)。# 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-'
配置設(shè)備可以到awtk-linux-fb/awtk-port/main_loop_linux.c修改,下圖分別對應(yīng)著Framebuffer、觸摸屏、鍵盤和鼠標(biāo)等設(shè)備配置。
我們可以通過"hexdump /dev/input/xx" 命令識別正確的觸摸或鼠標(biāo)設(shè)備文件名。
圖1配置設(shè)備名稱
編譯打包并運行應(yīng)用程序
1. 編譯awtk
在Ubuntu打開awtk-linux-fb目錄并輸入scons命令編譯awtk。
2. 編譯應(yīng)用程序
同樣在awtk-linux-fb目錄輸入命令scons APP=../awtk-hello-demo,“APP=”后面為應(yīng)用程序相對路徑。
提示“scons: done building targets.”代表編譯成功,若編譯失敗考慮SDK版本不配套或awtk_config.py中工具鏈路徑設(shè)置不正確等情況。
3. 發(fā)布并運行應(yīng)用程序
在提示編譯成功之后,還需要執(zhí)行下面命令生成realease文件夾。
./release.sh ../awtk-hello-demo/res demo
將release文件夾通過scp或其它工具將其拷貝到板子上,并在板子上運行命令:./release/bin/demo若提示can't load library 'xxx.so',需添加動態(tài)庫查找路徑,在板子控制臺輸入export LD_LIBRARY_PATH=so所在文件夾的路徑,再運行應(yīng)用即可。
新版AWTK SDK配置與編譯方式
若使用Github最新版的SDK,可以使用另外一種配置與編譯方式,這種方式可以避免了在一堆配置里面尋找配置項的麻煩。
1. 配置交叉編譯工具鏈路徑
在awtk-linux-fb目錄創(chuàng)建名為awtk_config_define.py的文件,將TOOLS_PREFIX等參數(shù)及對應(yīng)的路徑寫入該文件中。awtk_config_define.py還可以由腳本生成并支持修改其它參數(shù),具體可以看最新版awtk-linux-fb的README文檔。
2. 編譯awtk
在Ubuntu打開awtk-linux-fb目錄并輸入scons命令編譯awtk。
3. 編譯與發(fā)布應(yīng)用
去到應(yīng)用程序目錄下,使用scons LINUX_FB=true命令編譯應(yīng)用。接著輸入python ./scripts/release.py生成release文件夾。
將release文件夾通過scp或其它工具將其拷貝到板子上,并在板子上運行命令:
./release/bin/demo
鏈接錯誤解決思路
若在編譯過程中遇到‘undefined symbol’錯誤提示,需檢查awtk_config.py腳本OS_LIBS是否添加鏈接庫,OS_CPPPATH與OS_LIBPATH是否包含頭文件與庫文件搜索路徑。
-
嵌入式
+關(guān)注
關(guān)注
5141文章
19537瀏覽量
315016 -
Linux
+關(guān)注
關(guān)注
87文章
11462瀏覽量
212798 -
awtk
+關(guān)注
關(guān)注
0文章
50瀏覽量
352
發(fā)布評論請先 登錄
AWTK的特點
嵌入式Linux應(yīng)用程序開發(fā)標(biāo)準(zhǔn)教程

嵌入式linux編譯 ko,嵌入式linux:編譯linux驅(qū)動模塊

《從實踐中學(xué)嵌入式Linux應(yīng)用程序開發(fā)》pdf完整版資源分享

嵌入式Linux應(yīng)用程序開發(fā)-(1)第一個嵌入式QT應(yīng)用程序

如何用AWTK和AWPLC快速開發(fā)嵌入式應(yīng)用程序
【產(chǎn)品應(yīng)用】用 AWTK 和 AWPLC 快速開發(fā)嵌入式應(yīng)用程序 (3)- 定時器

【從0開始創(chuàng)建AWTK應(yīng)用程序】開發(fā)及調(diào)試環(huán)境搭建

【從0開始創(chuàng)建AWTK應(yīng)用程序】創(chuàng)建應(yīng)用程序并在模擬器運行

【AWTK開源智能串口屏方案】MCU SDK使用與編譯運行

【從0開始創(chuàng)建AWTK應(yīng)用程序】編譯應(yīng)用到RTOS平臺

評論