1. 程式人生 > >在Developerkit開發板上運行blink例程

在Developerkit開發板上運行blink例程

需要 編譯 位置 watermark 對應關系 studio 17. ger iba

摘要: 本文將介紹怎麽樣在VScode環境下,將AliOS Tings提供的blink例程在Developerkit開發板上運行起來。 DeveloperKit開發板 在例程中分別用到兩個led和一個按鈕,上圖中用紅色的框標識出來。

本文將介紹怎麽樣在VScode環境下,將AliOS Tings提供的blink例程在Developerkit開發板上運行起來。

DeveloperKit開發板

在例程中分別用到兩個led和一個按鈕,上圖中用紅色的框標識出來。例程正確運行後,會有一個LED按1s的周期閃爍,另外一個LED當按鍵被按下時,切換輸出電平。本文中,各個硬件的分配如下表:
技術分享圖片
同VS CODE打開AliOS-Things 2.0源碼,如果您還沒有AliOS-Things的源碼,可以在VS code的控制臺中通過git工具進行拉取,拉取命令如下:

git clone https://github.com/alibaba/AliOS-Things.git

打開源碼後,我們在源碼的app/example/blink目錄下,打開blink.c,在源碼的頂部找到幾個宏定義如下:
#define GPIO_LED_IO 18
#define GPIO_TRIGGER_IO 4
#define GPIO_INPUT_IO 5
上述的幾個宏定義需要和我們和實際的硬件對應,對應關系如下表:
技術分享圖片
通過中斷方式檢測按鍵
由於AliOS-Things對硬件進行了抽象,所以對GPIO的操作需要先按照一定的規則將MCU的GPIO轉換為編號。轉換規則為MCU的GPIO bank號 X 16 + 具體gpio在bank中的位置,bank的編號從0開始。如PB6,其bank號為1在bank中的位置為6,則PB6應被轉換為 1 X 16 + 6 = 22;同理,PE3=4 x 16 + 3 = 67。因為例程不是為Developerkit開發板而寫,所以需要修改例程中的宏第一如下:

#define GPIO_LED_IO 67 // PE3
#define GPIO_TRIGGER_IO 22 // PB6
#define GPIO_INPUT_IO 75 // PE11
完成修改後,保存blink.c文件。
在VS CODE環境中,在左下角的alios-studio中,點擊編譯目標選擇按鈕
技術分享圖片
此時編輯器頂部的命令輸入框會彈出選擇要編譯的目標,此時選擇blink

技術分享圖片

緊接著會繼續要求選擇開發板,此時選擇Developerkit開發板。
技術分享圖片
接下來通過alios-studio工具條的編譯按鈕啟動編譯。
技術分享圖片

等待編譯完成。
Making [email protected]

Making [email protected]

                    AOS MEMORY MAP

|=================================================================|
| MODULE | ROM | RAM |
|=================================================================|
| newlib_stub | 296 | 0 |
| sal | 6977 | 250 |
| kv | 3055 | 104 |
| common | 256 | 12 |
| libc_nano | 19649 | 602 |
| kernel_init | 653 | 36 |
| rhino | 16225 | 7821 |
| developerkit | 5045 | 1403 |
| vfs | 950 | 1141 |
| digest_algorithm | 92 | 0 |
| libgcc | 3320 | 0 |
| stm32l4xx_cube | 26592 | 8506 |
| cli | 6234 | 357 |
| yloop | 2369 | 28 |
| device_sal_bk7231 | 8542 | 265 |
| sensor | 9451 | 303 |
| osal | 1074 | 4 |
| log | 412 | 20 |
| hal | 164 | 12 |
| blink | 325 | 24 |
| atparser | 5882 | 297 |
| armv7m | 1975 | 0 |
| fill | 150 | 1599 |
|=================================================================|
| TOTAL (bytes) | 119688 | 22784 |
|=================================================================|
Build complete
將Developerkit連接至PC,確保開發板的STlink驅動已被正確安裝。
技術分享圖片
通過alios-studio工具條中的下載按鈕,將編譯好的固件下載到開發板中。
技術分享圖片

燒寫完成後開發板會自動運行,此時可以看到LED開始按1s為間隔閃爍。按動板上的“M”按鈕,LED2會切換輸出。這裏要指出,blink Demo主要為了演示GPIO的HAL層操作函數,並沒有做按鍵去抖動工作,所以點按按鈕時,可能會出現按一次LED2直接切換兩次。也請大家在實際的代碼設計中註意按鍵去抖能力的加入。到此,例程已成功完成運行。

在Developerkit開發板上運行blink例程