第六章 Kendryte K210固件燒錄 1)實驗平臺:正點原子DNK210開發板 2) 章節摘自【正點原子】DNK210使用指南 - CanMV版 V1.0 3)購買鏈接:https://detail.tmall.com/item.htm?&id=782801398750 4)全套實驗源碼+手冊 ...
第六章 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