1. 程式人生 > >驅動面試、筆試常見問題

驅動面試、筆試常見問題

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