2020-02-29

2020-02-29  本文已影响0人  sonia的红猪猪

阿里 平头哥比赛培训:

软件开发:

cdk:win下的集成开发环境

toolchain和debug server:linux下的编译和调试

sdk:

board:板级的启动文件支持 内有board_init实现 开启时钟和调试以及printf用的串口

csi_kernel: rhino: 实时操作系统内核(是另一个开源项目alios things的最小操作系统内核),类似ucosii,可以在cdk里配置工程支持与不支持操作系统,实现了信号量,邮箱,互斥量,软件定时器。

csi_core:cpu核心信息的头文件

csi_driver:硬件设备的驱csi_kernel:动文件,包括pwm,timer和i2cspi串口,注意平头哥的i2c、spi、uart都共享一个usi接口,而默认的处理只包含三个usi接口,所以如果不改动verilog代码可用的串行接口只有三个(uart spi i2c加起来)

csi_driver里还包含启动文件,在main执行前先执行了system_init和board_init初始化系统时钟和调试printf打印用的串口

启动文件

projects:

有各个设备驱动的代码样例。用cdk打开可分析。

一般启动一个设备包括引脚分配,初始化以及配置

比如gpio:

先分配引脚:

drv_pinmux_config(EXAMPLE_GPIO_PIN, EXAMPLE_GPIO_PIN_FUNC);

再初始化设备:

定义句柄

gpio_pin_handle_t pin = NULL;   

 调用初始化函数

pin = csi_gpio_pin_initialize(gpio_pin, gpio_interrupt_handler);          

这里的pin是gpio的设备句柄,句柄是win32编程风格里标识资源的一种特殊的指针

然后是调用配置的函数各种外设的配置函数不同可以查csi_driver中的驱动代码

其他的编码风格与stm32无异

utilities:

这里有使用linux+riscv-tools编译工程用的调试和下载flash的组件,用cdk集成开发环境可以忽略

硬件设计:

以后再更

上一篇下一篇

猜你喜欢

热点阅读