简介:我也算是刚刚入门k210,新手总是想先去从MaxiHub上下载一个模型去先看效果在去根据需要的功能去改代码,训练模型,以下是我在最开始去下载MaixHub上的开源模型时所遇到的问题

一.FLASH

        这是本文进行讲述的关键点,会接触到k210的一定都知道在各类单片机中我们的数据都是存在各类Rom和Flash里的,对于Rom来讲我们进行读写的时候就类比于在一个空间里去放上0,1,放上我们所要存放的东西,而Flash就类比与在一张白纸上写上0,1,写上我们所存放的数据,代码,在断电时Rom会因这个空间的消失而随之消失,而Flash呢,让我们想想白纸上的字会因为你把本子合上的消失而消失吗,答案很明显,不会。此时如果在往下说说就要引出另一个空间叫EEPROM了(本文并不会展开讲述),是一个功能处在Flash和Rom中间的空间。当我们对Rom空间里放入新的东西时上一个被存在里面的东西就会被挤掉。而当我们在一张纸(Flash)的同一个位置写两个字时,是不是我们就无法分辨写的是什么了,很明显,Flash在写入新内容时要先把纸上的原有位置的字给擦除掉,我们还是以单片机的下载举例

       注意观察右下角的正在擦除目标区域,我们以前并没有写这部分代码在单片机里实际上已经是软件已经自动帮我们把这个工作给做掉了。

对单片机中的各类空间感兴趣的话可以去看看江协科技的视频,有非常详细的讲解。

二.回到我们的问题上来.

        (相信每个刚刚接触k210的同学都会觉得下载固件很麻烦吧)

        1.我们在对k210进行烧录固件的时候会选择下载到什么地方

我们都会选择Flash存放我们的固件和我们的数据模型,对于这个软件而言它仅仅是一个下载器只有写入的功能和擦除的功能而不像单片机的那个软件一样有自动擦除Flash的功能此时假如我们下载了一个固件后,下载错了重新下载另一个固件,在我们原本的位子上已经有数据的基础下又放一堆数据此时内部数据就会变得乱七八糟。导致我们可能连MaixPy IDE都链接不上,此时大概率会出现这种情况:

        遇到这种问题呢,就像上面讲的一样我们把它擦除以后在进行写入固件就好了

        我们再次参考一下k210提供的内部储存位置的对照表:

细心的小伙伴就会发现

        我们的数据模型同样是写入在flash区域内的,在进行数据读取的时候数据模型区域都是一堆乱码,怎么可能实现我们的功能呀。

因此我们在每次写入flash之前要养成一个擦除的习惯

这样就会解决大部分问题。

                报错问题

而对于运行报错kmodel V3/V4 now

我们这个是因为并没有安装好关于V4的固件

在下载别人的开源模型时会有这么一句话

这句话的意思并不是只下载其中一个固件就好了而是将两个固件都下载到k210中,通常我们第一个固件下载到0x000000的位置第二个固件下载到0x1a0000的位置,当然也可以改其他位置但是注意文件大小不要让两个有冲突的地方,文件大小和位置的关系可以去了解一下bit,byte,kb,mb的进位,这样子。

三.解决办法

具体来说呢就是:

当你遇到红屏,一直加载数据库,连接不上MaixPy IDE

        把板子的数据先擦除再重新下载。(这很重要!!!!!!!!!!!!)

当你遇到v3/v4报错

        分别把上述的两个固件下载到0x000000,0x1a0000的位置上去

四.总结

        我在接触这款板子的时候并没有注意到这个细节,往往这样就会花费更多更多的时间去弥补,去解决问题,现在我将这个问题的解决办法放到台面上来希望能帮助更多和我一样苦恼,困惑的人。道阻且长啊,加油!

补充

关于要将两个固件都下载这件事是我从另外一位博主那里看到的。

现将链接贴出来如何使用K210进行口罩识别?从获取机器码到AI识别零基础。_kflash做口罩检测-CSDN博客

这是一个基础的,利用别人的开源资源的一个文章。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐