如何讓RT-thread接入機(jī)智云來(lái)創(chuàng)建一個(gè)線程去點(diǎn)亮LED
GoKit3、USB數(shù)據(jù)線
軟件環(huán)境:
mdk5、機(jī)智云APP
進(jìn)入正文
RT-thread接入機(jī)智云流程:
1.RT-thread與機(jī)智云介紹
2.基于mkd5安裝RT-Thread Nano Pack
3.注冊(cè)機(jī)智云開(kāi)發(fā)作者賬號(hào)(建議注冊(cè)企業(yè)賬號(hào))
4.創(chuàng)建新產(chǎn)品
5.定義數(shù)據(jù)點(diǎn)
6.下載自動(dòng)生成MCU代碼
7.給自動(dòng)生成mcu代碼移植RGB燈驅(qū)動(dòng)
8.給自動(dòng)生成mcu代碼移植RT-thread,并燒寫(xiě)進(jìn)gokit(重點(diǎn))
9.下載機(jī)智云APP控制gokit
1.RT-thread與機(jī)智云介紹
使用RT-thread接入機(jī)智云的好處:
1.機(jī)智云mcu SDK沒(méi)有嵌入式操作系統(tǒng)的概念,只有前后臺(tái)系統(tǒng),直接操作裸機(jī),RT-thread剛好彌補(bǔ)這一空白,使得機(jī)智云mcu SDK也可以多任務(wù)/線程并行運(yùn)行程序,并提供一系列任務(wù)調(diào)度機(jī)制、同步機(jī)制、任務(wù)間通信機(jī)制,使得程序更豐富多彩,功能更強(qiáng)。
2.RT-thread具備非常優(yōu)異的實(shí)時(shí)性、穩(wěn)定性、可剪裁性,當(dāng)進(jìn)行最小配置時(shí),內(nèi)核體積可以到 3k ROM 占用、1k RAM 占用。機(jī)智云GoKit硬件條件使用RT-thread無(wú)壓力。
3.RT-thread移植難度低,習(xí)慣使用機(jī)智云mcu SDK的開(kāi)發(fā)者也容易上手使用。
2.基于mkd5安裝RT-ThreadNano Pack
3.注冊(cè)機(jī)智云開(kāi)發(fā)作者賬號(hào)
4.創(chuàng)建新產(chǎn)品
5.根據(jù)產(chǎn)品需求,分析硬件開(kāi)發(fā)需求,定義數(shù)據(jù)點(diǎn)
本文以點(diǎn)亮一盞燈為例,數(shù)據(jù)點(diǎn)分析如下:
6.下載自動(dòng)生成mcu代碼
在機(jī)智云自助開(kāi)發(fā)平臺(tái)自動(dòng)生成MCU代碼包 并下載(請(qǐng)注意,硬件平臺(tái)需與板卡型號(hào)保持一致,如不一致,則選擇“其他方案”)
7.給自動(dòng)生成mcu代碼移植RGB燈驅(qū)動(dòng)
從MCU SDK文件內(nèi)容目錄結(jié)構(gòu)(上圖)看到,自動(dòng)生成MCU代碼里面沒(méi)有rgb_led燈驅(qū)動(dòng),我們可以去機(jī)智云官網(wǎng),開(kāi)發(fā)者中心,下載中心,去參考下載其他含rgb_led燈驅(qū)動(dòng)的項(xiàng)目,把里面的rgb_led燈驅(qū)動(dòng)提取出來(lái)移植,以移植微信寵物屋rgb_led燈驅(qū)動(dòng)為例。
我們把剛剛下載的微信寵物項(xiàng)目解壓,進(jìn)入如下目錄,可以看到有個(gè)rgb_led燈驅(qū)動(dòng)文件夾,把文件夾復(fù)制到自己的自動(dòng)生成MCU驅(qū)動(dòng)目錄里面
回到我們自己MCU代碼,在驅(qū)動(dòng)目錄里面添加rgb_led驅(qū)動(dòng)文件
在main.c和gizwits_product.c文件加入#include “Hal_rgb_led/Hal_rgb_led.h”
8.給自動(dòng)生成mcu代碼移植RT-thread,并燒寫(xiě)進(jìn)gokit(重點(diǎn))
8.1.添加RTOS的kernel文件
8.2.添加kernel文件后,我們可看到工程目錄多了”RTOS”的目錄,進(jìn)入rtconfig.h文件,第15行改成宏定義1000,第108行去掉注釋
8.3.進(jìn)入board.c文件,第25行加上#include "STM32f1xx_hal.h",第37行宏定義改成10,第66行到76行去掉注釋,并加上HAL_IncTIck();HAL_SYSTICK_IRQHandler();兩個(gè)函數(shù)。
8.4.進(jìn)入stm32f1xx_it.c文件,注釋掉HardFault_Handler()、PendSV_Handler()、SysTick_Handler()這三個(gè)函數(shù)
8.5.進(jìn)入main.c文件,第47行加上#include "rtthread.h"
8.6.進(jìn)入main.c文件,在main函數(shù)注釋原while(1)大循環(huán),并創(chuàng)建線程
至此,我們便完成了使用RT-Thread來(lái)跑機(jī)智云邏輯程序,也就實(shí)現(xiàn)了RT-thread快速接入機(jī)智云。當(dāng)然我們還可以根據(jù)自己實(shí)際需求來(lái)創(chuàng)建更多線程來(lái)跑自己的程序,這里就不一一累述了
8.7.編譯程序
通過(guò)數(shù)據(jù)線給gokit燒寫(xiě)移植了RT-thread與RGB驅(qū)動(dòng)的固件進(jìn)gokit。將stm32底板(左)與功能板(右)與小心翼翼地分離開(kāi)來(lái),然后stm32底板中間撥鍵撥到system,插上數(shù)據(jù)線,即可使用stm32flashloader軟件燒寫(xiě)固件。燒寫(xiě)完后,中間撥鍵撥到flash,功能板與stm32底板合并,再按stm32底板左邊的reset,即可正常使用。