一、代码结构
1、YOC平台
RVB2601使用了YOC的平台,这个平台提供了一个框架和对底层的抽象,这样在写应用层程序时,可以脱离不同底层硬件的适配。下面是平台的结构。
2、CSI芯片驱动接口层
从上图中可以看到处于最下层的是CSI层,这个是和硬件相关的。在调用硬件进行操作时,就是用的CSI层的代码。而CSI层则是对底层的库函数进行抽象,使得不同芯片的外设都可以使用相同代码进行操作。
因此在对芯片上的外设进行操作时,主要和CSI层打交道。CSI层包含了三个部分:
- CSI-CORE:定义了CPU和相关紧耦合外设的接口规范
- CSI-DRIVER:定义了常用的驱动的接口规范
- CSI-KERNEL: 定义实时操作系统的接口规范
CSI除了对底层的硬件进行了抽象,也对嵌入式操作系统进行了抽象,这个和RT-THREAD的思想类似。
当创建工程时,可以在工程中看到CSI层,如下图。图中csi1和csi2应该是指的2个不同的版本,官网上提到:CSI2驱动接口比CSI1在代码密度上有较大提升。
关于YOC的详细知识请参看:文档首页 · GitBook (t-head.cn)
二、总结
有了对YOC和CSI的初步认识,接下来在写代码的时候就会方便很多。YOC对芯片的编程进行了新的封装,更方便了组件等功能的引入,能够很大的降低开发难度。但是也因为多了一层新的封装,使得初学者会有一些困惑,增加了入门的难度。
|