天天看點

AliOS Things開發:AliOS Studio使用說明

AliOS Things開發:AliOS Studio使用說明
給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 Things開發:AliOS Studio使用說明

AliOS Studio

依賴

aos-cube

,如果想要手動安裝

aos-cube

的話,請參考

System environment setup

,同時

AliOS Studio

也支援一鍵安裝

aos-cube

,如下圖所示:

使用AliOS Studio一鍵安裝功能首先需要安裝python2.7和pip。
AliOS Things開發:AliOS Studio使用說明

AliOS Studio

一鍵安裝的

aos-cube

是安裝在虛拟python環境裡面的( virualenv ),在vscode的終端裡面能夠正常使用

aos-cube

,其他終端無法正常使用

aos-cube

AliOS Studio

的主要功能都集中在vscode下方工具欄中,小圖示從左至右功能分别是

建立應用工程

編譯

燒錄

序列槽工具

清除

注: 當用vscode打開了AliOS Things源碼或者應用工程時,才會顯示全部的工具圖示。
AliOS Things開發:AliOS Studio使用說明

左側的

helloworld@developerkit

是編譯目标,格式遵循

應用名字@目标闆名字

的規則,點選它可以依次選擇應用和目标闆。

點選

編譯目标

選擇應用和目标闆,點選編譯圖示進行編譯:

AliOS Things開發:AliOS Studio使用說明

  1. 通過 USB Micro 線纜連接配接好開發闆和電腦
  2. 點選下方工具欄閃電圖示完成固件燒錄:
AliOS Things開發:AliOS Studio使用說明
這裡

可以看到目前支援燒錄(upload)的開發闆,如果想要自己添加開發闆支援,請參考:

  1. 點選下方工具欄插頭圖示打開序列槽。第一次連接配接會提示填寫序列槽裝置名和波特率,再次點選可以看到序列槽輸出,同時也可以在這裡輸入指令進行互動。
這裡如果打開序列槽出錯,請注意你的使用者是否有序列槽通路權限。

F5

或者點選菜單欄

Debug

>

Start Debugging

進入調試模式:

AliOS Things開發:AliOS Studio使用說明

可以看到目前支援調試(debug)的開發闆,如果想要自己添加開發闆支援,請參考:

參考視訊:

使用 AliOS Studio 開始 AliOS Things 調試
設定優化等級

使用調試功能,最好設定優化等級為

-Og

或者

-O0

,否則會出現函數跳轉異常、單步調試異常、變量optimize-out等問題。設定優化等級:

  • AliOS Things 2.1版本以前:手動更改

    build/aos_toolchain_arm-none-eabi.mk

    中的

    COMPILER_SPECIFIC_OPTIMIZED_CFLAGS

    變量為-Og 或者 -O0。
  • AliOS Things 2.1版本及以後:使用指令

    aos make BUILD_TYPE=debug

    即可。你也可以參考 配置項:task.json 中的說明,更改預設的Build選項。

Ctrl-Shift-P

打開vscode的指令面闆,輸入

alios-studio

可以看到

AliOS Studio

支援的指令:

AliOS Things開發:AliOS Studio使用說明

指令說明:

指令 描述 工具欄

Build

編譯:

aos make app@board

AliOS Things開發:AliOS Studio使用說明

Change build target

改變編譯目标:app和board
AliOS Things開發:AliOS Studio使用說明

Clean

清除:

aos make clean

AliOS Things開發:AliOS Studio使用說明

Config Serial Monitor

Connect device

打開序列槽:

aos monitor

AliOS Things開發:AliOS Studio使用說明

Install aos-cube

參考: AliOS Studio一鍵安裝aos-cube -

List Device

列出所有序列槽

Manage Account

管理阿裡雲賬号

Probe Device

Technical Support

打開釘釘

Upload

上傳固件到開發闆:

aos upload app@board

AliOS Things開發:AliOS Studio使用說明

OTA(Developerment Over-The-Air)

一鍵OTA功能
Show welcome page 顯示welcome頁面

預設快捷鍵:

按鍵 執行指令

shift+alt+b

alios-studio.build

編譯

shift+alt+c

alios-studio.clean

清除

shift+alt+u

alios-studio.upload

上傳固件

也可以在

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

    - 設定調試參數
  • settings.json

    - AliOS Studio配置選項
  • tasks.json

    - 設定tasks參數(包括編譯、燒錄、序列槽監控、清除等tasks)
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檔案,位于

out/app@board/binary/[email protected]

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版本中的配置。
配置項

yosBin

hardware.board

編譯的目标開發闆

name

編譯的目标應用

aosVersion

AliOS Things 2.1.0版本及以後新增該配置選項,标志目前代碼的版本号。

C_Cpp.default.browse.databaseFilename

配置符号表資料庫儲存路徑

vscode 的 tasks.json 官方說明請參考 https://code.visualstudio.com/Docs/editor/tasks 。task的屬性請參考: https://code.visualstudio.com/Docs/editor/tasks#_custom-tasks

tasks.json 用來描述目前支援哪些tasks,比如點選工具欄的編譯按鈕(

AliOS Things開發:AliOS Studio使用說明

)實際上就是執行

tasks.json

alios-studio: Make

任務。

tasks.json的任務說明
label
alios-studio: Make 編譯代碼
AliOS Things開發:AliOS Studio使用說明
alios-studio: Upload 上傳代碼到開發闆
AliOS Things開發:AliOS Studio使用說明
alios-studio: Serial Monitor 啟動序列槽工具
AliOS Things開發:AliOS Studio使用說明
alios-studio: Clean 清除代碼目标檔案
AliOS Things開發:AliOS Studio使用說明
alios-studio: OTA

當然,你也可以在tasks.json中添加自己的任務,然後依次點選vscode菜單欄的Terminal > Run Task... ,即可看到你配置的導出IAR工程的task:

AliOS Things開發:AliOS Studio使用說明

更多的自定義task可以參考

AliOS Things 3.0版本于9月27日在雲栖大會正式釋出,在新版本中帶來了全新的應用開發架構,幫助使用者快速建構自己的應用。使使用者可以更專注于自身應用的開發。開發者可以在AliOS Studio中快速的建立應用工程:

要求 AliOS Things >= 3.0.0 和 aos-cube >= 0.3.7。
AliOS Things開發:AliOS Studio使用說明

為了友善開發者盡快熟悉AliOS Things API,當滑鼠移到AliOS Things的API上就會顯示

檢視AliOSThings 官方API文檔

AliOS Things開發:AliOS Studio使用說明

物的模型(TSL)

是阿裡雲IOT平台很重要的一個概念,是一個資料模型,它是實體空間中的實體,如傳感器、車載裝置、樓宇、工廠等在雲端的數字化表示。

AliOS Studio

提供了一個高效的方法可以快速的把TSL json檔案轉換為C代碼檔案,右鍵json檔案,然後選中

Convert TSL json to C string

即可轉換:

AliOS Things開發:AliOS Studio使用說明

添加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 插件會工作不正常,報如下錯誤:

AliOS Things開發: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
AliOS Things開發:AliOS Studio使用說明

試試換個toolchain,或者删除這個toolchain,讓aos-cube自己下載下傳toolchain。

繼續閱讀