Skip to content

Commit ac8dd7f

Browse files
committed
release v1.5
0 parents  commit ac8dd7f

File tree

1,038 files changed

+909697
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,038 files changed

+909697
-0
lines changed

.gitignore

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
dl/
2+
buildroot-2020.02.11/
3+
toolchain/[^.]*
4+
pkg-download/[^.]*
5+
*defconfig/

Config.in

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
source "$BR2_EXTERNAL_K510_PATH/package/riscv-pk-k510/Config.in"
2+
source "$BR2_EXTERNAL_K510_PATH/package/riscv-tinymembench/Config.in"
3+
source "$BR2_EXTERNAL_K510_PATH/package/video_lib/Config.in"
4+
source "$BR2_EXTERNAL_K510_PATH/package/opencv4/Config.in"
5+
source "$BR2_EXTERNAL_K510_PATH/package/nncase_linux_runtime/Config.in"
6+
#source "$BR2_EXTERNAL_K510_PATH/package/nncase_demo/Config.in"
7+
source "$BR2_EXTERNAL_K510_PATH/package/libdisp/Config.in"
8+
source "$BR2_EXTERNAL_K510_PATH/package/drm_demo/Config.in"
9+
source "$BR2_EXTERNAL_K510_PATH/package/lvgl/Config.in"
10+
source "$BR2_EXTERNAL_K510_PATH/package/twod_demo/Config.in"
11+
source "$BR2_EXTERNAL_K510_PATH/package/encode_app/Config.in"
12+
source "$BR2_EXTERNAL_K510_PATH/package/dsp_app_new/Config.in"
13+
source "$BR2_EXTERNAL_K510_PATH/package/k510_evb_test/Config.in"
14+
source "$BR2_EXTERNAL_K510_PATH/package/dsp_log/Config.in"
15+
source "$BR2_EXTERNAL_K510_PATH/package/venc_lib/Config.in"
16+
source "$BR2_EXTERNAL_K510_PATH/package/alsa_demo/Config.in"
17+
source "$BR2_EXTERNAL_K510_PATH/package/ffmpeg_canaan/Config.in"
18+
source "$BR2_EXTERNAL_K510_PATH/package/audio3a_lib/Config.in"
19+
source "$BR2_EXTERNAL_K510_PATH/package/mediactl_lib/Config.in"
20+
source "$BR2_EXTERNAL_K510_PATH/package/mailbox_demo/Config.in"
21+
source "$BR2_EXTERNAL_K510_PATH/package/dsp_scheduler/Config.in"
22+
source "$BR2_EXTERNAL_K510_PATH/package/live555_canaan/Config.in"
23+
source "$BR2_EXTERNAL_K510_PATH/package/ai/Config.in"
24+
source "$BR2_EXTERNAL_K510_PATH/package/client/Config.in"
25+
source "$BR2_EXTERNAL_K510_PATH/package/server/Config.in"
26+
source "$BR2_EXTERNAL_K510_PATH/package/crypto/Config.in"
27+
source "$BR2_EXTERNAL_K510_PATH/package/trng/Config.in"
28+
source "$BR2_EXTERNAL_K510_PATH/package/pwm/Config.in"
29+
source "$BR2_EXTERNAL_K510_PATH/package/rtc/Config.in"
30+
source "$BR2_EXTERNAL_K510_PATH/package/uart/Config.in"
31+
source "$BR2_EXTERNAL_K510_PATH/package/watchdog/Config.in"
32+
source "$BR2_EXTERNAL_K510_PATH/package/write_read_file/Config.in"
33+
source "$BR2_EXTERNAL_K510_PATH/package/wifi/Config.in"
34+
source "$BR2_EXTERNAL_K510_PATH/package/gpio_keys/Config.in"
35+
source "$BR2_EXTERNAL_K510_PATH/package/hello_world/Config.in"

LICENSE

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Copyright (c) 2022, Canaan Bright Sight Co., Ltd
2+
3+
Redistribution and use in source and binary forms, with or without
4+
modification, are permitted provided that the following conditions are met:
5+
6+
1. Redistributions of source code must retain the above copyright
7+
notice, this list of conditions and the following disclaimer.
8+
9+
2. Redistributions in binary form must reproduce the above copyright
10+
notice, this list of conditions and the following disclaimer in the
11+
documentation and/or other materials provided with the distribution.
12+
13+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
14+
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
15+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
18+
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
20+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Makefile

+160
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
BR2_VERSION = 2020.02.11
2+
3+
RED=\e[1;31m
4+
NC=\e[0m
5+
6+
SHELL=/bin/bash
7+
8+
BRW_ROOT = $(PWD)
9+
BRW_SITE = https://buildroot.org/downloads/buildroot-$(BR2_VERSION).tar.gz
10+
BRW_FILE = $(BR2_DL_DIR)/buildroot-$(BR2_VERSION).tar.gz
11+
BRW_DIR = $(BRW_ROOT)/buildroot-$(BR2_VERSION)
12+
BRW_PATCH_DIR = $(BRW_ROOT)/patches
13+
14+
TOOLCHAIN_DIR = $(BRW_ROOT)/toolchain
15+
TOOLCHAIN_NAME = nds64le-linux-glibc-v5d
16+
TOOLCHAIN_DIR_SITE =https://github.com/andestech/Andes-Development-Kit/releases/download/ast-v3_2_1-release-linux
17+
18+
TOOLCHAIN_NAME_MCU = nds64le-elf-mculib-v5d
19+
TOOLCHAIN_MCU_DIR_SITE =https://github.com/andestech/Andes-Development-Kit/releases/download/ast-v3_2_3-release-linux
20+
21+
#DEMO_DIR = $(BRW_ROOT)/demo
22+
#ROOTFS_OVERLAY_PATH = $(BRW_ROOT)/board/canaan/k510/rootfs_overlay
23+
24+
25+
26+
CONF ?= "k510_crb_lp3_v1_2_defconfig"
27+
O ?= $(CONF)
28+
BR2_DL_DIR ?= $(BRW_ROOT)/dl
29+
30+
define DOWNLOAD
31+
set -e;\
32+
if [ ! -d $(BR2_DL_DIR) ]; then \
33+
[ -f pkg-download/dl.tar.gz ] && tar -zxf pkg-download/dl.tar.gz ;\
34+
mkdir -p $(BR2_DL_DIR); \
35+
fi; \
36+
if [ ! -f $(BRW_FILE) ]; then \
37+
wget -c $(BRW_SITE) -O $(BRW_FILE); \
38+
fi; \
39+
40+
41+
endef
42+
43+
define COPYFILES
44+
set -e; \
45+
if [ ! -d $(BRW_DIR) ]; then \
46+
tar --no-same-owner -zxf $(BRW_FILE) -C $(BRW_ROOT); \
47+
if [ "'ls $(BRW_PATCH_DIR)/*.patch'" != "" ]; then \
48+
$(BRW_DIR)/support/scripts/apply-patches.sh $(BRW_DIR) $(BRW_PATCH_DIR); \
49+
fi; \
50+
fi; \
51+
52+
if [ ! -d $(TOOLCHAIN_DIR)/$(TOOLCHAIN_NAME) ]; then \
53+
tar --no-same-owner -xf $(TOOLCHAIN_DIR)/$(TOOLCHAIN_NAME).txz -C $(TOOLCHAIN_DIR); \
54+
fi; \
55+
56+
[ -d $(TOOLCHAIN_DIR)/$(TOOLCHAIN_NAME_MCU) ] || tar --no-same-owner -xf $(TOOLCHAIN_DIR)/$(TOOLCHAIN_NAME_MCU).txz -C $(TOOLCHAIN_DIR);
57+
58+
endef
59+
60+
define CLEAN
61+
set -e; \
62+
cd $(BRW_ROOT); \
63+
rm -rf $(CONF); \
64+
rm -rf $(BRW_DIR); \
65+
66+
endef
67+
68+
69+
70+
71+
72+
.PHONY: all
73+
all .DEFAULT: down_toolchain
74+
@$(call DOWNLOAD)
75+
@$(call COPYFILES)
76+
make -C $(BRW_DIR) $(CONF) O=$(BRW_ROOT)/$(O) BR2_EXTERNAL=$(BRW_ROOT)
77+
make -C $(BRW_ROOT)/$(O)
78+
79+
.PHONY: source
80+
source:
81+
@$(call DOWNLOAD)
82+
@$(call COPYFILES)
83+
make -C $(BRW_DIR) $(CONF) O=$(BRW_ROOT)/$(O) BR2_EXTERNAL=$(BRW_ROOT)
84+
make -C $(BRW_ROOT)/$(O) source
85+
86+
.PHONY: menuconfig
87+
menuconfig:
88+
make -C $(BRW_ROOT)/$(O) menuconfig
89+
90+
.PHONY: build
91+
build:
92+
make -C $(BRW_ROOT)/$(O)
93+
94+
.PHONY: savedefconfig
95+
savedefconfig:
96+
make -C $(BRW_ROOT)/$(O) savedefconfig
97+
98+
.PHONY: clean
99+
clean:
100+
@$(call CLEAN)
101+
102+
.PHONY:down_toolchain dl
103+
104+
105+
dl:
106+
rm -rf pkg-download/dl.tar.gz;
107+
wget -c https://github.com/kendryte/k510_buildroot/releases/download/v1.5/dl.tar.gz -O pkg-download/dl.tar.gz;
108+
tar -zxf pkg-download/dl.tar.gz;
109+
mkdir -p dl/ai/; wget -c https://github.com/kendryte/k510_buildroot/releases/download/v1.5/ai_kmodel_data.tar.xz -O dl/ai/ai_kmodel_data.tar.xz;
110+
111+
112+
down_toolchain:
113+
if [ ! -f toolchain/$(TOOLCHAIN_NAME).txz ] || [ "c87c87089fe2f0445a94054e8ae7b947" != "$(shell md5sum toolchain/$(TOOLCHAIN_NAME).txz | cut -d' ' -f1 )" ]; then \
114+
rm -rf toolchain/$(TOOLCHAIN_NAME)* ;\
115+
wget -c $(TOOLCHAIN_DIR_SITE)/$(TOOLCHAIN_NAME).txz -O toolchain/$(TOOLCHAIN_NAME).txz;\
116+
tar --no-same-owner -xf $(TOOLCHAIN_DIR)/$(TOOLCHAIN_NAME).txz -C $(TOOLCHAIN_DIR);\
117+
fi;
118+
if [ ! -f toolchain/$(TOOLCHAIN_NAME_MCU).txz ] || [ "d2dcf2729c2e6b654c4be197c2c75987" != "$(shell md5sum toolchain/$(TOOLCHAIN_NAME_MCU).txz | cut -d' ' -f1 )" ]; then\
119+
rm -rf toolchain/$(TOOLCHAIN_NAME_MCU)* ;\
120+
wget -c $(TOOLCHAIN_MCU_DIR_SITE)/$(TOOLCHAIN_NAME_MCU).txz -O toolchain/$(TOOLCHAIN_NAME_MCU).txz;\
121+
tar --no-same-owner -xf $(TOOLCHAIN_DIR)/$(TOOLCHAIN_NAME_MCU).txz -C $(TOOLCHAIN_DIR);\
122+
fi;
123+
124+
#mkfs.ext4 -d $${dir} $(BR2_DL_DIR)/debian_rootfs.ext4 3G;
125+
126+
#update_debian: SHELL=/bin/bash
127+
debian:
128+
@[ -f ${CONF}/images/sysimage-sdcard.img ] || { echo "please first use 'make CONF=${CONF}' command build sdk!"; exit 1; }
129+
echo "please change to root user or sudo -s make update_debian"
130+
(set -xe; dir=debian; debian_tar=$(shell pwd)/board/canaan/k510/debian.tar.gz; rm -rf $${dir} $${debian_tar}; \
131+
wget http://ftp.cn.debian.org/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2022.02.15_all.deb;\
132+
dpkg -i debian-ports-archive-keyring_2022.02.15_all.deb;rm -rf debian-ports-archive-keyring_2022.02.15_all.deb;\
133+
debootstrap --arch=riscv64 --keyring /usr/share/keyrings/debian-ports-archive-keyring.gpg \
134+
--include=debian-ports-archive-keyring unstable $${dir} http://deb.debian.org/debian-ports; \
135+
chroot $${dir} apt-get update; chroot $${dir} apt-get install -y ntpdate libgomp1 libatomic1; \
136+
echo "root:root" | chroot $${dir} chpasswd;\
137+
chroot "$$dir" adduser --gecos "Debian user,,," --disabled-password debian ;\
138+
echo "debian:debian" | chroot $$dir chpasswd;\
139+
echo "debian" > $${dir}/etc/hostname;\
140+
echo -e '#!/bin/bash -e \nntpdate ntp.aliyun.com\n' >$${dir}/etc/rc.local; chmod +x $${dir}/etc/rc.local; \
141+
echo -e "auto lo\niface lo inet loopback\n\n\nauto eth0\niface eth0 inet dhcp \n" > $${dir}/etc/network/interfaces;\
142+
chroot $${dir} rm -rf /etc/localtime ; chroot $${dir} ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ;\
143+
rsync -a --ignore-times --chmod=u=rwX,go=rX board/canaan/k510/debian_rootfs_overlay/ $${dir}; \
144+
chroot $${dir} systemctl enable rootfs_fsck;\
145+
tar -cjf $${debian_tar} $${dir} ; chmod a+rw $${debian_tar};rm -rf $${dir};\
146+
echo "file is $${debian_tar} ";\
147+
export CONF=${CONF} ; ./board/canaan/k510/debian.sh ;\
148+
echo "debian image is ${CONF}/images/sysimage-sdcard-debian.img";\
149+
)
150+
update_debian_from_last_version:
151+
(set -xe; dir=debian; debian_tar=$(shell pwd)/board/canaan/k510/debian.tar.gz; rm -rf $${dir}; tar -xf $${debian_tar}; \
152+
rsync -a --ignore-times --chmod=u=rwX,go=rX board/canaan/k510/debian_rootfs_overlay/ $${dir}; \
153+
chroot $${dir} systemctl enable rootfs_fsck;\
154+
rm -rf $${debian_tar}; tar -cjf $${debian_tar} $${dir} ; chmod a+rw $${debian_tar};\
155+
)
156+
help:
157+
@echo "debian---generate debian image,note:need root privileged "
158+
@echo "source---down all code "
159+
@echo "build---only build"
160+
@echo "all---default,example:make CONF=k510_crb_lp3_v1_2_defconfig"

README.md

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# K510 SDK
2+
勘智K510是嘉楠公司推出的第二代AI边缘侧推理芯片,它为AI应用提供了高性能的图像及语音处理能力。K510搭载自主研发的第二代神经网络处理器KPU2.0, 采用独创计算数据流技术,算力较上一代提升3倍同时降低功耗。集成最新一代图像处理器ISP,支持TOF深度相机接入,支持2D/3D降噪、宽动态范围(WDR)、硬件3A等完备功能。3D ISP支持深度摄像头TOF sensor。可广泛应用于无人机、高清航拍、专业相机、视频会议、智能机器人、教育STEAM、自动辅助驾驶等不同应用领域。
3+
4+
5+
K510 SDK是嘉楠公司提供的用于K510芯片应用研发的软件开发资料包,它的默认配置基于K510 CRB(客户参考平台),仓库内容包括用户在使用 K510 芯片进行开发中可能用到的工具链软件、PC工具包、Linux代码、bootloader、bbl、buildroot构建系统软件及相关的硬件资源文档。用户可以基于本套软件代码库,根据自己的需求进行定制更改开发,最终构建并编译生成部署使用的镜像文件。
6+
## 资料内容说明和参考资源链接
7+
| No | 链接地址 | 说明 |
8+
| :----: | ---- | ------------------------------------------------------------ |
9+
|1| / | 代码编译工作目录 |
10+
|2|[docs/](https://github.com/kendryte/k510_docs)| K510系统编译及应用开发文档;硬件资源介绍文档
11+
|3|[package/](/package/)| 提供Linux系统外设开发应用示例;各种AI 演示应用源代码 |
12+
|4|[嘉楠勘智](https://canaan-creative.com/product/勘智k510)|嘉楠勘智官网|
13+
|5|[开发者社区](https://canaan-creative.com/developer)|嘉楠勘智论坛
14+
|6|[演示视频](https://space.bilibili.com/677429436)|K510开发板开箱视频及多个 AI 应用展示视频|
15+
|7|[K510 CRB-KIT]()|K510 开板板套装在线购买链接|
16+
|8|即时沟通| 社区互助 QQ 群:790699378<br>Telegram:nncase community |
17+
## K510 CRB 开发者套装介绍
18+
K510 CRB-KIT是基于K510芯片研发的开发者套装,它采用分级设计,以K510核心模组为基础,外设丰富,便于扩展。 支持USB 2.0 OTG+PHY、千兆以太网口、3xSDIO、3xSPI等高速通信接口,支持4xUART、GPIO、I2C和I2S等低速通信接口。使用简单、资料丰富、能够帮助客户快速实现创意评估、产品原型验证,缩短产品设计周期。
19+
![canaan-board.png](https://github.com/kendryte/k510_docs/raw/v1.5/zh/images/hw_crb_v1_2/canaan-board.png)
20+
<center>K510 CRB 正面照 </center>
21+
22+
![image-hw_1_3.png](https://github.com/kendryte/k510_docs/raw/v1.5/zh/images/hw_crb_v1_2/image-hw_1_3.png)
23+
<center>K510系统框图</center>
24+
25+
![image-hw_3_1.png](https://github.com/kendryte/k510_docs/raw/v1.5/zh/images/hw_crb_v1_2/image-hw_3_1.png)
26+
<center>K510核心板模组图</center>
27+
28+
## K510 软件开发入门
29+
30+
### 建立软件开发环境
31+
K510 软件开发基于 Linux 环境。用户需要准备一台装有 Linux 操作系统的主机用于软件编译及部署,如果您工作在 windows 下,推荐安装 Windows WSL 以便进行软件开发工作。
32+
### 源代码下载
33+
```sh
34+
git clone https://github.com/kendryte/k510_buildroot.git
35+
```
36+
### 启动docker
37+
```sh
38+
sh k510_buildroot/tools/docker/run_k510_docker.sh
39+
```
40+
### 编译代码库
41+
进入docker环境后,输入如下命令进行系统编译。
42+
```sh
43+
make dl
44+
make
45+
```
46+
`make dl`为可选步骤,用于加速源码下载。
47+
第一次全新系统编译时间较长,请耐心等待(时间和主机CPU的性能和网络下载速度相关)。
48+
### 烧写镜像文件
49+
K510 支持sdcard和eMMC启动方式,用户可以通过改变开板上SW1拔码开关的设置切换不同启动模式。
50+
出厂默认为从emmc启动。为方便开发,建议您准备一张TF卡,并将拔码开关切换至SD卡启动模式,后续可考虑将镜像文件固化至emmc中。
51+
无论您工作在 Linux 还是 Windows系统下, 均可下载 [Etcher](https://www.balena.io/etcher/) 工具,将编译生成的镜像文件(k510_buildroot/k510_crb_lp3_v1_2_defconfig/image/sysimage-sdcard.img)烧录至 TF 卡中。
52+
![balenaetcher.png](https://github.com/kendryte/k510_docs/raw/v1.5/zh/images/quick_start/balenaetcher.png)
53+
54+
55+
### 上电运行
56+
确认SW1开关选择在SD卡启动模式下,将烧录完成的TF卡插入进开板板卡槽中,然后将电源开关K1拔到ON位置,系统可上电。您会看到屏幕显示 CANAAN logo 画面,如果您有接好串口,可在串口中看到启动日志输出。
57+
![k510_boot.png](https://github.com/kendryte/k510_docs/raw/v1.5/zh/images/quick_start/k510_boot.png)
58+
59+
### 更改默认启动程序
60+
默认情况下,系统开机会自动运行 /app/mediactl_lib 路径下的示例程序(v4l2_drm.out)。你也可以手动更改配置程序,改成运行其它演示程序。更改方法如下:
61+
```sh
62+
vi /etc/init.d/rc.sysinit
63+
修改以下位置
64+
cd /app/mediactl_lib/
65+
./v4l2_drm.out -f video_drm_1080x1920.conf &
66+
cd /
67+
改为你想运行的 APP,例如改成人脸检测演示应用,可以改成:
68+
/app/ai/shell/face_detect.sh &
69+
```
70+
71+
## 联系我们
72+
北京嘉楠捷思信息技术有限公司
73+
网址:[canaan-creative.com](canaan-creative.com)
74+
商务垂询:[salesAI@canaan-creative.com](mailto:salesAI@canaan-creative.com)

0 commit comments

Comments
 (0)