rt-thread/bsp/k210
Yaochenger de4f237482
[atomic]添加arm与risc-v下的常用原子操作函数 (#7053)
* Update Kconfig
* Update trap_gcc.S
* Update bsp/hifive1/drivers/SConscript

Co-authored-by: Man, Jianting (Meco) <920369182@qq.com>
* Update SConscript
* [atomic]提交一份arm与risc-v架构下的常用原子操作函数
* 修改变量类型
* 更新rtatomic.h与atomic_port.c
* 更新rt-thread\libcpu\arm\common\atomic_port.c
* 更新include/rtatomic.h与libcpu/arm/common/SConscript
* 更新include/rtatomic.h
* 修正格式与Kconfig
* 修正格式与文件结构

* 规范文件格式与文件重命名
* 添加测试用例与CI
* 添加函数声明
* 修改virt64/SConscript 添加atomic_riscv.c
  * 1.规范代码风格
  * 2.添加RISC-V64原子指令支持 解决在RV64下编译器将32-bit运算结果扩展为64-bit 导致判断错误
* 添加C11标准库原子操作测试

---------

Co-authored-by: Man, Jianting (Meco) <920369182@qq.com>
2023-03-23 20:06:50 +08:00
..
applications bsp/k210/:update K210 bsp and base on https://github.com/kendryte/K210-Micropython-OpenMV 2021-10-14 17:23:25 +08:00
drivers [atomic]添加arm与risc-v下的常用原子操作函数 (#7053) 2023-03-23 20:06:50 +08:00
images [libcpu] Add k210 BSP. 2018-12-18 21:01:03 +08:00
.config update the project for RT-Thread_V4.1.1 2022-08-16 19:38:48 +08:00
Kconfig [k210] 调整Kconfig结构 2022-08-03 22:48:13 -04:00
README.md [bsp][readme] 增加scons --exec-path=xxx 命令的使用说明 2022-10-10 09:42:44 +08:00
SConscript [libcpu] Add k210 BSP. 2018-12-18 21:01:03 +08:00
SConstruct [update] CFLAGS 2021-12-17 14:28:40 +08:00
link.lds [libcpu][riscv]整合libcpu/riscv中的移植文件 提供一份公共代码于common (#6941) 2023-03-01 01:32:43 -05:00
link_stacksize.lds format link scripts 2023-01-08 22:52:13 -05:00
rtconfig.h update the project for RT-Thread_V4.1.1 2022-08-16 19:38:48 +08:00
rtconfig.py Update rtconfig.py 2021-08-24 10:41:24 +08:00

README.md

Kendryte K210板级支持包说明

1. 简介

Kendryte K210 是集成机器视觉与机器听觉能力的系统级芯片(SoC)。使用台积电 (TSMC) 超低功耗的 28 纳米先进制程具有双核64位处理器拥有较好的功耗性能稳定性与可靠性。该方案力求零门槛开发可在最短时效部署于用户的产品中赋予产品人工智能。

Kendryte K210 定位于AI与IoT市场的SoC同时是使用非常方便的MCU。

Kendryte中文含义为勘智而勘智取自勘物探智。这颗芯片主要应用领域为物联网领域在物联网领域进行开发因此为勘物这颗芯片主要提供的是人工智能解决方案在人工智能领域探索因此为探智。

  • 具备机器视觉能力
  • 具备机器听觉能力
  • 更好的低功耗视觉处理速度与准确率
  • 具备卷积人工神经网络硬件加速器KPU可高性能进行卷积人工神经网络运算
  • TSMC 28nm先进制程温度范围-40°C到125°C稳定可靠
  • 支持固件加密,难以使用普通方法破解
  • 独特的可编程IO阵列使产品设计更加灵活
  • 低电压,与相同处理能力的系统相比具有更低功耗
  • 3.3V/1.8V双电压支持,无需电平转换,节约成本

芯片规格包括如下:

硬件 描述
芯片型号 K210
CPU 双核RV64GC
主频 400MHz
片内SRAM 8MB
外设 内嵌AES与SHA256算法加速器
DVP、JTAG、OTP、FPIOA、GPIO、UART、SPI、RTC、I²S、I²C、WDT、Timer与PWM

2. 编译说明

编译 K210需要有 RT-Thread 的代码,因为 K210 的 sdk 是以软件包方式,所以需要在 bsp/k210 下做软件包更新。注意,需要使用 latest 的 RT-Thread 源码和 Latest 的软件包软件包在menuconfig中的配置路径如下:

RT-Thread online packages --->
    peripheral libraries and drivers --->
        Kendryte SDK --->
            [*] kendryte K210 SDK

最新的 k210 SDK 使用了 C++17 编写了部分代码,因此需要打开 C++ 组件C++组件在menuconfig中的配置路径如下

RT-Thread Components --->  C++ features

Windows下推荐使用env工具然后在console下进入bsp/k210目录中运行

cd bsp/k210
menuconfig # 在软件包中选择最新的 k210 SDK
pkgs --update

如果在Linux平台下可以先执行

scons --menuconfig

它会自动下载env相关脚本到~/.env目录然后执行

source ~/.env/env.sh

cd bsp/k210
pkgs --update

下载risc-v的工具链下载地址

更新完软件包后,在rtconfig.py中将risc-v工具链的本地路径加入文档。 注:

  1. 工具链建议使用上方提供的,kendryte的官方工具链会报浮点类型不兼容的错误,risc-v工具链8.2.0之前的版本会出现头文件不兼容的问题。
  2. 网上传需要开启C++ 17,认为k210的神经网络编译器nncase多数语法由C++ 17,故需要开启C++ 17。个人认为没有必要nncase是在PC端独立使用的 作用是将神经网络模型转为kmodel格式此格式文件为已经编译的二进制文件。shentalon注)

然后执行scons编译

    set RTT_EXEC_PATH=C:\Users\xxxx\Downloads\xpack-riscv-none-embed-gcc-10.2.0-1.2\bin
    scons

来编译这个板级支持包。

或者通过 scons --exec-path="GCC工具链路径" 命令,在指定工具链位置的同时直接编译。

如果编译正确无误会产生rtthread.elf、rtthread.bin文件。其中rtthread.bin需要烧写到设备中进行运行。
如果初次使用编译报错可能是使用的SDK过老使用menuconfig命令,在→ RT-Thread online packages → peripheral libraries and drivers → the kendryte-sdk package for rt-thread中将SDK改为latest版本即可。

3. 烧写及执行

连接好串口,然后使用K-Flash工具进行烧写bin文件。

K-Flash

3.1 运行结果

如果编译 & 烧写无误当复位设备后会在串口上看到RT-Thread的启动logo信息

terminal

如果是K210-test_v0.2开发板,可以用如下命令来打开串口:

python -m serial.tools.miniterm --rts 0 --dtr 0 COM9 115200

4. 驱动支持情况及计划

驱动 支持情况 备注
UART 支持 高速UART用于shell

5. 联系人信息

维护人:bernard

6. 注意事项

在进行系统menuconfig配置时以下项是必选的

配置项 强制配置值
Alignment size for CPU architecture data access 8
The stack size of idle thread > 1024
the device name for console "uarths"
Set main thread stack size 4096

7. 参考