K210简介

K210全称为堪智K210,堪智K210采用RISC-V处理器架构,具备视听一体、自主IP核与可编程能力强三大特点,支持机器视觉与机器听觉多模态识别,可广泛应用于智能家居、智能园区、智能能耗与智能农业等情景。

处理器架构 算力 人脸检测 功耗
RISC-V双核64位CPU 1TOPS 60帧/秒 300mW

参数

性能 安全 功耗 扩展性
中央处理器:RISC-V Dual Core 64bit,with FPU
图像识别:QVGA@60fps/VGA@30fps
语音识别:麦克风阵列(8mics)
高级加密硬件加速器(AES)
一次性只读存储器(OTP)SHA256
典型应用场景功耗<1W
芯片功耗<300mW
操作系统:FreeRTOS
网络模型:TinyYOLOv2(after pruned)
深度学习框架:TensorFlow/Keras/Darknet
外设:FPIOA、UART、GPIO、SPI、IIC、IIS、WDT、TIMER、RTC等

##开发环境
使用VS Code进行开发,需提前安装CMake与toolchain,可前往官网进行资源下载-官方资源
下载官方SDK进行软件开发

点亮LED灯

打开官方SDK

使用VS Code打开SDK,路径如下:kendryte-freertos-sdk-0.7.0

在当前路径下创建一个build文件夹,在TERMINAL终端使用cd build移动到build路径下

工程创建

在src文件夹下新建一个工程文件,命名为gpio_rgb,在其路径下新建main.c与pin_config.h两个文件
打开main.c文件,编写代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <stdio.h>
#include <unistd.h>
#include "sleep.h"
#include "gpio.h"
#include "gpiohs.h"
#include "pin_config.h"

gpio_pin_value_t value = GPIO_PV_HIGH;

void hardware_init(void)
{
fpioa_set_function(PIN_RGB_R, FUNC_RGB_R);
fpioa_set_function(PIN_RGB_G, FUNC_RGB_G);
fpioa_set_function(PIN_RGB_B, FUNC_RGB_B);

fpioa_set_function(PIN_LED_0, FUNC_LED0);
fpioa_set_function(PIN_LED_1, FUNC_LED1);
}

void rgb_all_off(void)
{
gpiohs_set_pin(RGB_R_GPIONUM, GPIO_PV_HIGH);
gpiohs_set_pin(RGB_G_GPIONUM, GPIO_PV_HIGH);
gpiohs_set_pin(RGB_B_GPIONUM, GPIO_PV_HIGH);
}

void init_rgb(void)
{
gpiohs_set_drive_mode(RGB_R_GPIONUM, GPIO_DM_OUTPUT);
gpiohs_set_drive_mode(RGB_G_GPIONUM, GPIO_DM_OUTPUT);
gpiohs_set_drive_mode(RGB_B_GPIONUM, GPIO_DM_OUTPUT);

gpio_set_drive_mode(LED0_GPIONUM, GPIO_DM_OUTPUT);
gpio_set_drive_mode(LED1_GPIONUM, GPIO_DM_OUTPUT);

gpio_set_pin(LED0_GPIONUM, value);
gpio_set_pin(LED1_GPIONUM, value);

rgb_all_off();
}

int main(void)
{
int state = 0;
hardware_init();
init_rgb();

while(1)
{
rgb_all_off();
gpiohs_set_pin(state, GPIO_PV_LOW);
msleep(500);
gpio_set_pin(LED0_GPIONUM, value);
gpio_set_pin(LED1_GPIONUM, value = !value);

state++;
state=state%3;
}
return 0;
}

打开pin_config.h文件,编写代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef _PIN_CONFIG_H_
#define _PIN_CONFIG_H_

#include "fpioa.h"

// 硬件IO口,与原理图对应
#define PIN_RGB_R (6)
#define PIN_RGB_G (7)
#define PIN_RGB_B (8)

#define PIN_LED_0 (0)
#define PIN_LED_1 (17)

// 软件GPIO口,与程序对应
#define RGB_R_GPIONUM (0)
#define RGB_G_GPIONUM (1)
#define RGB_B_GPIONUM (2)

#define LED0_GPIONUM (3)
#define LED1_GPIONUM (4)

// GPIO口的功能,绑定到硬件IO口
#define FUNC_RGB_R (FUNC_GPIOHS0 + RGB_R_GPIONUM)
#define FUNC_RGB_G (FUNC_GPIOHS0 + RGB_G_GPIONUM)
#define FUNC_RGB_B (FUNC_GPIOHS0 + RGB_B_GPIONUM)

#define FUNC_LED0 (FUNC_GPIO0 + LED0_GPIONUM)
#define FUNC_LED1 (FUNC_GPIO0 + LED1_GPIONUM)

#endif

在终端先使用 cmake .. -DPROJ=gpio_rgb -G “MinGW Makefiles” 命令,再使用 make 命令完成编译,再使用KFlash工具进行.bin文件下载
实现了RGB灯与LED0、LED1不断闪烁

效果视频