01Ubuntu安裝
在Linux下編譯速度比windows快很多,一般推薦優先使用linux環境開發。Ubuntu是非常常見Linux操作系統。這里介紹下如何快速搭建Ubuntu虛擬機。
1.1 安裝VMware Workstation Pro
下載 VMware Workstation Pro 16安裝
剩下的一直點下一步直到安裝完成即可
激活:
打開VMware Workstation Pro ->幫助->輸入許可證密鑰。
學習用途:百度一下“vmware workstation 16許可證密鑰”。
商業用途:到VMware官網購買正版許可證。
1.2 安裝Ubuntu
直接下載安裝好的Ubuntu20.04。
下載完成后解壓縮。
打開VMware Workstation Pro -> 文件 -> 打開 -> 選擇下載并解壓好的Ubuntu文件路徑
直接開機即可,用戶名和密碼都是axk
Ubuntu虛擬機已經安裝好Ai-WB2系列模組的開發環境,sdk位于主目錄 -> bl_iot_sdk
下面括號內內容針對閱讀此博文前已安裝過Ubuntu的用戶
1.無需重新安裝Ubuntu
2.SDK獲?。篻it clone https://github.com/bouffalolab/bl_iot_sdk.git
3.打開終端,安裝make,命令:sudo apt-get update、sudo apt-get install make
4.安裝串口工具,此處選用cutecom,執行命令:sudo apt-get install cutecom
5.在 Linux 中添加用戶到 dialout,執行命令:sudo usermod -a -G dialout $USER
02編譯
進入需要編譯的工程目錄,如進入hello world工程,命令:cd customer_app/get-start/helloworld,進行編譯,命令./genromap
出現以下日志說明已經編譯成功
編譯生成的固件在build_out文件夾內: helloworld.bin
03燒錄固件到設備
3.1 方式一:用命令行燒錄
模組接線
Ai-WB2-XX | USB to TTL |
---|---|
TX | RX |
RX | TX |
IO8 | DTR |
EN | RTS |
VDD | 3.3V |
GND | GND |
注意IO8在模組背面的圓點上
開發板進入燒錄模式:
接USB到電腦,同時按下BURN和EN兩個按鍵,先松開EN按鍵再松開BURN按鍵
將設備連接到虛擬機
設置串口日志波特率 :打開 tools/flash_tool/chips/bl602/device_tree/bl_factory_params_IoTKitA_40M.dts,在uart{ }中設置,這里設置為115200 ?
燒錄執行命令行:
?
make flash_only
?
1出現以下日志表示燒錄成功
燒錄完成后打開串口助手:sudo cutecom 在cutecom中設置好波特率后打開串口
復位模組后打印helloworld
3.2 方式二:用可視化軟件燒錄(windows)
下載軟件:https://docs.ai-thinker.com/_media/ai-wb2/docs/v1.7.4-release.zip
模組接線:
Ai-WB2-XX | USB to TTL |
TX | RX |
RX | TX |
EN | RTS |
VDD | 3.3V |
GND | GND |
已驗證支持的串口芯片有FT232、CH340。
開發板接線:直接把usb接到電腦即可。
需要燒錄的Parttion Table、Factory Params、Boot2 Bin文件分別位于:
v1.7.4-releasechipsl602partitionpartition_cfg_4M.toml
v1.7.4-releasechipsl602device_treel_factory_params_IoTKitA_40M.dts
v1.7.4-releasechipsl602uiltin_imgsoot2_isp_v5.6oot2_isp_release.bin
編譯生成的應用層固件燒錄到Firmware Bin
注意:燒錄工具和固件不要放到中文路徑內
日志串口默認波特率為2000000,如果需要修改日志串口波特率可以在文件v1.7.4-releasechipsl602device_treel_factory_params_IoTKitA_40M.dts內修改,修改后重新下載即可。
04自定義工程如何修改Makefile
sdk里面的例程都比較簡單,把所有的源文件都放在同一個文件夾里面就可以了,但是當我們的項目比較大的時候,會有很多的.c和.h文件,都放在同一個文件夾里面就會有點亂了,這時候把不同功能模塊的代碼放在不同的文件夾看起來就舒服很多了,怎么實現呢?
以最簡單的helloworld工程為例,基于官方helloworld工程修改。
需求:
更改工程路徑,把helloworld路徑由bl_iot_sdk/customer_app/get-start/helloworld改為bl_iot_sdk/Ai-WB2-Demo/helloworld
增加一個文件夾component,component文件夾內新增hello.c和hello.h文件,把helloworld打印放到hello.c內
實現:
1.設置SDK路徑
修改helloworld內的Makeflie的sdk路徑,由原來的
BL60X_SDK_PATH_GUESS ?= $(shell pwd)
BL60X_SDK_PATH ?= $(BL60X_SDK_PATH_GUESS)/…/…/…
改為
BL60X_SDK_PATH_GUESS ?= $(shell pwd)
BL60X_SDK_PATH ?= $(BL60X_SDK_PATH_GUESS)/…/…
2.在component組件添加到Makeflie
INCLUDE_COMPONENTS += component
EXTRA_COMPONENT_DIRS += $(PROJECT_PATH)/component
3.component文件夾內增加名為bouffalo.mk的Makeflie文件編譯hello.c,bouffalo.mk內增加代碼:
審核編輯:湯梓紅
評論
查看更多