本文來源電子發燒友社區,作者:許鵬虎, 帖子地址:https://bbs.elecfans.com/jishu_2292909_1_1.html
前言
UCM200和UCM202都是一顆內置了MCU和射頻前端的模組,他們都支持二次開發。但是ucchip將射頻部分都封裝起來以lib庫的形式提供給用戶開發,在一定程度上會使得開發不那么方便,也不能完全釋放射頻的性能。但是基礎的外設都是開放的,對于一些常見的場合,客戶完全可以使用一個模組來完成全部的項目開發。
源碼地址如下:
開發環境準備&編譯
之前的文章,已經詳細介紹了IDE的安裝和使用,這里不再過多贅述。下載完源碼后,找到根目錄下的rtconfig.py文件,確定這里的路徑和你的IDE編譯工具鏈的位置是否一致,如果不一致則需要更改。
EXEC_PATH = r'D:/Program Files (x86)/UCCHIP_IDE/riscv-gnu-toolchain/bin/'
然后直接使用rt-thread env工具編譯項目,關于rt-thread env的使用,請參考這里。
編譯完成后會生成.elf可執行文件:
LINK rtthread.elf
riscv32-unknown-elf-size rtthread.elf
text data bss dec hex filename
227068 3688 10532 241288 3ae88 rtthread.elf
同時會接著執行一些flash相關的指令,我們繼續分析rtconfig.py接下來的代碼
POST_ACTION = SIZE + ' $TARGETn'
POST_ACTION += 'packages/current_version.exe PS/app/include/uc_wiota_version.h' + 'n'
#POST_ACTION += 'riscv32-unknown-elf-objdump -d rtthread.elf > rtthread.asm' + 'n'
POST_ACTION += 'bintools.exe -u $TARGET ' + TARGET_NAME + 'n'
POST_ACTION += 'cp -f flat.bin ' + TARGET_NAME + 'n'
POST_ACTION += 'rm -f flat.bin n'
這里是一些和芯片相關的操作,應該是生成特定的bin文件。同時這里應該也加了一個bootloader固件進去,這個bootloader可以使用ymodem來更新固件。
接著就在根目錄生成了rtthread.bin固件。
燒錄
將根目錄生成的rtthread.bin固件通過下載工具燒錄到開發板即可,具體的燒錄工具請聯系ucchip提供。
運行&&調試
燒錄完成后,按下復位按鍵即可運行。和燒錄器在一起的那個串口是UART0,這里用作AT口
AT口是UART0 115200 8N1
debug口是UART1 406800 8N1
從GitHub下載下來的代碼,模式運行的就是AT固件,所以調試方法和之前的AT固件調試一樣,這里不再過多贅述。
二次開發
- 首先將main.c里面的代碼全都刪除干凈,只跑一個led燈閃爍的代碼
#include
#include
#include
#include "uc_wiota_api.h"
/* defined the LED0 pin */
#define LED0_PIN 2
int main(void)
{
/* set LED0 pin mode to output */
rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
app_task_init();
while (1) {
rt_pin_write(LED0_PIN, PIN_HIGH);
rt_thread_mdelay(1000);
rt_pin_write(LED0_PIN, PIN_LOW);
rt_thread_mdelay(1000);
}
}
-
編譯下載燒錄運行,如果led燈正常閃爍,則說明最小系統是正常的,接著進行第三步
-
分析AT指令的執行順序,每個AT指令都有對應的函數調用,我們只需要將對應的函數放在main.c里面調用即可完成一個基本的wiota的測試
-
按照上面的步驟完成wiota函數調用后,一個基本的測試demo即開發完成,燒錄運行后可以配合AP的AT固件來做一個調試
-
AP的二次開發流程同設備端
-
御芯微
+關注
關注
4文章
57瀏覽量
3324
發布評論請先 登錄
相關推薦
評論