驅動面試、筆試常見問題
阿新 • • 發佈:2018-12-12
- 二分查詢
- 校驗
- 關於字串:
- 關於資料結構
- 關於其他簡答題:
- 關於程式設計
(一) 1.5n次比較,求出陣列的最大值和最小值(陣列亂序)
(二) 環形緩衝區,用資料結構實現?
(三) 連結串列的刪除,頭部插入,尾部插入實現?
(四) 求出一個字串的最長重複串,如“ababc”,返回“ab”
(五) 求出一個週期字串的最長週期,如“abcabc”,返回3
(六) 使用C/C++實現一個單向連結串列,連結串列需要支援如下介面:
(七) 網路位元組序轉換,大端小端。
(八) 開啟一個裝置,讀取檔案,列印輸出。
(九) 給一個整數,轉換為十六進位制字元輸出
(十) 給在 32 位處理器上,將任一整數轉換為二進位制形式。 - C語言巨集中”#”和”##”的用法
- 關於IPv6:
- Arm有多少32位暫存器?
- HAL層:硬體抽象層
- Arm2440和6410有什麼區別?
- 開發板時鐘(2410和6410對比)什麼是PLL(鎖相環):
- Arm開發板的資源,主頻多大?記憶體多大?
- CPU,MPU,MCU,SOC,SOPC聯絡與差別
- 執行緒池怎麼設計
(一) 什麼是執行緒池?
(二) 為什麼要用執行緒池?
(三) 執行緒的工作流程
(四) 執行緒池設計 - free函式怎麼知道釋放記憶體大小
- 建構函式和解構函式丟擲異常
- tcp/udp上層網路協議舉例並說明原理
(一) HTTP:
(二) TFTP: - 關於記憶體洩漏
- 一個伺服器對10000客戶端,伺服器上的執行緒模型
- 程式碼效率優化怎麼搞
- GPIO三種狀態:輸入輸出和高阻態
- 上拉和下拉:
- GPIO外部有三種情況:1)直接接地2)直接接電源3)懸掛。請問在GPIO內部可以實現上拉和下拉的情況下如何判斷這三種情況?
- 串列埠協議講一講?
- RS232和RS485通訊介面有什麼區別?
- IIC時序圖畫一下,IIC有哪些狀態,給一個位元組,將它傳送出去。IIC有什麼注意事項?有沒有用I/O模擬IIC,如果有需要注意什麼?
- 講解一下IIC匯流排
- Bootloader的流程
- 為什麼2440的記憶體起始地址是3後面7個0呢?
- 為什麼6410的記憶體起始地址是5後面7個0呢?
- 三個位元組char型,上電為隨機數,求三者之和為零的概率
- VS中Debug和Release的區別
- Zigbee的傳輸速率多大?(智慧家居)為什麼用它,和其他傳輸有什麼區別?WIFI安全嗎,為什麼?
- 使用者和核心如何通訊?(追問:驅動程式中如何從使用者到核心)
- 計算機訪問哪個最快?
- 執行緒和程序的區別?
- 設計模式有哪些?
- 軟體的設計流程?
- 指標和引用的區別?
- 記憶體管理有什麼看法?(MMU)
- 鎖有哪些?有什麼注意事項
- 訊號量和自旋鎖區別
- 中斷能不能睡眠,為什麼?下半部能不能睡眠?
- 上下文有哪些?怎麼理解?
- 死鎖產生的原因及四個必要條件
- 驅動中首先執行什麼?
- 觸控式螢幕和lCD驅動中做了什麼,流程是什麼?
- 輸入子系統上報系統有什麼函式?怎麼知道有沒有上報成功?
- 匯流排裝置驅動模型之間是什麼關係?裝置和驅動之間的如何匹配,匹配規則是否可變?
- 什麼是交叉編譯?為什麼需要交叉編譯?為什麼還要主機編譯
- 簡述linux系統啟動過程
- Linux裝置中字元裝置和塊裝置有什麼主要區別?分別舉例。
- 主裝置號和次裝置號的用途
- Linux下rs232和rs485程式設計有什麼區別?
- Uart和IIC和SPI的區別(提示:關於非同步和同步,電子器件上的)?
- 用串列埠傳送十個位元組就丟失一個兩個你會怎樣檢查;傳送的時候對方裝置不響應你該怎麼辦
- IIC,scl頻率多大
- 觸控式螢幕中斷做了什麼,LCD中斷做了什麼?
- zigbee用的哪家方案?zigbee端點型別有哪些,這些概念的區別?端點能夠中轉嗎?一個端點上有哪些裝置?你做的專案或者實踐有多少節點?zigbee上有作業系統嗎?
- 客戶端是否單獨連線伺服器(客戶端和客戶端直接是否點對點連線)?客戶端之間有沒有互動?有沒有考慮伺服器程序如果崩潰了,客戶端資源沒有得到釋放怎麼做?那麼如果伺服器正常,客戶端中途斷開連線怎麼辦?如果傳送檔案,是直接點對點嗎,也就是客戶端之間直接通訊?執行緒池中執行緒之間是分離的嗎?
- 沒有使用MySQL之類的嗎?sqlite是執行緒安全的嗎
- 視訊監控系統這個專案能不能做影象的簡單處理,比如擷取?網頁中如果要列印換行符,怎麼列印?這個專案中做的驅動中,你這個視訊子系統用的是不是核心的?
- QT,用的熟嗎?做的驅動有沒有編入核心?既然沒有編入核心,那是需要手動去啟動和裝載嗎?需不需要建立裝置節點?使用者是如何訪問這些驅動的?做的驅動都是字元裝置嗎?
- 你這個專案中zigbee用的是哪家的方案?控制裝置有哪些?有多少節點?也就是說只是一對用於通訊是嗎?。
- 執行緒和程序,為什麼選擇執行緒?執行緒為什麼佔用更少的資源?執行緒共享程序的哪些資源?執行緒池如何實現的?是不是什麼都用執行緒比較好?
- 畫一下Arm的體系架構
- 以下圖片是哪種語言
- typedef struct _MAD_SYS_CONFIG{ MAD_U32 smiBase,…}MAD_SYS_CONFIG_t;
typedef struct {MAD_U32 smiBase,…} MAD_SYS_CONFIG; 這兩種寫法是一個意思嗎? - 關注過哪些開源的東西?
- 核心定時器如何實現(通過連結串列)?如何找到具體的連結串列?
- 核心連結串列為什麼具有通用性?
- 網盤妙傳功能如何實現?
- 使用者態和核心態通訊方式?
- 分配記憶體哪些函式?kmalloc有兩個引數,各個作用是什麼?
- 有哪些鎖,各自的效率問題?自選鎖怎樣實現的?
- 孤兒程序與殭屍程序[總結]和守護程序如何實現?
- 第三個專案是如何處理併發的,除了執行緒池還有更好的哪些方法?
- 主執行緒如何知道子執行緒的退出?
- 講解下核心網路體系?
- 軟中斷是如何實現的?
- 對記憶體管理有什麼看法和了解?
- 雜湊表原理?針對字串,如何確定key值(hash表儲存字串時,key怎麼確定)?map怎樣實現的?map和哈西表不一樣吧?Hash和B樹的區別?
- 接觸過哪些STL容器?哪個效率最高?
- 寫驅動的時候有沒有遇到問題,怎麼檢查?有沒有遇到coredump?
- 應用程式如果執行時出現錯誤該怎麼排查;如果越界該怎麼排查?
- open和fopen有什麼區別?read/write和fread/fwrite區別?
- 執行緒池如何使用建立的?讓你自己寫一個執行緒池怎麼實現?
- 主執行緒如何檢測一個子執行緒也就是客戶端的退出?如果現在讓你實現可以瀏覽資料夾裡檔案再傳輸,你會怎麼做?