底層,跟暫存器打交道,有些mcu提供了庫
linux下驅動開發直接操作暫存器不現實。
根據linux下的各種驅動框架進行開發。一定要滿足框架,也就是linux下各種驅動框架的掌握。
在linux下驅動最終表現就是 /dev/*** 檔案。開啟、關閉、讀寫…
現在新的核心支援裝置樹,這個乙個.dts 檔案,此檔案描述了板子的裝置資訊。
最多的字元裝置驅動是以不定長度的字元來傳送資料,字元裝置是乙個順序的資料流裝置,對這種裝置的讀寫是按字元進行的,而且這些字元是連續地形成乙個資料流;
儲存相關
塊裝置驅動是以固定大小長度來傳送和轉移資料的,塊裝置能夠隨機,不需要按照順序地訪問固定大小的資料片。
網路裝置是乙個比較特殊的裝置,它負責接收和傳送幀資料,可能是物理幀,也可能是ip資料報,這些特性都有網路驅動決定。它並不存在於/dev下面,所以與一般的裝置不同。網路裝置是乙個net_device結構,並通過register_netdev註冊到系統裡,最後通過ifconfig -a的命令就能看到。
乙個裝置不是說只屬於某乙個型別,比如usb wifi、sdio wifi,屬於網路裝置驅動,
因為他又有usb和sdio,因此也屬於字元裝置驅動。
微控制器下驅動和應用都是放到乙個檔案裡面,也就是雜糅到一起。
linux下驅動和應用是完全分開的。
使用者空間(使用者態)和核心空間(核心態):
linux作業系統核心和驅動程式執行在核心空間、應用程式執行在使用者空間。
應用層想要訪問核心資源,怎麼辦,有三種方法:系統呼叫、異常(中斷)和陷入
Linux裸機開發 彙編點燈
彙編目前應用開發已經很少用到了,但是作為嵌入式開發人員還是需要有一定彙編基礎 需要用彙編初始化一些soc外設。使用彙編初始化ddr,i.mx6u i.mx內部的rom,nxp在內部96kb的rom中存放了自己編寫的啟動 這些啟動 可以讀取ddr配置資訊,並且完成ddr的初始化 設定sp指標,一般指向...
作業系統與裸機的區別
我們在學習stm32到一定階段可能會了解作業系統,然後便有這種問題產生,下面我就來粗略說說 作業系統與裸機的區別,以及stm32能執行什麼作業系統,能執行linux系統嗎 等問題。作業系統與裸機的區別 裸機執行的程式 一般由乙個main函式中的while死迴圈和各種中斷服務程式組成,平時cpu執行w...
Linux下arm裸機開發環境搭建與例項
首先是arm工具鏈,arm工具鏈的編譯我就不寫了,一方面很麻煩,另一方面是這方面的資料網上已經有很多了,我就不在這裡多言浪費大家時間了。我這裡有自己編譯的arm工具鏈,當然,用網上現成的也不是不可以,但是最好是自己熟悉過程,免得必要的時候不會從原始碼配置。我將工具鏈上傳到空間,如果需要,儘管拿去,鏈...