本文來源電子發燒友社區,作者:yuzhiwen1986, 帖子地址:https://bbs.elecfans.com/jishu_2310574_1_1.html
實驗描述
以九聯科技Unionpi Tiger開發板為平臺,移植倉庫中的GPIO代碼到開發板中,源代碼倉庫如下:
https://gitee.com/openharmony/vendor_unionman/tree/master/unionpi_tiger/sample/hardware/gpio
因為編譯問題前后斷斷續續搞了一個禮拜沒有成功,最后再FAE的支持下搞定。本文中主要記錄編譯過程中遇到的問題。解決這個問題之后后面的I2C/UART的代碼編譯也就類似的修改。文中以GPIO為例子,根據代碼可知本次實驗主要實現配置GPIO 輸出,并獲取GPIO模式并打印。
修改代碼
首先把GPIO的整個文件夾拷貝到某個目錄下,我這里復制都openhamony/vendor/uniopi/unionpi_tiger/sample/hardware/下面,并在/openharmony/device/unionpi/a311d/BUILD.gn文件中增加該文件的路徑。如下:
在GIPO 目錄下打開Build.gn問價增加如下內容:
import("http://drivers/adapter/uhdf2/uhdf.gni")
...
ohos_executable("gpio_hdf") {
sources = [ "hdf/gpio_hdf.cpp" ]
output_name = "gpio"
include_dirs = [
"http://drivers/framework/include/platform",
"http://third_party/bounds_checking_function/include",
]
deps = [
"http://drivers/adapter/uhdf2/platform:libhdf_platform",
]
...
install_enable = true
install_images = [ "vendor" ]
module_install_dir = "bin"
part_name = "unionpi_products"
源碼編譯
進入源碼目錄,執行如下命令進行版本編譯,編譯完成后,效果如下:
獲取固件
編譯完成后對進行鏡像進行打包然后燒寫。如下是固件打包:
打包好之后會指出固件的生成目錄,根據目錄提示拷貝到Widows 環境下,試用燒錄工具,根據用戶手冊把Image燒錄到開發板
固件測試
進入到openharmony 環境里可以看到編譯出來的可執行文件在/verdor/bin目錄下
輸入./gpio_test 或者./gpio_test +參數查看返回值
遇到的問題
編譯過程中一直碰到以下編譯ERROR網上也搜了不少材料,之前一直也懷疑是頭文件哪里引用的問題。多次更換編譯文件位置未果。在FAE的指導下修改了BUILD.gn文件里面的頭文件位置(前面有提到具體的修改)。
不清楚的地方
修改的頭文件引用的HDF相關,目前還不清楚源碼和HDF驅動之間的關系。下一步的計劃會深入的學習一下和HDF相關的知識。再次感謝FAE的指導。
-
OpenHarmony
+關注
關注
25文章
3722瀏覽量
16317 -
九聯科技
+關注
關注
0文章
97瀏覽量
1662
發布評論請先 登錄
相關推薦
評論