[求助] E203 SPI相关嵌入式开发可否基于官方库函数?
我们队在开发SPI SD卡读写功能的时候,注意到芯来官方提供了一个库函数,路径是
https://gitee.com/riscv-mcu/hbird-sdk/blob/master/SoC/hbirdv2/Common/Source/Drivers/hbirdv2_spi.c。其内容是操作E203手册中所提及的寄存器 。如下:

但是这里SPI寄存器的定义和我近日接触到的其他SPI master大相迥异。比如芯来姐的RVStar教程,SPI篇 中所提到的SPI功能有这么老些:

对比下来的话,E203的SPI寄存器和GD32VF103的完全不一样,而且不太明白SPI一个串行总线为啥有command、address之类的说法(第一张图标红的寄存器)。并且GD32VF103在github上能看到一个更为完整的驱动支持。
所以我的问题就是,
1、E203中SPI寄存器定义和常见的SPI控制器为何有如此大的差异?E203手册中并未详细说明这些寄存器的意义,请问我应该从哪获取这些信息?
2、E203能否基于开头提到的 hbirdv2_spi.c函数来做SPI通信功能的开发?无论能还是不能,在寄存器定义有差异的情况下,应该遵循一个怎样的初始化流程和数据传输流程?
(再次希望能得到胡灿老师的垂青,谢谢您!!
胡灿1885 天前 ·
1 楼
1. IP不一样,自然编程模型不一样。
2. 当然可以基于官方的driver来,不然你最后操作还是一样的操作,官方封装的API就是根据编程模型来。看下蜂鸟SPI控制lcd的例子,参考下
https://gitee.com/Nuclei-Software/nuclei-board-labs/tree/master/e203_hbirdv2/ddr200t/spi_lcd
💡 请 登录 后参与讨论(微信扫码即登录/注册)
帖子信息
版块开源蜂鸟E203
回复1
浏览5518
发布2021-08-10 17:43