《DNK210使用指南 -CanMV版 V1.0》第六章 Kendryte K210韌體燒錄

正点原子發表於2024-07-01

第六章 Kendryte K210韌體燒錄

1)實驗平臺:正點原子DNK210開發板

2) 章節摘自【正點原子】DNK210使用指南 - CanMV版 V1.0

3)購買連結:https://detail.tmall.com/item.htm?&id=782801398750

4)全套實驗原始碼+手冊+影片下載地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html

5)正點原子官方B站:https://space.bilibili.com/394620890

6)正點原子K210技術交流企鵝群:605557868

本章將為讀者介紹Kendryte K210的韌體燒錄,以及Kendryte K210外部NOR Flash的空間分佈。
本章分為如下幾個小節:
6.1 外部NOR Flash的空間分佈
6.2 Ubuntu下的韌體燒錄
6.3 Windows下的韌體燒錄

6.1 外部NOR Flash的空間分佈
Kendryte K210的內部沒有使用者Flash,因此Kendryte K210需要外掛NOR Flash,才能燒錄使用者韌體,Kendryte K210上電後會將儲存在外部NOR Flash中0偏移地址的韌體載入到內部的SRAM中執行,因為Kendryte K210內部有6MB通用SRAM,因此外部NOR Flash中0~韌體大小(最大6MB)地址範圍的空間使用與存放應用韌體的,剩餘的外部NOR Flash空間則為使用者空間。
若假設外部NOR Flash的大小為16MB,應用韌體的大小為6MB,則此時外部NOR Flash的空間分佈,如下表所示:

表6.1.1 外部NOR Flash空間分佈表(存在假設條件)

在CanMV中,CanMV將使用者空間中的一部分NOR Flash空間作為檔案系統使用,預設情況下,CanMV使用的檔案系統佔用的是NOR Flash中偏移地址為0xD00000且長度為0x300000的空間,因此,若假設外部NOR Flash的大小為16MB,CanMV應用韌體的大小為6MB,則此時外部NOR Flash的空間分佈,如下表所示:

表6.1.2 CanMV下外部NOR Flash空間分佈表(存在假設條件)

6.2 Ubuntu下的燒錄韌體
Kendryte K210韌體的燒錄需要藉助kflash工具,kflash是一個開源的專案,其專案倉庫的地址為:https://github.com/vowstar/kflash.py.git,建議讀者在使用kflash前,先訪問kflash的專案倉庫並仔細閱讀其README.md檔案,瞭解kflash的用法。
在使用kflash燒錄CanMV韌體前,需要讓Kendryte K210與Ubuntu進行連線,首先需將Kendryte K210的UARTHS透過USB轉UART晶片與USB資料線連線至電腦主機的USB埠,接著在虛擬機器的VMware Workstation Player視窗中的Player可移動裝置下找到USB轉UART晶片對應的USB裝置,將其設定為與虛擬機器連線。
連線成功後,在Ubuntu下查詢裝置:

# Linux
ls /dev/tty*

在列出的裝置中找到對應的裝置,例如:/dev/ttyACM6。
接著便可使用kflash燒錄上一小節中編譯出的CanMV韌體至Kendryte K210:

# Linux
kflash -p /dev/ttyACM6 canmv.bin

6.3 Windows下的燒錄韌體
在Windows下燒錄CanMV韌體的方法依然是藉助kflash工具,因此需要先在Windows下安裝kfalsh(該工具依賴Python和pip,因此需要先安裝Python和pip):

# Windows
pip install kflash

接著按照上一小節介紹的方式連線Kendryte K210與電腦主機,但注意不要讓虛擬機器連線到對應的USB裝置,否則Windows會找不到對應的USB裝置。
連線成功後,在Windows下找到對應的埠號:

# Windows
Get-WmiObject Win32_SerialPort | select-Object Name

在列出的埠中找到對應的埠號,例如:COM6。
接著便可使用kflash燒錄上一小節中編譯出的CanMV韌體至Kendryte K210:

# Windows
kflash -p COM6 canmv.bin 

相關文章