第六章 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