先用k-flash烧录py版本的固件,再进行连接
本问题针对已经搭建开发环境完毕的朋友,做一次快速编译环境的过程分析。这里以点亮LED灯课程为例,其他课程操作步骤大致相同。
1. 下载项目文件
2. 解压项目文件,并复制到kendryte-standalone-sdk-develop目录下的src文件夹中。
注意:解压时可能解压软件会自动加多一层文件夹,不要复制错,gpio_led文件夹是直接能看到main.c文件的。
3. 右键通过VS Code打开kendryte-standalone-sdk-develop文件夹,这个SDK的文件虽然多,但是我们在开发初期可以只关注两个文件夹,其他文件夹只供调用,不需要做任何修改。第一个文件夹是build,这个文件夹用于保存编译的临时文件和编译后生成的bin固件;第二个文件夹是src,每一个项目在src中都以一个文件夹的形式存在,不同项目的名称不同,互不干扰,也不能互相调用。
所以每次从一个课程里下载的是一个项目的文件,必须把它解压后把对应的项目名称的文件夹放到kendryte-standalone-sdk-develop下的src目录下才可以编译。例如本次下载了gpio_led项目。
注意:
A.由于开发环境搭建的过程中已经在kendryte-standalone-sdk-develop目录下新建过build文件夹了,所以这里就不需要再新建,可以直接进入build目录编译项目。如果确定kendryte-standalone-sdk-develop目录下没有build文件夹,或者已经删除,需要自己手动在kendryte-standalone-sdk-develop目录下新建一个build文件夹。
B.每个课程中提供的压缩包文件只是一个项目的文件,必须解压后把整个文件夹放到kendryte-standalone-sdk-develop下的src文件夹里。
4. 打开终端(Ctrl+Shift+`),输入cd build 命令进入build目录。
注意:进入build目录是经常有朋友会进错的地方,要保证是在kendryte-standalone-sdk-develop下的build目录。有些朋友会在下载的项目(如gpio_led)新建build文件夹,这个操作其实是错误的。只有在kendryte-standalone-sdk-develop下有一个build文件夹,其他地方都不需要新建build文件夹。
5. cmake编译项目
输入cmake .. -DPROJ=gpio_led -G "MinGW Makefiles" 命令编译项目。
这个命令我们只需要修改-DPROJ=xxxxxxxx的部分,聪明的你一定已经注意到了xxxxxxxx表示的就是项目的名称,也就是对应src目录下的xxxxxxxx文件夹。
6. make编译生成bin文件
输入make 命令编译项目,编译完成后自动在build文件夹中生成xxxxxx.bin文件。
注意:如果编译的项目与之前编译的项目不同,则需要执行上一步的cmake编译步骤,如果是编译相同的项目,并且只是修改了一部分代码,并没有增加或者减少文件,是可以直接执行make编译,而不需要再执行上一步的cmake步骤的,这样可以节省一些编译的时间。
7. 烧录固件到K210开发板
得到了编译好的bin文件(如gpio_led.bin)后,打开k-flash烧录软件,Device选择K210对应的COM口号,Baud rate和Chip保持和图片中一样就好,Firmware出点击右边的三个点选择到要烧录的固件(如gpio_led.bin),最后点击Flash烧录固件。
总结:
1. 课程中下载压缩包文件是每个项目的文件,必须解压后把整个文件夹放到kendryte-standalone-sdk-develop下的src文件夹内。
2. 只有kendryte-standalone-sdk-develop文件夹下才有一个build文件夹,不需要在其他其他地方建build文件夹。
3. build文件夹用于保存临时编译文件以及最后生成的固件(xxxxx.bin)。
The source directory "........"dose not apear to contain CMajeLists.txt
这种情况出现的原因一般都是因为要编译的文件找不到。
解决办法是需要检查是否有把需要编译的文件放在D:\K210\SDK\kendryte-standalone-sdk-develop\src 在scr路径下,同时检查命名是否一致
编译报错,显示
CMake Error: Error: generator : MinGw Makefiles
Does not match the generator used previously: Unix Makefiles
Either remove the aNakeCache.txt file and dNakeFiles directory or choose a different binary directory
解决方式:1.删除build文件夹下的内容,重新编译。2.并且需要注意命令需要手打输入,如果是复制的话,可能会因为符号格式的问题导致报错,符号全部为英文状态下格式。3.删除build文件夹下的内容之后,重新使用vscode打开,检查一下有没有自动编译生成build文件夹,如果有的话,建议切换kendryte ide试一下。
报错如下:
解决方案:正常情况,这个是编译器的问题,不影响实际编译运行结果,可以忽略,以终端调试结果为准。
所有的.c和.h文件都需要和mian.c文件并列放到一个文件夹,否则会因为检索不到编译报错。
1、首先,在win7系统桌面新建一个“文本文档”,然后,将以下内容复制进入:
@echo off
dir
2、接下来,将该新建文档“另存为”,并命名为“ls.bat”,保存类型为“所有文件”,然后,点击“保存”按钮即可。
3、返回桌面,可以看到刚刚新建了一个批处理文件,接下来,将该批处理文件复制到,C\Windows文件夹目录中即可,这种,ls命令就可以正常使用了。
答:在开头加一条在初始化的时候加入invert=1就可以反色了。
问:分类检测时提示报错,报错内容如下:
答:在运行这条代码之前,需要删掉/home/aistudio/work/images文件夹和文件夹内的内容。并且在执行所有代码前,将原先代码文件里面的模型文件删除,重新训练自己的模型和数据。
问:make报错提示如下
答:1.检查环境变量是否添加错误。2.卸载删除kendryte-toolchain,重新安装一遍,注意安装前记得关掉杀毒软件,免得被误删重要配置文件
答:测试录音的代码需要插入sd卡,插入sd卡之前需要格式化为FAT32格式
回复:是的,kmodel为K210可使用的模型格式。