在了解適用于Telink Zephyr的B91開(kāi)發(fā)板和如何使用West相關(guān)的命令去編譯Zephyr應(yīng)用之后,讓我們重溫一下將固件下載到開(kāi)發(fā)板上的方法和步驟,并且了解一些配件的連接和使用方式,正式開(kāi)始體驗(yàn)Zephyr RTOS所提供的例程吧!
1固件下載
泰凌提供多種多樣的燒錄方式,可以將固件下載到B91開(kāi)發(fā)板上。本文主要介紹在Windows平臺(tái)下,采用Telink Burning EVK結(jié)合Burning and Debugging Tools (BDT)軟件進(jìn)行燒錄的兩種方式:一,Single Wire (Swire);二,USB Through Swire (DP&DM)。
Swire
Swire是使用BDT工具的默認(rèn)燒入方式,請(qǐng)按照下面的圖示將B91開(kāi)發(fā)板與Telink Burning EVK進(jìn)行硬件連接。
圖中的紫線代表Mini接口的USB線,另外兩根線代表杜邦線。其中,藍(lán)色的為SWS - SWM接線,黑色的為GND - GND接線。完成后如下圖所示。
USB Through Swire
第二個(gè)方式,是采用USB Through Swire功能,以USB接口的DP&DM當(dāng)作GPIO口,去模擬上一個(gè)方法中的SWS和GND接線。那樣,可以省去杜邦線,僅使用Mini-USB接線。
在Zephyr工程的telink_matter等分支中,是默認(rèn)打開(kāi)了這個(gè)功能,可以方便我們的燒錄,更可以運(yùn)用于某些未接出SWS管腳的情況下。不過(guò),請(qǐng)注意,目前泰凌公司倉(cāng)庫(kù)中的develop分支上默認(rèn)關(guān)閉了這個(gè)功能,若使用由那個(gè)分支上編譯的固件,不能使用本辦法。
Burning and Debugging Tools
BDT下載地址:
http://wiki.telink-semi.cn/wiki/IDE-and-Tools/Burning-and-Debugging-Tools-for-all-Series/
使用BDT 的簡(jiǎn)要步驟:
1、?另一條Mini-USB線將Burning EVK連接到電腦的USB?。
2、雙擊可執(zhí)??件"Telink BDT.exe"。如果硬件連接正常,可以看到BDT工具的主窗?。在狀態(tài)欄中最左側(cè)可以查看EVK設(shè)備的連接狀態(tài),在標(biāo)題欄中也可以看到已被連接的燒錄器的設(shè)備信息。
3、(可選)點(diǎn)擊工具欄中的"Activate"按鈕,可以喚醒并激活MCU(尤其是MCU處于“低功耗”模式中),停止正在進(jìn)行的任務(wù),使得芯片處于能夠被Burning EVK燒錄狀態(tài)。
4、(可選)點(diǎn)擊工具欄中的"SWS"按鈕,可以嘗試用Swire將Burning Key與將要燒錄的目標(biāo)MCU實(shí)現(xiàn)同步。
*注意:建議每次打開(kāi)MCU電源時(shí),執(zhí)行一次Swire同步,以檢查Burning EVK與目標(biāo)板的通信是否正常。若通信狀態(tài)錯(cuò)誤,執(zhí)行第3步,嘗試解決問(wèn)題。
5、設(shè)置Flash擦除的區(qū)域大小。
點(diǎn)擊工具欄中的"Setting"按鈕,在彈出的“Setting"窗口中可以看到默認(rèn)的Flash擦除的區(qū)域大小是512KB。
*注意:對(duì)于外掛2MB Flash的B91開(kāi)發(fā)板,F(xiàn)lash最后的8KB空間預(yù)留用于保存重要的SoC信息,因此最多可以擦除2040KB的Flash區(qū)域。
6、點(diǎn)擊工具欄中的"Erase"按鈕,等待Flash擦除操作完成。
7、選擇需要燒錄的固件(通常為二進(jìn)制的BIN文件)。
點(diǎn)擊"File"菜單里的"Open"子菜單,在彈出的文件選擇對(duì)話框中選中需要燒錄的BIN文件。選中后的BIN文件將顯示在底部的狀態(tài)欄中。
8、點(diǎn)擊工具欄中的"Download"按鈕,等待Flash燒錄完成。
更多信息及使用方法請(qǐng)參考泰凌Wiki。
2示例程序
這里以之前編譯過(guò)的示例介紹一下Telink Zephyr所需要用到的一些配件的連接和使用方式。
Blinky與LED燈泡
配置不同的燈光效果,可以用來(lái)指示Zephyr應(yīng)用的運(yùn)行狀態(tài)。從之前文章的介紹中,我們知道Blinky固件將會(huì)實(shí)現(xiàn)一個(gè)LED燈閃爍的效果。那么,在B91開(kāi)發(fā)板上燒錄了之前編譯的Blinky固件后,再點(diǎn)擊BDT工具的"Reset"按鈕以重新開(kāi)始供電。然后,MCU將開(kāi)始先加載再運(yùn)行這一程序,可以觀察到B91開(kāi)發(fā)板上的藍(lán)燈開(kāi)始閃爍。
那么,我們是否可以操縱其他LED燈泡呢?答案是肯定的。
結(jié)合zephyr/boards/riscv/tlsr9518adk80d/tlsr9518adk80d.dts 中的配置信息,我們可以發(fā)現(xiàn),只需要將 zephyr/samples/basic/blinky/src/main.c 源文件中,代表藍(lán)色LED燈的led0替換為代表綠色LED燈的led1。然后,重新編譯一下新的固件,再燒錄在B91開(kāi)發(fā)板上,重新上電運(yùn)行,那么新的固件就將操縱綠色的LED燈泡開(kāi)始閃爍。
Hello World與串口輸出
在開(kāi)發(fā)和維護(hù)片上系統(tǒng)的過(guò)程中,利用打印輸出也是常用的調(diào)試手段,在Telink Zephyr工程中,也默認(rèn)開(kāi)啟了UART協(xié)議的串口通信功能來(lái)進(jìn)行打印輸出。
如果燒錄了之前編譯的Hello_World固件,需要獲取輸出信息以檢驗(yàn)輸出是否正常。那么,可以采用Telink Zephyr默認(rèn)GPIO管腳,去外接一個(gè)UART-to-USB串口輸出模塊,連接到上位機(jī)上去獲取打印信息。可以按照下圖的管腳配置進(jìn)行連接,默認(rèn)的UART0配置為:
其中,GPIO PB2是B91開(kāi)發(fā)板上的輸出管腳,與轉(zhuǎn)換模塊上的RXD接口相連;類似的,GPIO PB3是輸入管腳,應(yīng)該與TXD接口相連;也別忘了接地,否則可能導(dǎo)致無(wú)法輸出,或輸出異常。
將串口輸出模塊接入PC,使用串口讀取工具,配置波特率為 115200,8N1,則可以讀取 B91開(kāi)發(fā)板的打印信息。從上面截圖中,可以看到Hello_world例程默認(rèn)地輸出了Zephyr系統(tǒng)的Banner,并用printk方法打印出了字符串和當(dāng)前開(kāi)發(fā)板的名字。
當(dāng)然,Zephyr也提供了Logging子系統(tǒng)供我們使用,下面將簡(jiǎn)要介紹一下在模塊中配置這個(gè)子系統(tǒng)的方法。拿Hello_world這個(gè)例程舉例,在prj.confg中使能CONFIG_LOG這個(gè)宏以開(kāi)啟Logging子系統(tǒng),然后在源代碼中,包含logging的頭文件,注冊(cè)hello_world例程為一個(gè)模塊。使用以下方法可以輸出指定的打印信息:
(1)LOG_ERR: 等級(jí)為1
(2)LOG_WRN: 等級(jí)為2
(3)LOG_INF: 等級(jí)為3
(4)LOG_DBG: 等級(jí)為4
注意這里的LOG_MODULE_REGISTER方法中的第二個(gè)參數(shù)指定了可以輸出的打印信息的等級(jí),選擇了LOG_LEVEL_WRN,即意味著可以輸出LOG_ERR和LOG_WRN以上的信息。
從接收到的串口打印輸出來(lái)看,也對(duì)應(yīng)了我們?cè)谠创a中的配置。
當(dāng)然,這里只是一個(gè)簡(jiǎn)單的用法。更多信息和用法,可以閱讀Zephyr社群的文檔并參考Logging示例。
審核編輯:湯梓紅
-
固件
+關(guān)注
關(guān)注
10文章
561瀏覽量
23539 -
程序
+關(guān)注
關(guān)注
117文章
3816瀏覽量
82086 -
RTOS
+關(guān)注
關(guān)注
24文章
836瀏覽量
120527 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5374瀏覽量
100563 -
Zephyr
+關(guān)注
關(guān)注
0文章
33瀏覽量
6164
原文標(biāo)題:【技術(shù)專欄】泰凌微電子Zephyr固件下載及示例程序
文章出處:【微信號(hào):telink-semi,微信公眾號(hào):泰凌微電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
泰凌微電子產(chǎn)測(cè)工具使用—如何增加GPIO測(cè)試功能

基于泰凌微電子平臺(tái)實(shí)現(xiàn)OpenHarmony開(kāi)發(fā)—綜述
Python使用示例程序和工程文件免費(fèi)下載

射頻芯片廠商:泰凌微電子(上海)有限公司簡(jiǎn)介
泰凌微電子Zephyr編譯環(huán)境搭建
泰凌微電子Zephyr硬件平臺(tái)及編譯步驟
泰凌微電子| OpenThread組Telink Codelab正式上線

【技術(shù)專欄】泰凌微電子產(chǎn)測(cè)工具使用——常見(jiàn)問(wèn)題解決方法(一)

【技術(shù)專欄】泰凌微電子產(chǎn)測(cè)工具使用——常見(jiàn)問(wèn)題解決方法(二)

【技術(shù)專欄】泰凌微電子產(chǎn)測(cè)工具使用——如何制作及使用產(chǎn)測(cè)固件

RX78M組 EtherCAT ETG.5003示例程序固件信息技術(shù)

泰凌微電子B91模組組合板Matter演示固件介紹

評(píng)論