
給AliOS Things一顆STAR (前往GitHub關注我們)
目錄
AliOS Studio
是一套基于vscode的開發環境,支援windows、linux、macOS。
AliOS Studio
有以下功能:
- 極佳開發體驗、簡單操作界面
- 支援AliOS Things應用開發
- 代碼補全、索引、提示等
- 編譯/下載下傳/調試 AliOS Things
- 适配多種開發闆
- 序列槽工具、TSL轉換工具等
通路
https://code.visualstudio.com/下載下傳并安裝vscode。
打開vscode,按照下圖所示安裝
AliOS Studio
插件:
AliOS Studio
依賴
aos-cube
,如果想要手動安裝
aos-cube
的話,請參考
System environment setup,同時
AliOS Studio
也支援一鍵安裝
aos-cube
,如下圖所示:
使用AliOS Studio一鍵安裝功能首先需要安裝python2.7和pip。
一鍵安裝的
AliOS Studio
是安裝在虛拟python環境裡面的( virualenv ),在vscode的終端裡面能夠正常使用
aos-cube
,其他終端無法正常使用
aos-cube
。
aos-cube
AliOS Studio
的主要功能都集中在vscode下方工具欄中,小圖示從左至右功能分别是
建立應用工程
編譯
燒錄
序列槽工具
清除
注: 當用vscode打開了AliOS Things源碼或者應用工程時,才會顯示全部的工具圖示。
左側的
helloworld@developerkit
是編譯目标,格式遵循
應用名字@目标闆名字
的規則,點選它可以依次選擇應用和目标闆。
點選
編譯目标
選擇應用和目标闆,點選編譯圖示進行編譯:
- 通過 USB Micro 線纜連接配接好開發闆和電腦
- 點選下方工具欄閃電圖示完成固件燒錄:
可以看到目前支援燒錄(upload)的開發闆,如果想要自己添加開發闆支援,請參考:
- 點選下方工具欄插頭圖示打開序列槽。第一次連接配接會提示填寫序列槽裝置名和波特率,再次點選可以看到序列槽輸出,同時也可以在這裡輸入指令進行互動。
這裡如果打開序列槽出錯,請注意你的使用者是否有序列槽通路權限。
按
F5
或者點選菜單欄
Debug
>
Start Debugging
進入調試模式:
可以看到目前支援調試(debug)的開發闆,如果想要自己添加開發闆支援,請參考:
參考視訊:
使用 AliOS Studio 開始 AliOS Things 調試設定優化等級
使用調試功能,最好設定優化等級為
-Og
或者
-O0
,否則會出現函數跳轉異常、單步調試異常、變量optimize-out等問題。設定優化等級:
- AliOS Things 2.1版本以前:手動更改
中的build/aos_toolchain_arm-none-eabi.mk
變量為-Og 或者 -O0。COMPILER_SPECIFIC_OPTIMIZED_CFLAGS
- AliOS Things 2.1版本及以後:使用指令
即可。你也可以參考 配置項:task.json 中的說明,更改預設的Build選項。aos make BUILD_TYPE=debug
Ctrl-Shift-P
打開vscode的指令面闆,輸入
alios-studio
可以看到
AliOS Studio
支援的指令:
指令說明:
指令 | 描述 | 工具欄 |
---|---|---|
| 編譯: | |
| 改變編譯目标:app和board | |
| 清除: | |
| ||
| 打開序列槽: | |
| 參考: AliOS Studio一鍵安裝aos-cube | - |
| 列出所有序列槽 | |
| 管理阿裡雲賬号 | |
| ||
| 打開釘釘 | |
| 上傳固件到開發闆: | |
| 一鍵OTA功能 | |
Show welcome page | 顯示welcome頁面 |
預設快捷鍵:
按鍵 | 執行指令 | |
---|---|---|
| | 編譯 |
| | 清除 |
| | 上傳固件 |
也可以在
keybindings.json
中自定義自己喜歡的按鍵組合:
[
{
"command": "alios-studio.build",
"key": "shift+alt+b"
},
{
"command": "alios-studio.clean",
"key": "shift+alt+c"
},
{
"command": "alios-studio.upload",
"key": "shift+alt+u"
}
]
在AliOS Things源碼或者應用工程中,都有
.vscode/
目錄,該目錄下面都有3個json檔案,這些json檔案分别配置不一樣的功能:
-
- 設定調試參數launch.json
-
- AliOS Studio配置選項settings.json
-
- 設定tasks參數(包括編譯、燒錄、序列槽監控、清除等tasks)tasks.json
AliOS-Things 2.1版本以後,新增加了一個 .TAGS.AOS.DB
檔案,該檔案是符号表資料庫。
AliOS Studio依賴
C/C++插件提供的調試能力,使用
launch.json
來配置調試參數,launch.json的詳細配置說明請參考:
vscode-cpptools/launch.md每次更改編譯目标(
app@board
)的時候,都會同步更新launch.json。
launch.json 中的關鍵配置項如下如所示:
{
"version": "0.2.0",
"configurations": [
{
......
"program": "${workspaceRoot}/out/helloworld@cy8ckit-149/binary/[email protected]",
"miDebuggerServerAddress": "localhost:4242",
"setupCommands": [
......
{
"text": "target remote localhost:4242"
}
......
],
"osx": {
"miDebuggerPath": "arm-none-eabi-gdb"
},
"linux": {
"miDebuggerPath": "arm-none-eabi-gdb"
},
"windows": {
"miDebuggerPath": "arm-none-eabi-gdb.exe"
}
}
]
}
配置項說明
名稱 | 說明 |
---|---|
program | gcc編譯出來的elf檔案,位于 |
miDebuggerServerAddress 和 setupCommands | 配置gdb的連接配接端口,不同的gdb server使用不同的端口 |
miDebuggerPath | gdb執行檔案路徑 |
一般情況下無需更改settings.json的内容,AliOS Studio會根據配置自動更新。
{
"aliosStudio.inner.yosBin": "aos",
"aliosStudio.hardware.board": "developerkit",
"aliosStudio.name": "helloworld",
"aliosStudio.aosVersion": "2.1.0",
"C_Cpp.default.browse.databaseFilename": "${workspaceRoot}/.vscode/.TAGS.AOS.DB"
}
該配置項為AliOS Things 2.1.0版本中的配置。
配置項 | |
---|---|
| |
| 編譯的目标開發闆 |
| 編譯的目标應用 |
| AliOS Things 2.1.0版本及以後新增該配置選項,标志目前代碼的版本号。 |
| 配置符号表資料庫儲存路徑 |
vscode 的 tasks.json 官方說明請參考 https://code.visualstudio.com/Docs/editor/tasks 。task的屬性請參考: https://code.visualstudio.com/Docs/editor/tasks#_custom-tasks
tasks.json 用來描述目前支援哪些tasks,比如點選工具欄的編譯按鈕(
)實際上就是執行
tasks.json
alios-studio: Make
任務。
tasks.json的任務說明
label | ||
---|---|---|
alios-studio: Make | 編譯代碼 | |
alios-studio: Upload | 上傳代碼到開發闆 | |
alios-studio: Serial Monitor | 啟動序列槽工具 | |
alios-studio: Clean | 清除代碼目标檔案 | |
alios-studio: OTA |
當然,你也可以在tasks.json中添加自己的任務,然後依次點選vscode菜單欄的Terminal > Run Task... ,即可看到你配置的導出IAR工程的task:
更多的自定義task可以參考
AliOS Things 3.0版本于9月27日在雲栖大會正式釋出,在新版本中帶來了全新的應用開發架構,幫助使用者快速建構自己的應用。使使用者可以更專注于自身應用的開發。開發者可以在AliOS Studio中快速的建立應用工程:
要求 AliOS Things >= 3.0.0 和 aos-cube >= 0.3.7。
為了友善開發者盡快熟悉AliOS Things API,當滑鼠移到AliOS Things的API上就會顯示
檢視AliOSThings 官方API文檔
:
物的模型(TSL)
是阿裡雲IOT平台很重要的一個概念,是一個資料模型,它是實體空間中的實體,如傳感器、車載裝置、樓宇、工廠等在雲端的數字化表示。
AliOS Studio
提供了一個高效的方法可以快速的把TSL json檔案轉換為C代碼檔案,右鍵json檔案,然後選中
Convert TSL json to C string
即可轉換:
添加task - 導出IAR/MDK工程:
{
"label": "alios-studio: Export IAR Project",
"type": "shell",
"command": "aos",
"args": [
"make",
"IDE=iar"
],
"presentation": {
"focus": true
}
}
添加task - 多線程編譯:
{
"label": "alios-studio: Parallel Build",
"type": "shell",
"command": "aos",
"args": [
"make",
"JOBS=8"
],
"presentation": {
"focus": true
}
}
添加task - 編譯debug類型固件:
該固件配合調試功能。
{
"label": "alios-studio: Build Debug",
"type": "shell",
"command": "aos",
"args": [
"make",
"BUILD_TYPE=debug"
],
"presentation": {
"focus": true
}
}
Visual Studio Code is unable to watch for file changes in this large workspace
針對Linux系統,windows和mac不會出現這種情況。
該錯誤在 linux系統上比較常見,主要是因為linux系統最大可監聽檔案數有限制。linux系統預設系統可監聽檔案數為8192個,
AliOS-Things
的源碼比較大,檔案數遠遠大于8192個,此時vscode無法監聽所有的檔案改動,導緻AliOS Studio 插件會工作不正常,報如下錯誤:
解決辦法:
此時需要設定linux系統最大可監聽檔案數。
使用如下指令檢視目前可監聽檔案數:
cat /proc/sys/fs/inotify/max_user_watches
編輯檔案:
/etc/sysctl.conf
,然後增加如下行:
fs.inotify.max_user_watches=524288
使用如下指令生效:
sudo sysctl -p
Arch Linux 使用者請參考此 連結 .
更多細節請參考:
"Visual Studio Code is unable to watch for file changes in this large workspace" (error ENOSPC)Workspace is too large to watch for file changes
和上面的問題一樣:
SyntaxError: .vscodelaunch.json: Unexpected token / in JSON at position 4378
請不要在
.vscode/tasks.json
.vscode/launch.json
中添加注釋。
調試模式,提示gdb is not signed
試試換個toolchain,或者删除這個toolchain,讓aos-cube自己下載下傳toolchain。