D133 RISC-V KunLun Pi开发板评测 01 开发环境搭建与测试
1. 匠芯创 RISC-V 芯片简介
匠芯创科技立足于RISC-V SoC芯片设计,有下面的系列芯片。
ArtInChip D21x系列工业级RISC-V MPU量产,市场覆盖工业自动化、医疗、新能源、车载后装、电力、智能家电等5大行业十几个细分领域;
ArtInChip D13x系列工业级跨界MCU上市,填补了国产自主工业级RISC-V架构高性能MCU的空白,主频高达500MHz;
ArtInChip D12x系列工业级显示控制MCU上市,进一步扩大了显示HMI类产品市场影响力,覆盖了行业40%客户;
ArtInChip M6800系列工业级控制DSP芯片上市,在伺服、变频、逆变等领域打破国际大品牌在工控领域垄断格局,在功能和性能上不断创新、持续领先。
2. RISC-V KunLun Pi开发板
D13x 是 ArtInChip 一款基于 RISC-V 的高性能、国产自主、工业级全高清显示与智能控制 MCU,配备强 大的 2D 图形加速处理器、 PNG 解码、JPEG 编解码引擎、丰富的屏接口,支持工业宽温,具有高可靠性、 高开放性,可广泛应用于工业 HMI、 网关、串口屏等泛工业和智慧家居领域。
D133CBS RISC-V KunLun Pi V1.0 是一款基于 D13x 芯片的人机交互应用开发板,配备 4.3 寸 LCD 显示 屏以及电容触摸屏,支持 DVP 摄像头。开发板集成了 USB 烧录、TF-Card 升级烧录、JTAG、串口打印等调 试接口,方便调试开发。开发板集成 16MB NOR FLASH 并可兼容 NAND,同时引出 RS485、RS232/TTL、喇 叭、SDIO WIFI 等功能,方便用户快速进行技术预研与产品开发,满足用户对不同人机交互场景的开发需求。
开发板资源图
3. 开发环境搭建
匠芯创D133芯片官方提供了两个SDK,一个是裸机版本,一个是RTOS版本,代码均在Gitee,下载代码之前安装好git.
裸机版本地址(裸机版本里面有D133芯片的,但是没有对应的板子bsp)
git clone https://gitee.com/artinchip/baremetal.git
RTOS版本地址
(RTOS版本里面有对应的板子bsp)
git clone https://gitee.com/artinchip/luban-lite.git
以RTOS作为版本作为下面测试模板
打开win_env.bat进行配置
scons命令配置
scons --list-def 查看 SDK 支持板卡
scons --apply-def=11
scons --menuconfig
工程信息
配置LVGL工程
详细LVGL配置见官方参考文档进行配置
https://aicdoc.artinchip.com/topics/lvgl-user-guide-luban-lite.html
点击demo,选择lvgl show case工程模板
完成上面的配置之后,直接退出即可,如果第一次从官方Gitee下载,其实不需要太多的配置,可以直接scons编译。
但是我下载代码时候,进行编译的时候报错了,主要是里面C++的库有问题,出现了编译。因此我直接把下面路径的东西直接删除了(应该不是正确的解决方法,但是能用,不知道后面会出啥子问题,先这样子吧)
d133x-board-luban-lite\toolchain\riscv64-unknown-elf\include
编译成功结果
4. 测试
使用USB下载镜像,利用AiBurn工具.
AiBurn下载地址
git clone https://gitee.com/artinchip/tools
AiBurn工具使用方法,先按住板子上面的Uboot按键,然后在插入USB数据线。
下载镜像
点击开始下载即可。
使用串口终端工具,波特率115200 连接串口线。
主函数代码
#include <rtthread.h>
#ifdef RT_USING_ULOG
#include <ulog.h>
#endif
#ifdef AIC_AB_SYSTEM_INTERFACE
#include <absystem.h>
#include <stdlib.h>
#include <stdio.h>
#include <dfs.h>
#include <dfs_fs.h>
#include <boot_param.h>
#endif
int main(void)
{
#ifdef AIC_AB_SYSTEM_INTERFACE
char target[32] = { 0 };
enum boot_device boot_dev = aic_get_boot_device();
if (boot_dev != BD_SDMC0) {
aic_ota_status_update();
aic_get_rodata_to_mount(target);
printf("Mount APP in blk %s\n", target);
if (dfs_mount(target, "/rodata", "elm", 0, 0) < 0)
printf("Failed to mount elm\n");
memset(target, 0, sizeof(target));
aic_get_data_to_mount(target);
printf("Mount APP in blk %s\n", target);
if (dfs_mount(target, "/data", "elm", 0, 0) < 0)
printf("Failed to mount elm\n");
}
#endif
#ifdef ULOG_USING_FILTER
ulog_global_filter_lvl_set(ULOG_OUTPUT_LVL);
#endif
printf("Emdbedded-ArtinChip-Board-Template \r\n");
printf("By Coder End-ING 2024-06-26 \r\n");
return 0;
}
5. 实物测试效果