色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用Linux開發(fā)板為TLV320ADC5120開發(fā)Linux內(nèi)核驅(qū)動的方法

星星科技指導(dǎo)員 ? 來源:TI ? 作者:Zhang, Remy ? 2023-03-16 10:19 ? 次閱讀

本文檔概述了利用Linux開發(fā)板為 Linux 內(nèi)核開發(fā)驅(qū)動程序的基礎(chǔ)知識,并簡單介紹了如何配置和操作 Linux 驅(qū)動程序開發(fā)板。

一 開發(fā)背景

驅(qū)動是什么?

驅(qū)動程序是駐留在內(nèi)核中的一段軟件,它促進主機設(shè)備和外圍設(shè)備之間的交互。這些外圍設(shè)備可以像鼠標或鍵盤一樣普通。我們?yōu)槲覀兊?a target="_blank">產(chǎn)品編寫驅(qū)動程序軟件以便于和各種類型的主機設(shè)備進行通信

Linux內(nèi)核是什么?

Linux內(nèi)核是構(gòu)成Linux操作系統(tǒng)的核心代碼。 常見的基于 Linux 內(nèi)核構(gòu)建的高級操作系統(tǒng) (HLOS) 有 Ubuntu、Android 和 Yocto。一個計算機系統(tǒng)是一個硬件和軟件的共生體,它們互相依賴,不可分割。計算機的硬件,含有外圍設(shè)備、處理器、內(nèi)存、硬盤和其他的電子設(shè)備組成計算機的發(fā)動機。但是沒有軟件來操作和控制它,自身是不能工作的。完成這個控制工作的軟件就稱為操作系統(tǒng),在Linux的術(shù)語中被稱為“內(nèi)核”,也可以稱為“核心”。Linux內(nèi)核的主要模塊(或組件)分以下幾個部分:存儲管理、CPU和進程管理、文件系統(tǒng)、設(shè)備管理和驅(qū)動、網(wǎng)絡(luò)通信,以及系統(tǒng)的初始化(引導(dǎo))、系統(tǒng)調(diào)用等。內(nèi)核的開發(fā)由維護人員來監(jiān)督,維護者擁有內(nèi)核各個部分的開發(fā)權(quán),任何添加到內(nèi)核各自部分的代碼都必須發(fā)送給他們。 這個通過維護者向內(nèi)核提交代碼的過程稱為上游。

二 環(huán)境搭建

1. 軟件環(huán)境的搭建

強烈建議使用專用的 Linux 機器來進行驅(qū)動程序的開發(fā)。 除了 Windows PC 之外,使用 Linux 機器或使用 Linux 機器作為主計算機是驅(qū)動程序開發(fā)的理想配置。不建議在 Windows 中運行 Linux 虛擬機,除非用戶具有設(shè)置和維護虛擬機的背景,否則可能會出現(xiàn)兼容性和存儲的問題。

2. 硬件設(shè)備的連接

硬件設(shè)備的連接較為簡單,其中,Linux機器通過USB to OTG和USB to TTL的轉(zhuǎn)接線相連,Linux開發(fā)板通過I2C總線和I2S總線與目標設(shè)備相連以完成驅(qū)動的開發(fā)。USB to TTL模塊的作用就是把通信電平轉(zhuǎn)換到Linux主機和Linux開發(fā)板都能識別的電平進行通信。

3. Linux操作系統(tǒng)中的常用工具

Gedit

Gedit 是一個基于 GUI 的文本編輯器,具有軟件開發(fā)的一些基本功能。 Gedit 可以用作純文本編輯器,也可以把它用來當(dāng)成是一個集成開發(fā)環(huán)境 (IDE), 它會根據(jù)不同的語言高亮顯現(xiàn)關(guān)鍵字和標識符。

Picocom

Picocom 是一個常見的串口調(diào)試工具,可以在 Linux 終端窗口中運行。利用Picocom可以通過串口通信協(xié)議與 Linux開發(fā)板進行通信和操作。

Nano

Nano 是一個基于命令行的文本編輯器。 Nano 提供最基礎(chǔ)的文本編輯功能,用于在終端內(nèi)進行編輯。 在 Ubuntu 中,Nano 是默認的命令行文本編輯器。

三 Linux驅(qū)動開發(fā)

1. 概述

針對Linux驅(qū)動的開發(fā),有3大類型的文件是必不可少的,其中一部分就是最基礎(chǔ)的驅(qū)動文件(The driver files),驅(qū)動文件中包含了驅(qū)動本身的文件后綴為.C的源代碼和.H的頭文件,以及Kconfig文件和Makefile文件,其中,Kconfig文件的作用是當(dāng)我們編譯Linux內(nèi)核時,我們會發(fā)現(xiàn)有的模塊被編譯進了內(nèi)核,有的只是生成了一個個模塊。因此,我們?nèi)绾巫寖?nèi)核發(fā)現(xiàn)我們編寫的模塊呢?這就需要在Kconfig文件中進行定義說明。至于如何生成模塊,那么就需要利用Makefile文件告訴編譯器,怎么編譯生成這個模塊。另一個部分就是我們的設(shè)備樹文件(Devicetree files),所以什么是設(shè)備樹文件呢?其實在沒有設(shè)備樹文件以前,我們需要將Linux開發(fā)板的信息硬編碼到內(nèi)核的.C源文件中。不同開發(fā)板的硬件配置不一樣,因此內(nèi)核中存在大量的板級配置源碼,從而會造成代碼冗余。因此針對這個現(xiàn)象,我們可以用設(shè)備樹的方法將板級配

置信息獨立的存放到.dts/.dtsi文件中。此時,針對不同的開發(fā)板,只需要配置相應(yīng)的.dts/.dtsi文件即可,這樣可以避免大量重復(fù)的編碼工作,但是如果更換Linux開發(fā)板那么就需要更換相對應(yīng)的設(shè)備樹文件進行配置。最后一部分我們需要的文件就是作為參考文檔的說明文檔(Reference documentation),這個參考文檔中會對如何配置設(shè)備樹文件做出定義,是我們編寫設(shè)備樹文件時必須參考的說明文檔。驅(qū)動文件(The driver files)經(jīng)過編譯會生成名為zImage的鏡像編譯文件,設(shè)備樹文件(Devicetree files)經(jīng)過編譯會生成文件后綴為.dtb的二進制文件,在成功的通過編譯得到這兩個文件后,我們就可以將這兩個文件燒錄到我們的Linux開發(fā)板中,這就是我們Linux驅(qū)動開發(fā)的原理過程。

2. 開發(fā)驅(qū)動源代碼、Makefile和Kconfig文件

要開始開發(fā)驅(qū)動程序源代碼、Makefile 和 Kconfig 文件,用戶必須導(dǎo)航到內(nèi)核中驅(qū)動程序所在的目錄。 進入該目錄后,創(chuàng)建一個適當(dāng)?shù)脑创a文件并打開現(xiàn)有的 Kconfig 和 Makefile 文件。在 Kconfig 文件中,開發(fā)人員需要為設(shè)備驅(qū)動程序創(chuàng)建一個條目,這個條目向內(nèi)核描述了設(shè)備需要的驅(qū)動程序,并專門列出了驅(qū)動程序的依賴項。在 Makefile 文件中,開發(fā)人員同樣需要為設(shè)備驅(qū)動程序創(chuàng)建一個條目,該條目負責(zé)告訴編譯器需要從驅(qū)動源代碼創(chuàng)建哪些目標文件。雖然驅(qū)動源代碼對于所要開發(fā)的驅(qū)動程序和開發(fā)人員來說是獨一無二的,但每個驅(qū)動程序都有相似的流程。首先,設(shè)備必須在一系列模塊表中注冊。例如,of_device_idtable 用于將設(shè)備實例與設(shè)備樹文件匹配,i2c_device_idtable 用于建立 I2C 通信,acpi_device_table 用于 ACPI 系統(tǒng)。所有模塊表都由最終的 module_i2c_driver 表鏈接。在建立模塊表之后,驅(qū)動程序會執(zhí)行probe() 函數(shù),在此函數(shù)中,驅(qū)動程序檢查設(shè)備是否可用和可配置,如果設(shè)備可用,則為驅(qū)動程序分配資源。如果設(shè)備不可用,則函數(shù)應(yīng)返回錯誤并釋放任何已分配的資源。在此之后,init() 函數(shù)將分別運行并獲取和設(shè)置可以在用戶空間中配置和讀取的屬性。

3. 開發(fā)Defconfig和Devicetree文件

Defconfig 和 Devicetree 文件特定用于開發(fā)人員用來驗證驅(qū)動程序的平臺。Defconfig 確定編譯內(nèi)核時要在內(nèi)核中安裝或啟用哪些模塊。開發(fā)者可以選擇手動編輯設(shè)備樹或使用 pinmux 工具生成設(shè)備樹代碼。

4. 說明文檔 / dt-bindings

說明文檔描述了如何操作和配置設(shè)備驅(qū)動程序。 此文檔應(yīng)提供設(shè)備驅(qū)動程序及其驅(qū)動設(shè)備的簡要說明。 在簡要說明之后,會列出驅(qū)動程序的屬性。其中最重要的屬性即 compatible 屬性。 所有兼容的實例都列在其中。 在 compatible 屬性之后,用戶將列出所有可配置的屬性。在每個屬性中,開發(fā)人員需提供屬性的簡要說明,指導(dǎo)用戶如何配置該屬性。

結(jié)語

本文簡要介紹了如何利用Linux開發(fā)板為 Linux 內(nèi)核開發(fā)驅(qū)動程序的原理和基礎(chǔ)過程。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 發(fā)動機
    +關(guān)注

    關(guān)注

    33

    文章

    2497

    瀏覽量

    69573
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11342

    瀏覽量

    210148
  • 計算機
    +關(guān)注

    關(guān)注

    19

    文章

    7534

    瀏覽量

    88451
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6889

    瀏覽量

    123599
收藏 人收藏

    評論

    相關(guān)推薦

    移植NXP官方linux 5.4內(nèi)核到i.MX6ULL開發(fā)板

    本文描述移植NXP官方 linux 5.4 內(nèi)核到i.MX6ULL開發(fā)板
    發(fā)表于 12-19 11:10 ?2101次閱讀

    RK3568開發(fā)板驅(qū)動指南Linux中通用SPI設(shè)備驅(qū)動

    RK3568開發(fā)板驅(qū)動指南Linux中通用SPI設(shè)備驅(qū)動
    的頭像 發(fā)表于 01-23 11:02 ?425次閱讀
    迅<b class='flag-5'>為</b>RK3568<b class='flag-5'>開發(fā)板</b><b class='flag-5'>驅(qū)動</b>指南<b class='flag-5'>Linux</b>中通用SPI設(shè)備<b class='flag-5'>驅(qū)動</b>

    請問TLV320ADC5120如何下載開發(fā)軟件?

    請問TLV320ADC5120如何下載開發(fā)軟件?
    發(fā)表于 09-27 10:10

    一個板子上兩個tlv320adc5120,能否通過一個IIC通信,兩個器件如何區(qū)分地址

    一個板子上兩個tlv320adc5120,能否通過一個IIC通信,兩個器件如何區(qū)分地址
    發(fā)表于 10-09 08:25

    RK3399開發(fā)板嵌入式linux開發(fā)指南

    RK3399開發(fā)板嵌入式linux開發(fā)指南迅RK3399開發(fā)板發(fā)布《北京迅
    發(fā)表于 11-01 16:58 ?77次下載
    迅<b class='flag-5'>為</b>RK3399<b class='flag-5'>開發(fā)板</b>嵌入式<b class='flag-5'>linux</b><b class='flag-5'>開發(fā)</b>指南

    嵌入式Linux開發(fā)板移植SSH

    SSH服務(wù)可以很方便的通過網(wǎng)絡(luò)登錄到Linux開發(fā)板,同時支持SFTP協(xié)議向開發(fā)板傳輸文件。下面簡單講下移植過程。開發(fā)板環(huán)境:名稱:imx283 內(nèi)
    發(fā)表于 11-01 17:06 ?2次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>開發(fā)板</b>移植SSH

    如何配置和操作Linux驅(qū)動程序開發(fā)板

    本文檔概述了利用Linux開發(fā)板 Linux 內(nèi)核開發(fā)
    的頭像 發(fā)表于 02-15 13:36 ?3105次閱讀
    如何配置和操作<b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動</b>程序<b class='flag-5'>開發(fā)板</b>

    利用Linux開發(fā)板TLV320ADC5120開發(fā)Linux內(nèi)核驅(qū)動方法

    利用Linux開發(fā)板TLV320ADC5120開發(fā)Linu
    發(fā)表于 10-28 11:59 ?0次下載
    <b class='flag-5'>利用</b><b class='flag-5'>Linux</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>為</b><b class='flag-5'>TLV320ADC5120</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>驅(qū)動</b>的<b class='flag-5'>方法</b>

    如何驅(qū)動Linux開發(fā)板LED燈

    Linux下的任何外設(shè)驅(qū)動,最終都是要配置相應(yīng)的硬件寄存器。前面的文章中介紹了新舊字符設(shè)備的驅(qū)動開發(fā)框架,也介紹了IMX6ULL處理器GPIO的工作原理及配置
    的頭像 發(fā)表于 04-14 11:41 ?999次閱讀
    如何<b class='flag-5'>驅(qū)動</b><b class='flag-5'>Linux</b><b class='flag-5'>開發(fā)板</b>LED燈

    基于RK3568開發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動視頻

    基于RK3568開發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動視頻
    的頭像 發(fā)表于 05-19 16:30 ?1039次閱讀
    迅<b class='flag-5'>為</b>基于RK3568<b class='flag-5'>開發(fā)板</b>的嵌入式學(xué)習(xí)之<b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動</b>視頻

    STM32 Linux開發(fā)板推薦 ,入門進階必備!

    推薦一款適合入門進階學(xué)習(xí)的Linux開發(fā)板:華清遠見FS-MP1A開發(fā)板(STM32MP157開發(fā)板開發(fā)板介紹 FS-MP1A
    發(fā)表于 10-22 09:22 ?1次下載

    fpga開發(fā)板linux開發(fā)板區(qū)別

    FPGA開發(fā)板Linux開發(fā)板是兩種不同的硬件開發(fā)平臺,各自具有不同的特點和應(yīng)用場景。在以下的文章中,我將詳細介紹FPGA開發(fā)板
    的頭像 發(fā)表于 02-01 17:09 ?2393次閱讀

    linux開發(fā)板和單片機開發(fā)的區(qū)別

    硬件架構(gòu) Linux開發(fā)板和單片機開發(fā)在硬件架構(gòu)上有很大的區(qū)別。Linux開發(fā)板通常基于ARM、x86或其他處理器架構(gòu),具有較高的處理能力和
    的頭像 發(fā)表于 08-30 15:30 ?1109次閱讀

    linux開發(fā)板與樹莓派的區(qū)別

    定義和用途 Linux開發(fā)板Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式開發(fā)板,通常用
    的頭像 發(fā)表于 08-30 15:34 ?1105次閱讀

    Linux 驅(qū)動開發(fā)與應(yīng)用開發(fā),你知道多少?

    一、Linux驅(qū)動開發(fā)與應(yīng)用開發(fā)的區(qū)別開發(fā)層次不同:Linux
    的頭像 發(fā)表于 08-30 12:16 ?896次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>與應(yīng)用<b class='flag-5'>開發(fā)</b>,你知道多少?
    主站蜘蛛池模板: 一日本道伊人久久综合影 | 成人国产在线24小时播放视频 | 国产在线精品亚洲视频在线 | 亚洲精品色情婷婷在线播放 | AV一区AV久久AV无码 | 伊人久久大香线蕉综合亚洲 | 国产精品三级在线观看 | 99re 这里只有精品 | 国产午夜免费不卡精品理论片 | 国产免费人成在线视频视频 | 99精品国产高清自在线看超 | 久久中文字幕乱码免费 | 黄瓜视频苹果直接安装 | 久久人妻少妇嫩草AV無碼 | 国产在线观看免费 | 女侠含泪巨臀迎合79 | 网址在线观看你懂我意思吧免费的 | 女性露出奶头流出精子 | 秋霞网站一级一片 | 十分钟免费看完整视频 | 无码人妻精品一区二区蜜桃在线看 | 观看免费做视频 | 亚洲第一成年人网站 | 无套内射纹身女视频 | 51精品少妇人妻AV一区二区 | 久久66热在线视频精品 | 日本xxxx96| 91九色麻豆 | 午夜国产大片免费观看 | 丰满饥渴老太性hd | 久久er国产精品免费观看2 | 在线观看免费视频播放视频 | 一个人HD高清在线观看免费视频 | 青青精品国产自在线拍 | 漂亮的保姆5电影免费观看完整版中文 | 日本精品久久久久中文字幕2 | 老熟女毛茸茸浓毛 | a级毛片黄免费a级毛片 | 久久亚洲AV成人无码动态图 | 公么我好爽再深一点 | 久久香蕉电影 |