一、和一代对比
LicheeRV Nano是对milkv-duo的二代提升。与此同时,算力芯片也提升了一个台阶。
首先最明显的是1TOPS的NPU。相比一代TPU,功能更全面,同时算力有了较大的性能提升
视频方面,对视频的优化提供了更好地硬件支持
接口方面倒是没啥大的提升。只是增加了一个SD口,同时支持了EMMC。但是SD0和EMMC只能二选一
二代芯片增加了一个ARM主核。但是主核竟然不能和RiscV核同时使用,只能通过引脚二选一。这部分的应用场景不知道在哪里。毕竟硬件固件并不兼容。
二、板卡
这次测评厂商送的零件还是比较齐全的。首先网卡和7寸屏都给了。尤其是给了7寸屏。能做很多实验。而且屏幕成本稍高,确实对测评有着不小的帮助。
然而,网卡模块采用FPC软排自己手动焊接的方式。这个方式网卡模块一旦上去,就不好拿下来了。毕竟FPC软排不能被来回折腾。与此同时,固定网卡模块还占用了俩排针位。需要提前将这个位置的排针拔出去。同时还占用了本就不多的插针位置。有点不太友好。
三、上电
这次比之前人性化的地方就是USB供电接口,RNDIS,以及调试串口被集成了。这下可以节省掉令人烦躁的TTL调试口飞线,找USB转串口板子,以及维护这两根线的精力。
主流的一些工具软件确实没有。对于新手影响大
镜像配置了基本的扩容能力。所以可以完整地利用存储卡空间。
四、开发
这代比之前的一大好处是,CV1800B时代的编译链需要自己手动编译。虽然不难。但是这一版本直接由官方提供了工具链,免去了菜鸟刚入门的开发危机。
不过需要注意的是,其实她系统没给准备啥库。一打开就是空空荡荡的系统。所以想要开发啥软件,还是要自己搞一下库的问题。
测个小项目:
注意: 这里一定要用sysroot指定编译根目录。否则它会用编译器默认的库。而这个库和你官方固件对不上。第二就是一定要用CMAKE_C_FLAGS指定平台,否则也对不上库。
cmake_minimum_required(VERSION 3.20)
SET(CMAKE_C_COMPILER /home/host-tools/gcc/riscv64-linux-musl-x86_64/bin/riscv64-unknown-linux-musl-gcc)
project(CGobjectTest C)
SET(CMAKE_C_FLAGS "-mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d")
SET(CMAKE_SYSROOT "/home/host-tools/gcc/riscv64-linux-musl-x86_64/sysroot")
add_executable(CGobjectTest main.c)
int main(int argc, char* argv[]) {
printf("Hello World!\n");
for (int index=0; index<argc; index++){
printf("get argv id: %d |info:%s\n", index, argv[index]);
}
if (argc >= 3){
if (strcmp(argv[1], "-a") == 0 && argc >= 3){
printf("get argv: %s\n", argv[2]);
}else{
printf("no params info\n");
}
}else{
printf("not argv\n");
}
return 0;
}
输出如下:
# ./CGobjectTest -a 123
Hello World!
get argv id: 0 |info:./CGobjectTest
get argv id: 1 |info:-a
get argv id: 2 |info:123
get argv: 123