RT Thread SPI裝置驅動使用

2021-09-29 23:14:49 字數 2287 閱讀 7001

1、註冊spi匯流排到系統中

int

rt_hw_spi_init

(void

)init_board_export

(rt_hw_spi_init)

;

這裡已經使用rt_hw_spi_init自動將選擇的spi匯流排註冊到了系統中,所以不再需要手冊註冊。函式呼叫流程為:

rt_hw_spi_bus_init()

--->

/* register a spi bus */

rt_err_t rt_spi_bus_register

(struct rt_spi_bus *bus,

const

char

*name,

const

struct rt_spi_ops *ops)

--->

/*將spi匯流排定義為rt_device_class_spibus型別註冊到系統中*/

rt_err_t rt_spi_bus_device_init

(struct rt_spi_bus *bus,

const

char

*name)

2、註冊spi裝置到系統中,並附加到乙個spi匯流排上,函式呼叫流程為:

/** 1、呼叫rt_spi_bus_attach_device(spi_device, device_name, bus_name, (void *)cs_pin)

2、attach a device on spi bus

*/rt_err_t rt_hw_spi_device_attach

(const

char

*bus_name,

const

char

*device_name,

gpio_typedef *cs_gpiox,

uint16_t cs_gpio_pin)

-->

/** 1、根據bus_name找到spi_bus裝置

2、將spi_bus裝置賦值給spi_dev裝置的bus

3、呼叫rt_spidev_device_init

4、將user_data賦值給device->parent.user_data

struct rt_spi_device

;*/

rt_err_t rt_spi_bus_attach_device

(struct rt_spi_device *device,

const

char

*name,

const

char

*bus_name,

void

*user_data)

-->

/*將spi_dev裝置rt_device_class_spidevice註冊到系統中*/

rt_err_t rt_spidev_device_init

(struct rt_spi_device *dev,

const

char

*name)

使用示例:rt_hw_spi_device_attach(「spi1」,「spi10」,gpioa,gpio_pin_5);

3、註冊flash裝置到系統中,並附加到乙個spi裝置上

struct spi_flash_device

;/** 1、根據spi_device_name找到spi_dev裝置

2、將spi_dev裝置賦值給spi_flash_device裝置的rt_spi_device

3、將spi_flash_device裝置rt_device_class_spidevice註冊到系統中

*/rt_err_t w25qxx_init

(const

char

* flash_device_name,

const

char

* spi_device_name)

使用示例:

1、w25qxx_init(「w25q128」,「spi10」); /* 使用spi_flash_w25qxx驅動 /

2、rt_sfud_flash_probe(「w25q128」,「spi10」); / 使用spi_flash_sfud驅動 */

裝置驅動例項 字元裝置驅動

在整個linux裝置驅動學習中,字元裝置驅動較為基礎。通過對它的學習,對裝置驅動進一步加深了解 cdev 結構體struct cdev 講下比較重要的成員變數 dev t dev 定義了32位的裝置號,其中12位是主裝置號,20位是從裝置號。獲取主裝置號 major dev t dev 獲取從裝置號...

驅動 linux裝置驅動 字元裝置驅動開發

preface 前面對linux裝置驅動的相應知識點進行了總結,現在進入實踐階段!linux 裝置驅動入門篇 linux 裝置驅動掃盲篇 fedora下的字元裝置驅動開發 開發乙個基本的字元裝置驅動 在linux核心驅動中,字元裝置是最基本的裝置驅動。字元裝置包括了裝置最基本的操作,如開啟裝置 關閉...

Linux裝置驅動之《字元裝置驅動》

linux裝置中最大的特點就是裝置操作猶如檔案操作一般,在應用層看來,硬體裝置只是乙個裝置檔案。應用程式可以像操作檔案一樣對硬體裝置進行操作,如open close read write 等。下面是乙個字元裝置驅動程式的簡單實現test.c 模組分析 1.初始化裝置驅動的結構體 struct fil...