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是否包含頭文件與庫文件搜索路徑。
-
嵌入式
+關注
關注
5082文章
19126瀏覽量
305198 -
Linux
+關注
關注
87文章
11304瀏覽量
209498 -
awtk
+關注
關注
0文章
44瀏覽量
234
發布評論請先 登錄
相關推薦
評論