色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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


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

    關注

    6042

    文章

    44617

    瀏覽量

    637705
  • Linux
    +關注

    關注

    87

    文章

    11342

    瀏覽量

    210170
  • 驅動開發
    +關注

    關注

    0

    文章

    130

    瀏覽量

    12095
收藏 人收藏

    評論

    相關推薦

    單片機Debug工具性能對比 單片機調試常用命令

    單片機(Microcontroller Unit, MCU)調試是嵌入式開發中的個重要環節,它幫助開發者發現和修復代碼中的錯誤,優化程序性能。不同的
    的頭像 發表于 12-19 09:56 ?437次閱讀

    單片機怎么寫入程序

    單片機(Microcontroller Unit,MCU)是種集成電路芯片,它將計算機的CPU、存儲器、輸入/輸出接口等功能集成在個芯片上。單片機廣泛應用于嵌入式系統和物聯網設備中
    的頭像 發表于 10-21 11:21 ?873次閱讀

    想入行單片機開發的學生們的忠告

    對于想入行單片機開發的學生們,以下是些建議和忠告:
    的頭像 發表于 10-17 09:45 ?386次閱讀
    想入行<b class='flag-5'>單片機</b><b class='flag-5'>開發</b>的學生們的忠告

    單片機芯片開發-單片機方案開發的關鍵技巧和流程步驟!

    在電子產品設計中,單片機(MCU)無疑是最重要的組成部分之一。無論是消費電子、智能家居、工業控制,還是可穿戴設備,小家電等,單片機的應用無處不在。然而,對于許多開發者來說,
    發表于 09-26 17:04

    51單片機驅動

    電子發燒友網站提供《51單片機驅動.exe》資料免費下載
    發表于 09-20 11:46 ?5次下載

    單片機燒錄程序的基本步驟是什么

    單片機燒錄程序是單片機開發過程中非常重要的步,它涉及到將編寫好的程序代碼通過定的方式傳輸到單片機
    的頭像 發表于 09-02 09:47 ?1356次閱讀

    linux開發板和單片機開發的區別

    硬件架構 Linux開發板和單片機開發在硬件架構上有很大的區別。Linux開發板通常基于ARM、
    的頭像 發表于 08-30 15:30 ?1109次閱讀

    Linux 驅動開發與應用開發,你知道多少?

    Linux驅動開發與應用開發的區別開發層次不同:Linu
    的頭像 發表于 08-30 12:16 ?897次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>驅動</b><b class='flag-5'>開發</b>與應用<b class='flag-5'>開發</b>,你知道多少?

    文讀懂什么單片機:組成結構與應用

    歡迎來到單片機的世界,這是種微小(但功能強大)的設備,改變了嵌入式系統的面貌。在本文中,您將了解單片機些基本知識
    的頭像 發表于 08-09 11:49 ?1782次閱讀
    <b class='flag-5'>一</b>文讀懂什么<b class='flag-5'>單片機</b>:組成結構與應用

    從菜鳥到大牛!嵌入式完整學習路線:STM32單片機-RTOS-Linux

    ?嵌入式linux”的順序幫助您從入門到進階,掌握嵌入式開發的精髓。第階段單片機單片機是嵌入式學習的基石,因為它集成了處理器、存儲器和輸入
    的頭像 發表于 07-23 16:11 ?4506次閱讀
    從菜鳥到大牛!嵌入式完整學習路線:STM32<b class='flag-5'>單片機</b>-RTOS-<b class='flag-5'>Linux</b>

    個暑假如何學習單片機

    個暑假是學習和掌握單片機基礎知識的良好時機。以下是個關于如何在暑假期間學習單片機的建議計劃
    的頭像 發表于 07-03 09:19 ?568次閱讀
    <b class='flag-5'>一</b>個暑假如何學習<b class='flag-5'>單片機</b>

    PY32系列單片機開發板 常用型號都有 支持Keil,IAR進行開發

    、IOT、傳感器、電動工具、電機控制等領域。 PY32系列單片機與大部份國產通用型MCU樣,支持Keil,IAR進行開發。芯嶺技術提供目前PY32系列主流單片機
    的頭像 發表于 05-22 14:48 ?1216次閱讀
    PY32系列<b class='flag-5'>單片機</b><b class='flag-5'>開發</b>板 常用型號都有 支持Keil,IAR進行<b class='flag-5'>開發</b>

    STM32單片機有哪幾種常見的開發環境?

    STM32單片機款廣泛應用于嵌入式系統開發單片機,針對其開發,有以下幾種常見的方式:STM32單片
    的頭像 發表于 05-18 08:04 ?3249次閱讀
    STM32<b class='flag-5'>單片機</b>有哪幾種常見的<b class='flag-5'>開發</b>環境?

    單片機開發好學嗎?學習中有哪些樂趣與挑戰?

    單片機編程究竟是不是好學的問題。先來說單片機編程的挑戰性,對于初學者而言,單片機編程可能具有定的挑戰性,因為它需要你具備以下幾點能力;
    的頭像 發表于 03-28 08:04 ?2096次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>開發</b>好學嗎?學習中有哪些樂趣與挑戰?

    如何系統、科學地自學單片機

    的自學單片機呢?自學單片機需要定的計劃和方法,以下是具體的步驟和建議。如何系統、科學地自學單片機?學習電子基礎知識:理解電路原理、數字電子
    的頭像 發表于 03-28 08:03 ?1164次閱讀
    如何系統、科學地自學<b class='flag-5'>單片機</b>?
    主站蜘蛛池模板: 国产亚洲999精品AA片在线爽 | 国产女人91精品嗷嗷嗷嗷 | 女子叉开腿让男子桶免费软件 | 91久久偷偷看嫩草影院无费 | 亚洲精品国产AV成人毛片 | 色老99九久精品偷偷鲁 | 99久久亚洲精品日本无码 | 美女pk精子2小游戏 美女MM131爽爽爽 | 找老女人泻火对白自拍 | a级老头和老太xxxx | 97精品国产高清在线看入口 | 一本道亚洲区免费观看 | 中文字幕人成乱码熟女APP | 黄 色 网 站 免 费 涩涩屋 | 在线中文字幕网站 | 国产精品久久久久久久伊一 | 黑人巨大两根一起挤进欧美 | 久久国产高清字幕中文 | 老司机深夜福利ae 入口网站 | 新影音先锋男人色资源网 | 国产永久免费高清在线观看 | 含羞草在线 | 三级黄色在线免费观看 | 月夜直播免费观看全集 | 交换娇妻呻吟声不停中文字幕 | 伊人久久精品99热超碰 | 色婷婷狠狠97成为人免费 | gratis videos欧美最新 | 男人J桶女人P视频无遮挡网站 | 中国xxxxx| 国产剧情在线精品视频不卡 | 亚洲 欧美 另类 中文 在线 | 四虎精品久久 | 男女车车的车车网站W98免费 | 成年人免费观看视频网站 | 亚洲综合免费视频 | 亚洲精品一区三区三区在线观看 | 女人精69xxxxx | 成人免费一区二区无码视频 | 亚洲乱码中文字幕久久 | 背着老婆爆操性感小姨子 |