我是linux驅動程序開發的新手。我不知道相同的Linux驅動程序在不同的芯片上工作。例如,同一個uart司機工作在所有的人和sitara socs?所有的人和sitara社會有相同的uart周邊?不同芯片上的相同Linux驅動程序
回答
基本上,事情的工作原理是基於圖層中所示的分層概念。
內核源代碼是分層的,因此我們不必爲每個系統一遍又一遍地寫它,並提高其可用性。
這裏的方法是,架構師在底層依賴代碼,然後出現總線驅動程序層(SPI,I2C等),然後出現適配器或設備驅動程序。因此,假設如果一個電路板通過SPI或任何類似接口使用A公司的NAND閃存,我們可以在任何給定的電路板上爲該公司使用相同的設備驅動程序A - NAND閃存,而不管SPI apapter目前是什麼,需要關注的是SPI總線驅動程序應該作爲平臺驅動程序存在。
在此探測時,SPI將使用NAND閃存地址訪問設備驅動程序。這裏,SPI驅動程序知道如何與SPI設備進行通信,NAND Flash驅動程序持續告訴SPI驅動程序要傳輸到NAND閃存的內容,SPI負責傳輸。在此SPI平臺驅動程序可能會因不同平臺而有所不同,但NAND Flash驅動程序保持不變
通過這種方法,設備的相同設備驅動程序可以用於不同的系統,而不依賴硬件規範。
那麼,起初,SoC是什麼或誰是供應商並不重要。重要的是UART外設。因此,如果外設在SoC A上有一些寄存器並且在SoC B上有完全相同的寄存器,則它們都可以使用相同的驅動器。驅動程序只會告訴底層總線(通常由不同的子系統管理)將一些配置位寫入指定的寄存器以執行不同的操作。另外,通常如果芯片是從一些舊型號衍生出來的,像UART這樣簡單的外設幾乎保持不變。
Next ..如果所有Allwiner SoC具有相同的UART?不確定所有這些,但這裏[https://github.com/allwinner-zh/linux-3.4-sunxi/blob/master/drivers/tty/serial/Kconfig]表明大多數SoC使用相同的UART。
而關於Sitara Soc,他們已經轉移到8250司機[http://processors.wiki.ti.com/index.php/Sitara_Linux_UART_-_Switching_to_8250_Driver],這已經使用了很多年了。所以是的,因爲他們(TI)決定這樣做,他們將不得不在UART方面保持向後兼容性。
- 1. Linux內核驅動程序不同總線上的相同設備?
- 2. linux如何用相同的驅動程序驅動多個網卡?
- 3. 如何檢測兩個相同的i2c從站,但與一個Linux i2c驅動程序不同的芯片選擇
- 4. 不同的PIC單片機(USB CDC)安裝不同的驅動程序或共享相同的CDC驅動程序
- 5. iphone4 wifi芯片和ipad1 wifi芯片有什麼不同?
- 6. 不同類型的芯片復位(SoC)
- 7. 如何將不同的驅動程序分配給Linux中的相同類型的NIC
- 8. PowerPC上的Linux驅動程序
- 9. Android移動芯片架構在不同的國家有所不同?
- 10. Linux驅動程序:從不同的用戶進程複製內存
- 11. 嵌入式Linux的Linux驅動程序
- 12. 使用驅動程序內部的驅動程序的Linux
- 13. Windows驅動程序編程或Linux驅動程序編程?
- 14. I2C linux驅動程序
- 15. 學習linux驅動程序
- 16. Linux驅動程序phys_mem_access_prot undefined
- 17. Linux驅動程序和device.h
- 18. Linux設備驅動程序
- 19. Linux TTY和驅動程序
- 20. 訪問Linux驅動程序
- 21. Linux SPI驅動程序crasj
- 22. 微芯片設計程序
- 23. 在相同的apache spark集羣上提交兩個應用程序會在同一個JVM或不同的0123上產生驅動程序進程
- 24. .BAT複製文件 - 相同的目錄不同的驅動器
- 25. HTML在不同的表芯
- 26. 不同驅動器上的SDK位置
- 27. Linux上的相同程序比Windows更快 - 爲什麼?
- 28. 在Linux上的Jython:找不到驅動程序[org.postgresql.Driver]
- 29. pdo驅動程序不支持Linux上的事務
- 30. 在不同輸出的終端上運行相同的程序
好的。我明白你想告訴nand司機。但是spi驅動程序呢?因爲內核中有一個spi驅動程序,但它可以在不同的平臺上運行。 – overlord
NAND驅動程序可以重複使用,並且獨立於電路板,但即使在不同的電路板中使用相同的SPI適配器,相同的SPI驅動程序可能會也可能不會被重用,但SPI適配器的內存映射可能會也可能不會相同。因此,可以重新利用驅動程序,只需根據電路板的內存映射進行一些地址更改即可。 –
在Linux內核源代碼中有大量的SPI驅動程序支持不同的適配器,並且有一個幫助驅動程序成爲平臺驅動程序的核心驅動程序。在驅動程序需要用於我們的電路板的一堆SPI驅動程序中,我們必須在'make menuconfig'和設備樹時對其進行配置。 –