20D添加标准SPI驱动详解 ——(一)

xiaorang2 2020-07-21 10:19:17
 用过海思3520DV200的人应该都知道吧,由于芯片的年代比较久了,20Dv200的SDK里面是没有标准SPI通讯接口的驱动的,要用SPI通讯的话只能用官方提供的工具SSP_read和write来读写数据,

这样非常的不方便,也不好集成在上层的代码中使用,最近有个项目,需要用到spi,所以就想着能不能自己加一个标准的spi驱动,就像串口一样,通过打开设备节点的方式来操作spi,但是驱动的调试本身难度偏大,

一开始也没什么好思路,请教了Goodman大神之后给我提供了一些思路,就尝试着搞了搞,中间遇到了不少问题,大概四五天的样子,终于搞出来了,这次想写出来跟大家分享一下,一个专栏可能写不完啊,这个东西比较多,想分几次给大家写的详细一些,希望大家看到的对你有帮助。   

首先给大家提供一个思路啊,自己添加并不代表自己纯手写,重新写一个,这个难度太大,也需要花太多的时间,(当然如果有大神自己可以搞定,那当我没说,估计这样的大神也不会看我写的帖子了吧,哈哈哈哈)我们其实不需要自己纯手写,20Dv200的板子是没有标准spi驱动的,但是别的板子有啊,16A有的,20DV400有的,31D也是有的,
我们可以参考别的SDK里的驱动代码,自己添加一下,这就是最关键的思路拉。   

照着这个思路的第一步就是比较一下寄存器的差别,找到20Dv200,20Dv400和16A的文档,打开看了一下,如下: 20Dv200:



16A



比较了一下,只有0x024的DMA寄存器20Dv200是没有的,其他都一样,顿时觉得这个事情有搞头,即使不支持DMA通讯至少是可以搞定的吧,于是打开了SDK代码,开始比较了。在20D添加标准SPI驱动详解 ——(二)和(三)中给大家详细讲一下代码怎么去比较以及修改。
https://www.ebaina.com/articles/140000003972
...全文
50 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧