《DNK210使用指南 -CanMV版 V1.0》第六章 Kendryte K210固件烧录

第六章 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 
相关推荐
奇牙coding3 小时前
ofox.io 第三方模型 ID `wan-3.0-prime` 一直报 401 怎么办?从鉴权头、签名、区域到请求时间逐项排查
ai
数智园区合作社3 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
小豆庄3 小时前
视频敏感信息脱敏:本地推理与云端API的工程取舍
阿里云·ai·视频·纹理贴图
西索斯coding5 小时前
scribe_v2 和 gpt-transcribe 转会议录音差多少?2026 年六项指标实测审计
gpt·ai
Zwawa6 小时前
串口为什么会丢字节:从轮询到中断和环形缓冲区
c语言·单片机·嵌入式
lgcgkCQ6 小时前
【AI 转型实战 1】SpringAI 入门:搭建基础大模型对话能力
java·ai·agent·rag·spring ai·mcp·langchain4j
Brilliantwxx7 小时前
【STM32】 内部 Flash 详解:寄存器逐位拆解 + 工作流程顺序全讲 + EEPROM再实现
stm32·单片机·嵌入式硬件·1024程序员节
哥不是小萝莉7 小时前
让 Agent 可靠运行:幂等、持久化与失败恢复
ai
华清远见IT开放实验室7 小时前
实验室建设案例 | 安徽三联学院物联网实验室
stm32·单片机·嵌入式硬件·物联网·华清远见