使用kendryte官方的C SDK 和toolchain 对k210进行开发

使用kendryte官方的C SDK 和toolchain 开发k210

开发背景:

1、软件环境:Ubuntu 23.04

2、硬件环境:Sipped 的 Maix Ⅰ系列开发板 Maix bit(k210)

一、获取C SDK
https://github.com/kendryte/kendryte-standalone-sdk.git

二、获取toolchain
https://github.com/kendryte/kendryte-gnu-toolchain/releases/tag/v8.2.0-20190409

1、获取的工具链放在/opt 路径下(也可以是其它路径,看自己的习惯)

2、将工具链路径添加到PATH

bash 复制代码
export PATH=/opt/kendryte-toolchain/bin:$PATH

或者,等会调用cmake编译代码时,直接指定编译器位置

bash 复制代码
cmake .. -DPROJ=<ProjectName> -DTOOLCHAIN=/opt/kendryte-toolchain/bin  && make

三、获取C Demo (自己根据 c sdk写一个demo也行)

https://github.com/kendryte/kendryte-standalone-demo

那么现在就得到三个文件:kendryte-toolchain、kendryte-standalone-sdk、kendryte-standalone-demo。

bash 复制代码
/opt/kendryte-toolchain/
├── bin
├── include
├── lib
├── libexec
├── riscv64-unknown-elf
└── share
bash 复制代码
/disk3/k210/kendryte_C_SDK/
├── kendryte-standalone-demo-develop
└── kendryte-standalone-sdk-develop

官方提供的编译步骤:

https://github.com/kendryte/kendryte-standalone-sdk/blob/develop/README.md

跟着官方给的步骤进行操作:

cd到sdk路径,创建并进入文件夹build,编译

bash 复制代码
cd ./kendryte-standalone-sdk-develop/
mkdir build && cd build
cmake ..   -DPROJ=hello_world  -DTOOLCHAIN=/opt/kendryte-toolchain/bin  && make

编译通过

尝试编译demo文件里面的face_detect示例

清空当前build、将demo文件里面的face_detect复制到sdk的src文件夹中、编译face_detect

bash 复制代码
rm -rf *
cp -r ../../kendryte-standalone-demo-develop/face_detect ../src/
cmake ..   -DPROJ=face_detect  -DTOOLCHAIN=/opt/kendryte-toolchain/bin  && make

同样也是顺利通过

将得到的.bin文件使用kflash烧录

1、下载 kflash

bash 复制代码
pip install kflash 

2、烧录.bin文件

bash 复制代码
 kflash -p /dev/ttyUSB0 -t hello_world.bin 

关于如何创建虚拟环境myenv后下载依赖(开发中用到的软件/库)指路:MaixBit k210学习记录

关于如何在ubuntu使用主机串口(也就是在Ubuntu中访问到/dev/ttyUSB0)指路:VirtualBox下ubuntu23.04使用主机串口以及使用 minicom 进行串口调试

注意!!!

face_detect.bin文件,它可能是为特定的硬件环境(如Kendryte自家的开发板)编译生成的二进制文件。这个文件包含了用于执行人脸识别算法的代码,同时也可能包含了对特定硬件资源(例如LCD显示屏、摄像头模块等)的操作。由于不同的开发板可能有不同的外设配置,直接将此二进制文件放到另一块开发板(如Sipeed Maix系列)上运行,可能会因为缺少必要的驱动支持或不兼容的硬件初始化而导致无法正常工作。

因此,如果希望在Sipeed的K210开发板上实现类似的face_detect功能,通常的做法是:

获取适用于Sipeed K210开发板的SDK或示例代码。

根据Sipeed提供的文档和API来编写或修改应用程序代码,以确保它可以正确地初始化并操作该开发板上的硬件资源。

如果您想要移植现有的功能(如面部检测),可以参考Kendryte的face_detect示例代码中的算法实现部分,但需要替换或调整与硬件交互的部分,以匹配Sipeed开发板的具体情况。

编译时使用适合Sipeed开发板的配置选项,确保生成的二进制文件能够与目标硬件兼容。

简而言之,虽然底层的处理器指令集相同,但由于外设的不同,需要做一定的适配工作才能让代码在一个新的硬件平台上顺利运行。

经过实验,kendryte sdk编译出来hello_world.bin可以成功烧录进Maix bit(k210),并成功运行

face_detect.bin也可以烧录+运行,但是实现LCD白屏,并不能实现人脸检测功能

相关推荐
大辉狼_音频架构8 小时前
AudioReach Plugin 机制问题解答
嵌入式·音视频开发
大辉狼_音频架构11 小时前
AudioReach:Tinyalsa PCM Plugin 机制
嵌入式·音视频开发
feasibility.18 小时前
从数字智能到物理智能体:深度解构具身智能时代的边缘计算、嵌入式实时系统与多形态智能体
人工智能·机器人·自动驾驶·嵌入式·无人机·具身智能·智能体
ajassi20002 天前
AI语音智能体开发日记(一)如何为“小智”服务器启用并调试 License 功能
笔记·ai·嵌入式·ai编程
ARM+FPGA+AI工业主板定制专家2 天前
国产化RK3576+FPGA架构|晶圆传输机器人高速定位+AI瑕疵检测一体化方案
fpga开发·架构·机器人·嵌入式·fpga·工控·机器人运控
Discipline~Hai3 天前
ARM03-蜂鸣器和中断
c语言·arm开发·单片机·嵌入式硬件·嵌入式
一杯原谅绿茶3 天前
安卓烧录工具PhonixCard-4.2.8下载
嵌入式
青衫嵌入式3 天前
FreeRTOS中断优先级配置不对也会HardFault?这次用一个血的教训讲明白
嵌入式
零涂毕业设计4 天前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
wdfk_prog4 天前
嵌入式面试真题第 13 题:单硬件 Timer 下的高精度多路软件定时器架构设计
c语言·开发语言·面试·职场和发展·嵌入式