<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          幾道Linux驅(qū)動相關(guān)面試題,你會幾題?

          共 2763字,需瀏覽 6分鐘

           ·

          2022-11-01 18:25

          1
          一、Linux基礎(chǔ)

          1、任意3種網(wǎng)絡(luò)操作的Linux命令,并說明他們的含義

          1. ifconfig 命令

          ifconfig 用于查看和配置 Linux 系統(tǒng)的網(wǎng)絡(luò)接口。
          查看所有網(wǎng)絡(luò)接口及其狀態(tài):ifconfig -a 。
          使用 up 和 down 命令啟動或停止某個接口:ifconfig eth0 up 和 ifconfig eth0 down 。

          2. iptables 命令

          iptables ,是一個配置 Linux 內(nèi)核防火墻的命令行工具。功能非常強大,對于我們開發(fā)來說,主要掌握如何開放端口即可。

          3. netstat 命令

          Linux netstat命令用于顯示網(wǎng)絡(luò)狀態(tài)。

          利用netstat指令可讓你得知整個Linux系統(tǒng)的網(wǎng)絡(luò)情況。

          4. ping 命令

          Linux ping命令用于檢測主機。

          執(zhí)行ping指令會使用ICMP傳輸協(xié)議,發(fā)出要求回應(yīng)的信息,若遠端主機的網(wǎng)絡(luò)功能沒有問題,就會回應(yīng)該信息,因而得知該主機運作正常。

          5. telnet 命令

          Linux telnet命令用于遠端登入。

          執(zhí)行telnet指令開啟終端機階段作業(yè),并登入遠端主機。

          2、Linux支持的文件類型

          • 普通文件類型   -
          • 目錄文件類型  d
          • 塊設(shè)備文件類型  b
          • 字符設(shè)備類型  c
          • 套接字文件類型  s
          • FIFO管道文件類型 p
          • 鏈接文件類型  l

          二、Linux系統(tǒng)編程

          1、 嵌入式操作系統(tǒng)進程間有哪些同步通信服務(wù)?

          Linux進程間通信方式主要有

          1. 信號(signal)
          2. 信號量
          3. 管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。
          4. 消息隊列
          5. 共享內(nèi)存
          6. 套接字(本地的還有域套接字)

          三、ARM

          1. 請問ARM支持哪幾種異常類型?

          異常源分類

          要進入異常模式,一定要有異常源,ARM規(guī)定有7種異常源:

          異常源描述
          Reset上電時執(zhí)行
          Undef當(dāng)流水線中的某個非法指令到達執(zhí)行狀態(tài)時執(zhí)行
          SWI當(dāng)一個軟中斷指令被執(zhí)行完的時候執(zhí)行
          Prefetch當(dāng)一個指令被從內(nèi)存中預(yù)取時,由于某種原因而失敗,如果它能到達執(zhí)行狀態(tài)這個異常才會產(chǎn)生
          Data如果一個預(yù)取指令試圖存取一個非法的內(nèi)存單元,這時異常產(chǎn)生
          IRQ通常的中斷
          FIQ快速中斷

          2、請簡述什么是中斷?中斷發(fā)生后,CPU做了哪些操作

          中斷:是指CPU在執(zhí)行程序的過程中,出現(xiàn)了某些突發(fā)事件時CPU必須暫停執(zhí)行當(dāng)前的程序,轉(zhuǎn)去處理突發(fā)事件,處理完畢后CPU又返回源程序被中斷的位置并繼續(xù)執(zhí)行。

          中斷發(fā)生后,ARM核的操作步驟可以總結(jié)為4大步3小步。

          4大步3小步

          1. 保存執(zhí)行狀態(tài):將CPSR復(fù)制到發(fā)生的異常模式下SPSR中;
          2. 模式切換:
          • CPSR模式位強制設(shè)置為與異常類型相對應(yīng)的值,
          • 處理器進入到ARM執(zhí)行模式,
          • 禁止所有IRQ中斷,當(dāng)進入FIQ快速中斷模式時禁止FIQ中斷;
          1. 保存返回地址:將下一條指令的地址(被打斷程序)保存在LR(異常模式下LR_excep)中。
          2. 跳入異常向量表:強制設(shè)置PC的值為相應(yīng)異常向量地址,跳轉(zhuǎn)到異常處理程序中。

          3、什么是GPIO?

          general purpose input/output  

          GPIO是相對于芯片本身而言的,如某個管腳是芯片的GPIO腳,則該腳可作為輸入或輸出高或低電平使用,當(dāng)然某個腳具有復(fù)用的功能,即可做GPIO也可做其他用途。

          也就是說你可以把這些引腳拿來用作任何一般用途的輸入輸出,例如用一根引腳連到led的一極來控制它的亮滅,也可以用一根(一些)引腳連到一個傳感器上以獲得該傳感器的狀態(tài),這給cpu提供了一個方便的控制周邊設(shè)備的途經(jīng)。如果沒有足夠多的gpio管腳,在控制一些外圍設(shè)備時就會力有不逮,這時可采取的方案是使用CPLD來幫助管理。

          4、IIC引腳名稱及功能?

          • SDA 數(shù)據(jù)線,用于傳輸數(shù)據(jù)
          • SCL 時鐘線,用于同步數(shù)據(jù)

          5、IIC的S、P信號如何發(fā)出?

          每次通信都必須由主設(shè)備發(fā)起,當(dāng)主設(shè)備決定開始通訊時,需要發(fā)送開始(S)信號,需要執(zhí)行以下動作;

          1. 空閑時SCL默認是高電平;
          2. 將SDA線從高壓電平切換到低壓電平;
          3. 然后將SCL從高電平切換到低電平。在主設(shè)備發(fā)送開始條件信號之后,所有從機即使處于睡眠模式也將變?yōu)榛顒訝顟B(tài),并等待接收地址位。當(dāng)雙方?jīng)Q定結(jié)束通訊時,需要發(fā)送停止(P)信號,需要執(zhí)行以下動作;
          4. 先將SDA、SCL設(shè)置為低電平;
          5. 然后將SCL從低電平切換到高電平;
          6. 將SDA從低電平切換到高電平。在停止條件信號之后,I2C總線即處于空閑狀態(tài)。

          6、SPI引腳名稱及功能?

          串行時鐘線(SCK)、 主機輸入/從機輸出數(shù)據(jù)線MISO、 主機輸出/從機輸入數(shù)據(jù)線MOSI 從機選擇線SS

          (有的SPI接口芯片帶有中斷信號線INT或INT、有的SPI接口芯片沒有主機輸出/從機輸入數(shù)據(jù)線MOSI)

          四、驅(qū)動

          1、查看驅(qū)動模塊中打印信息應(yīng)該使用什么命令?如何查看內(nèi)核中已有的字符設(shè)備的信息?如何查看正在使用的有哪些中斷號?


            1. 查看驅(qū)動模塊中打印信息的命令:
           dmesg

            1. 查看加載模塊信息可以用
          lsmod

          已經(jīng)分配的字符設(shè)備塊設(shè)備號信息可以查看下面文件

          cat /proc/devices

          內(nèi)核會為每一個驅(qū)動模塊建立一個文件夾,如下:

          ls /sys/module/

            1. 顯示當(dāng)前使用的中斷號
          cat /proc/interrupts

          2、如何手動創(chuàng)建字符設(shè)備?并簡述主設(shè)備號和次設(shè)備號的用途。

          創(chuàng)建字符設(shè)備命令如下:

          mknod chartest c 4 64,

          mknod : 創(chuàng)建設(shè)備節(jié)點
          chartest :設(shè)備節(jié)點名字
          c : 字符設(shè)備,
          4 : 主設(shè)備號
          64: 次設(shè)備號

          1)主設(shè)備號:主設(shè)備號標(biāo)識設(shè)備對應(yīng)的驅(qū)動程序。雖然現(xiàn)代的linux內(nèi)核允許多個驅(qū)動程序共享主設(shè)備號,但我們看待的大多數(shù)設(shè)備仍然按照“一個主設(shè)備對應(yīng)一個驅(qū)動程序”的原則組織。

          次設(shè)備號:次設(shè)備號由內(nèi)核使用,用于正確確定設(shè)備文件所指的設(shè)備。依賴于驅(qū)動程序的編寫方式,我們可以通過次設(shè)備號獲得一個指向內(nèi)核設(shè)備的直接指針,也可將此設(shè)備號當(dāng)作設(shè)備本地數(shù)組的索引。

          比如:

           硬件平臺可能又4個串口,他們驅(qū)動非常類似,區(qū)別僅僅是個字對應(yīng)的SFR基地址不同,
           那么我們可以讓著幾個串口共用同一個串口設(shè)備驅(qū)動
           通過次設(shè)備號來區(qū)別具體是哪一個串口

          3、內(nèi)核中使用共享資源時,為了使之滿足互斥條件,通常有哪些方法?

          原子操作,自旋鎖,信號量,互斥鎖

          4、Linux內(nèi)核包括那幾個子系統(tǒng)?

          Linux內(nèi)核主要由進程調(diào)度(SCHED)、內(nèi)存管理(MM)、虛擬文件系統(tǒng)(VFS)、網(wǎng)絡(luò)接口(NET)和進程間通信(IPC)5個子系統(tǒng)組成



          瀏覽 30
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狠狠搞视频 | 操逼好爽2828亚洲无码一区 | 亚洲无码免费在线观看 | 免费色网站 | 啪啪啪www. |