?用過海思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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/17241.html
標籤:驅動開發/核心開發
上一篇:FMC地址總線的問題
