国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

單片機知識是Linux驅動開發的基礎之一

工程師精選 ? 2018-03-07 20:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這是arm裸機1期加強版第1課第2節課程的wiki文字版。



為什么沒前途也要學習單片機


因為它是個很好的入口。

學習單片機可以讓我們拋開復雜的軟件結構,先掌握硬件操作,如:看原理圖、芯片手冊、寫程序操作寄存器等。在上一節視頻里,我剛把單片機貶得一無是處,說單片機沒前途了,這節視頻,我又要告訴你們,沒有前途,也要學習單片機。為什么?

首先,我說不用學習單片機,是指不要使用老一套得學習方法學習單片機。什么叫老一套的方法?

· 硬件上:不要使用C51、STM32這些專用的單片機開發板。如果以后,你不打算從事單片機開發,你用這些芯片干嘛,研究了兩三個月,把這些寄存器都用清楚了,你又用不上,沒必要啊。

· 軟件上:不要使用Keil、MDK等集成度太高的軟件。你用這些軟件,你寫個main()就可以了,然后調用各種庫,進行傻瓜式操作。這些好用的工具,封裝了很多技術細節,使得我們沒法了解裸機、單片機的本質。

以后我們會使用新一套的方法來進行單片機的開發。新一套的方法,我們后面再介紹。



我們之所以還要學習單片機,是因為它里面的知識,對我們后續學習Linux還是有用的。我們首先來看看,一個Linux系統是怎么一回事。 一個嵌入式Linux系統的軟件組成:單片機大全Bootloader–>Linux驅動–>Linux APP–>Linux GUI(Android/QT)。我們PC機一上電的時候,黑色屏幕上會顯示BIOS,這個BIOS目的是去啟動Windows內核。Windows內核再掛載C盤(系統盤)、D盤(應用盤),最后再去啟動應用程序,像QQ、網游等。 同樣的道理,我們的Android手機或者工控設備,也有BIOS,但嵌入式Linux系統里面不叫BIOS,叫Bootloader,他的目的是去啟動Linux內核。 它首先也是識別應用程序所在的存儲設備,掛載根文件系統(在Windows系統里面的C盤、D盤,在Linux里面稱為根文件系統)。最后去啟動應用程序。



仔細的分析下Bootloader,它去啟動內核,它去哪里啟動內核呢? 顯然是去某個地方讀出內核,就比如說BIOS是去C盤上讀出Windows內核,我們的Bootloader是去Flash或者SD卡讀取內核。因此Bootloader要擁有讀取Flash或者SD卡的能力。有些Bootloader還要顯示logo,因此還要具有操作LCD的能力。Bootloader還要設置開發板的環境,比如,初始化時鐘、初始化內存、還要設置網卡等。這么多事情,都是在Bootloader里面實現的,太復雜了,如果你一來就分析整個Bootloader是非常困難的。

那我們怎么學習呢? 把他拆開,寫出單獨的程序,比如:LED點燈、時鐘、網卡、Flash都單獨寫個程序來練習,這些不就是單片機程序嗎?所以說,Bootloader是單片機程序的大全。我們為了更好的學習Bootloader,我們應該事先一個一個練習硬件,當我們熟悉每個硬件后,再組合起來,就是一個Bootloader。



我們再來看看Bootloader啟動內核之后,內核再去掛載根文件系統,意味著內核也要有操作硬件的能力,這就是驅動程序。我們首先來看看一個簡單的驅動程序是什么樣子。首先我們的應用程序是調用open()、read()、write()這些標準的接口去訪問硬件。那么就進入驅動程序里面,驅動程序里面有對應的drive_open()、drive_read()、drive_write()。最后在驅動程序里面,去配置硬件。比如一個LED點燈驅動,那么drive_open()要把GPIO設置為輸出引腳,drive_read(),返回GPIO狀態,driver_write()則寫GPIO,讓引腳輸出高電平或者低電平。



對于我們的LED驅動程序,你需要提供drive_open()、drive_read()、drive_write()這些接口,這就是它的框架。具體的怎么操作硬件,就是硬件操作。所以說,我們事先在單片機里面,熟悉熟練的掌握硬件操作。即驅動程序的組成:

驅動程序=軟件框架+硬件操作

你需要學會看原理圖、看硬件怎么連接、看芯片手冊、知道怎么讀寫寄存器。這一切都可以先在單片機里面學習,去掌握。以后學習Linux驅動時,把重點放在軟件框架就行了。

我們可以事先學習單片機,單片機的學習可以讓我們先拋開復雜的軟件結構,先掌握硬件的操作,如:看原理圖、芯片手冊、寫程序操作寄存器等。這就是為什么單片機沒有前途,我們也要學習。是因為他里面涉及的硬件操作,對我們后續的學習,非常有用處。

現在我們知道了,我們學習單片機,不是為了掌握單片機的開發技能,而是為了掌握Bootloader,掌握硬件操作


原帖轉自:http://bbs.elecfans.com/jishu_1544437_1_1.html


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6076

    文章

    45495

    瀏覽量

    670323
  • Linux
    +關注

    關注

    88

    文章

    11760

    瀏覽量

    219019
  • 驅動開發
    +關注

    關注

    0

    文章

    140

    瀏覽量

    12638
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    嵌入式單片機開發學習路徑

    嵌入式系統是現代科技的重要組成部分,廣泛應用于智能家居、汽車電子、工業控制、醫療設備等領域。學習嵌入式單片機開發不僅能提升個人技能,還能開拓職業發展路徑。本文將為你提供條詳細的嵌入式單片機
    發表于 02-09 15:42

    小白也能聽懂的單片機知識路徑

    在科技飛速發展的今天,單片機作為電子技術的核心組件,扮演著越來越重要的角色。對于想要踏入這個領域的初學者來說,了解并掌握單片機知識是邁向成功的第步。 第
    發表于 02-04 16:44

    如何入門單片機/嵌入式?

    種與windows下面寫程序差不多,也可以使用c++或者java ,種是開發內核驅動,只能用c寫,比如usb驅動或者攝像頭驅動啥的,這個就
    發表于 02-02 06:57

    開發單片機需要具備多少的模電技能

    、LED驅動電路、按鍵檢測電路、蜂鳴器驅動電路、存儲電路、LCD驅動電路、單片機外圍電路。 這些就是比較實用的,如果你是個細心的人,大多
    發表于 01-26 06:51

    個面向單片機、事件驅動的嵌入式開發平臺介紹

    EventOS,是個面向單片機、事件驅動的嵌入式開發平臺。它主要有兩大技術特色:是事件驅動
    發表于 12-05 06:26

    Linux驅動開發的必備知識

    內核基礎知識: 1、熟悉 Linux 內核的架構、模塊系統、進程管理、內存管理等。 了解內核的編譯和加載過程。 2、C編程技能: 精通 C 語言編程,包括指針操作、內存管理、結構體等
    發表于 12-04 07:58

    單片機的誤區

    1.去背寄存器 寄存器不用死記硬背,,當我們去使用單片機外設的時候就要去配置,千萬別去記寄存器,華維單片機編程的導師做開發這么多年了,個寄存器都記不住。 何況,
    發表于 11-14 07:46

    怎么測單片機系統頻率

    單片機系統頻率是指單片機工作時的時鐘頻率,它直接影響單片機的運行速度和處理能力,準確測量系統頻率對單片機應用開發、程序調試和性能優化具有重要
    的頭像 發表于 07-25 11:39 ?783次閱讀

    單片機怎么驅動電機?

    在各類自動化設備和智能裝置中,電機是重要的執行部件,而單片機作為控制核心,需要通過特定的方式驅動電機運轉。單片機驅動電機并非直接連接即可,而是要根據電機類型和功率,搭配合適的
    的頭像 發表于 07-25 09:31 ?900次閱讀

    低功耗單片機各型號的對比及選型參考

    不同品牌、不同系列的低功耗單片機在功耗控制、性能表現、外設配置等方面各有特點,通過低功耗單片機各型號的對比,能幫助開發者更精準地匹配應用需求。本文將圍繞主流低功耗單片機型號展開對比,并
    的頭像 發表于 07-22 18:25 ?1449次閱讀

    單片機開發流程包括什么?

    單片機開發個系統性的工程,從需求明確到最終產品落地,需要經歷多個相互關聯的流程環節,每個環節都對最終產品的性能和質量有著重要影響。 、需求分析與文檔梳理
    的頭像 發表于 07-22 11:21 ?1002次閱讀

    單片機定制開發的設計思路

    單片機定制開發是根據特定場景和功能需求,量身打造符合要求的單片機應用方案,其設計過程需要兼顧技術可行性與實際應用價值,涉及多個關鍵環節。 、需求分析階段
    的頭像 發表于 07-17 11:14 ?786次閱讀
    <b class='flag-5'>單片機</b>定制<b class='flag-5'>開發</b>的設計思路

    KF32A136系列單片機產品介紹

    F32A136 系列單片機是基于 KF32 內核架構開發單片機
    的頭像 發表于 06-27 11:42 ?2340次閱讀
    KF32A136系列<b class='flag-5'>單片機</b>產品介紹

    Linux嵌入式和單片機嵌入式的區別?

    新的應用程序和驅動程序來擴展功能。 6. 開發難度 : 單片機嵌入式 :開發難度相對較低,適合初學者入門。 Linux嵌入式 :
    發表于 06-20 09:46

    單片機科普總結,建議收藏!

    單片機(MicrocontrollerUnit,MCU)作為嵌入式系統的核心之一,在現代電子產品中無處不在。從智能家居、汽車電子,到工業控制、醫療設備,單片機支撐著無數智能化應用的發展。對于初學者
    的頭像 發表于 04-07 11:58 ?5637次閱讀
    <b class='flag-5'>單片機</b>科普總結,建議收藏!