本帖最后由 正点原子运营 于 2024-6-26 16:06 编辑
1)实验平台:正点原子DNK210开发板
2) 章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0
6)正点原子K210技术交流企鹅群:605557868
本章将为读者介绍KendryteK210的固件烧录,以及KendryteK210外部NOR Flash的空间分布。 本章分为如下几个小节: 6.1 外部NOR Flash的空间分布 6.2 Ubuntu下的固件烧录 6.3 Windows下的固件烧录
6.1 外部NOR Flash的空间分布 Kendryte K210的内部没有用户Flash,因此KendryteK210需要外挂NOR Flash,才能烧录用户固件,Kendryte K210上电后会将保存在外部NOR Flash中0偏移地址的固件加载到内部的SRAM中执行,因为KendryteK210内部有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,则此时外部NORFlash的空间分布,如下表所示: 表6.1.2 CanMV下外部NOR Flash空间分布表(存在假设条件) 6.2 Ubuntu下的烧录固件 在使用kflash烧录CanMV固件前,需要让Kendryte K210与Ubuntu进行连接,首先需将Kendryte K210的UARTHS通过USB转UART芯片与USB数据线连接至电脑主机的USB端口,接着在虚拟机的VMware Workstation Player窗口中的Playerà可移动设备下找到USB转UART芯片对应的USB设备,将其设置为与虚拟机连接。 连接成功后,在Ubuntu下查找设备: 在列出的设备中找到对应的设备,例如:/dev/ttyACM6。 接着便可使用kflash烧录上一小节中编译出的CanMV固件至Kendryte K210: - <div align="left"><font face="Tahoma"><font size="3"># Linux</font></font></div><div align="left"><font face="Tahoma"><font size="3">kflash -p <b>/</b>dev<b>/</b>ttyACM6 canmv.bin</font></font></div>
复制代码6.3 Windows下的烧录固件 在Windows下烧录CanMV固件的方法依然是借助kflash工具,因此需要先在Windows下安装kfalsh(该工具依赖Python和pip,因此需要先安装Python和pip): - <div align="left"><font face="Tahoma"><font size="3"># Windows</font></font></div><div align="left"><font face="Tahoma"><font size="3">pip install kflash</font></font></div>
复制代码接着按照上一小节介绍的方式连接Kendryte K210与电脑主机,但注意不要让虚拟机连接到对应的USB设备,否则Windows会找不到对应的USB设备。 连接成功后,在Windows下找到对应的端口号: - <div align="left"><font face="Tahoma"><font size="3"># Windows</font></font></div><div align="left"><font face="Tahoma"><font size="3">Get-WmiObject Win32_SerialPort <b>|</b> select-Object Name</font></font></div>
复制代码在列出的端口中找到对应的端口号,例如:COM6。 接着便可使用kflash烧录上一小节中编译出的CanMV固件至Kendryte K210: - <div align="left"><font face="Tahoma"><font size="3"># Windows</font></font></div><font face="Tahoma"><font size="3">kflash -p COM6 canmv.bin</font></font>
复制代码 |