91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)知識(shí)是Linux驅(qū)動(dòng)開(kāi)發(fā)的基礎(chǔ)之一

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

掃碼添加小助手

加入工程師交流群

這是arm裸機(jī)1期加強(qiáng)版第1課第2節(jié)課程的wiki文字版。



為什么沒(méi)前途也要學(xué)習(xí)單片機(jī)


因?yàn)樗莻€(gè)很好的入口。

學(xué)習(xí)單片機(jī)可以讓我們拋開(kāi)復(fù)雜的軟件結(jié)構(gòu),先掌握硬件操作,如:看原理圖、芯片手冊(cè)、寫(xiě)程序操作寄存器等。在上一節(jié)視頻里,我剛把單片機(jī)貶得一無(wú)是處,說(shuō)單片機(jī)沒(méi)前途了,這節(jié)視頻,我又要告訴你們,沒(méi)有前途,也要學(xué)習(xí)單片機(jī)。為什么?

首先,我說(shuō)不用學(xué)習(xí)單片機(jī),是指不要使用老一套得學(xué)習(xí)方法學(xué)習(xí)單片機(jī)。什么叫老一套的方法?

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

· 軟件上:不要使用Keil、MDK等集成度太高的軟件。你用這些軟件,你寫(xiě)個(gè)main()就可以了,然后調(diào)用各種庫(kù),進(jìn)行傻瓜式操作。這些好用的工具,封裝了很多技術(shù)細(xì)節(jié),使得我們沒(méi)法了解裸機(jī)、單片機(jī)的本質(zhì)。

以后我們會(huì)使用新一套的方法來(lái)進(jìn)行單片機(jī)的開(kāi)發(fā)。新一套的方法,我們后面再介紹。



我們之所以還要學(xué)習(xí)單片機(jī),是因?yàn)樗锩娴闹R(shí),對(duì)我們后續(xù)學(xué)習(xí)Linux還是有用的。我們首先來(lái)看看,一個(gè)Linux系統(tǒng)是怎么一回事。 一個(gè)嵌入式Linux系統(tǒng)的軟件組成:單片機(jī)大全Bootloader–>Linux驅(qū)動(dòng)–>Linux APP–>Linux GUI(Android/QT)。我們PC機(jī)一上電的時(shí)候,黑色屏幕上會(huì)顯示BIOS,這個(gè)BIOS目的是去啟動(dòng)Windows內(nèi)核。Windows內(nèi)核再掛載C盤(pán)(系統(tǒng)盤(pán))、D盤(pán)(應(yīng)用盤(pán)),最后再去啟動(dòng)應(yīng)用程序,像QQ、網(wǎng)游等。 同樣的道理,我們的Android手機(jī)或者工控設(shè)備,也有BIOS,但嵌入式Linux系統(tǒng)里面不叫BIOS,叫Bootloader,他的目的是去啟動(dòng)Linux內(nèi)核。 它首先也是識(shí)別應(yīng)用程序所在的存儲(chǔ)設(shè)備,掛載根文件系統(tǒng)(在Windows系統(tǒng)里面的C盤(pán)、D盤(pán),在Linux里面稱為根文件系統(tǒng))。最后去啟動(dòng)應(yīng)用程序。



仔細(xì)的分析下Bootloader,它去啟動(dòng)內(nèi)核,它去哪里啟動(dòng)內(nèi)核呢? 顯然是去某個(gè)地方讀出內(nèi)核,就比如說(shuō)BIOS是去C盤(pán)上讀出Windows內(nèi)核,我們的Bootloader是去Flash或者SD卡讀取內(nèi)核。因此Bootloader要擁有讀取Flash或者SD卡的能力。有些Bootloader還要顯示logo,因此還要具有操作LCD的能力。Bootloader還要設(shè)置開(kāi)發(fā)板的環(huán)境,比如,初始化時(shí)鐘、初始化內(nèi)存、還要設(shè)置網(wǎng)卡等。這么多事情,都是在Bootloader里面實(shí)現(xiàn)的,太復(fù)雜了,如果你一來(lái)就分析整個(gè)Bootloader是非常困難的。

那我們?cè)趺磳W(xué)習(xí)呢? 把他拆開(kāi),寫(xiě)出單獨(dú)的程序,比如:LED點(diǎn)燈、時(shí)鐘、網(wǎng)卡、Flash都單獨(dú)寫(xiě)個(gè)程序來(lái)練習(xí),這些不就是單片機(jī)程序嗎?所以說(shuō),Bootloader是單片機(jī)程序的大全。我們?yōu)榱烁玫膶W(xué)習(xí)Bootloader,我們應(yīng)該事先一個(gè)一個(gè)練習(xí)硬件,當(dāng)我們熟悉每個(gè)硬件后,再組合起來(lái),就是一個(gè)Bootloader。



我們?cè)賮?lái)看看Bootloader啟動(dòng)內(nèi)核之后,內(nèi)核再去掛載根文件系統(tǒng),意味著內(nèi)核也要有操作硬件的能力,這就是驅(qū)動(dòng)程序。我們首先來(lái)看看一個(gè)簡(jiǎn)單的驅(qū)動(dòng)程序是什么樣子。首先我們的應(yīng)用程序是調(diào)用open()、read()、write()這些標(biāo)準(zhǔn)的接口去訪問(wèn)硬件。那么就進(jìn)入驅(qū)動(dòng)程序里面,驅(qū)動(dòng)程序里面有對(duì)應(yīng)的drive_open()、drive_read()、drive_write()。最后在驅(qū)動(dòng)程序里面,去配置硬件。比如一個(gè)LED點(diǎn)燈驅(qū)動(dòng),那么drive_open()要把GPIO設(shè)置為輸出引腳,drive_read(),返回GPIO狀態(tài),driver_write()則寫(xiě)GPIO,讓引腳輸出高電平或者低電平。



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

驅(qū)動(dòng)程序=軟件框架+硬件操作

你需要學(xué)會(huì)看原理圖、看硬件怎么連接、看芯片手冊(cè)、知道怎么讀寫(xiě)寄存器。這一切都可以先在單片機(jī)里面學(xué)習(xí),去掌握。以后學(xué)習(xí)Linux驅(qū)動(dòng)時(shí),把重點(diǎn)放在軟件框架就行了。

我們可以事先學(xué)習(xí)單片機(jī),單片機(jī)的學(xué)習(xí)可以讓我們先拋開(kāi)復(fù)雜的軟件結(jié)構(gòu),先掌握硬件的操作,如:看原理圖、芯片手冊(cè)、寫(xiě)程序操作寄存器等。這就是為什么單片機(jī)沒(méi)有前途,我們也要學(xué)習(xí)。是因?yàn)樗锩嫔婕暗挠布僮鳎瑢?duì)我們后續(xù)的學(xué)習(xí),非常有用處。

現(xiàn)在我們知道了,我們學(xué)習(xí)單片機(jī),不是為了掌握單片機(jī)的開(kāi)發(fā)技能,而是為了掌握Bootloader,掌握硬件操作。


原帖轉(zhuǎn)自:http://bbs.elecfans.com/jishu_1544437_1_1.html


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6076

    文章

    45495

    瀏覽量

    670406
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11760

    瀏覽量

    219040
  • 驅(qū)動(dòng)開(kāi)發(fā)

    關(guān)注

    0

    文章

    140

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式單片機(jī)開(kāi)發(fā)學(xué)習(xí)路徑

    嵌入式系統(tǒng)是現(xiàn)代科技的重要組成部分,廣泛應(yīng)用于智能家居、汽車電子、工業(yè)控制、醫(yī)療設(shè)備等領(lǐng)域。學(xué)習(xí)嵌入式單片機(jī)開(kāi)發(fā)不僅能提升個(gè)人技能,還能開(kāi)拓職業(yè)發(fā)展路徑。本文將為你提供條詳細(xì)的嵌入式單片機(jī)
    發(fā)表于 02-09 15:42

    小白也能聽(tīng)懂的單片機(jī)知識(shí)路徑

    在科技飛速發(fā)展的今天,單片機(jī)作為電子技術(shù)的核心組件,扮演著越來(lái)越重要的角色。對(duì)于想要踏入這個(gè)領(lǐng)域的初學(xué)者來(lái)說(shuō),了解并掌握單片機(jī)知識(shí)是邁向成功的第步。 第
    發(fā)表于 02-04 16:44

    如何入門(mén)單片機(jī)/嵌入式?

    種與windows下面寫(xiě)程序差不多,也可以使用c++或者java ,種是開(kāi)發(fā)內(nèi)核驅(qū)動(dòng),只能用c寫(xiě),比如usb驅(qū)動(dòng)或者攝像頭驅(qū)動(dòng)啥的,這個(gè)就
    發(fā)表于 02-02 06:57

    開(kāi)發(fā)單片機(jī)需要具備多少的模電技能

    、LED驅(qū)動(dòng)電路、按鍵檢測(cè)電路、蜂鳴器驅(qū)動(dòng)電路、存儲(chǔ)電路、LCD驅(qū)動(dòng)電路、單片機(jī)外圍電路。 這些就是比較實(shí)用的,如果你是個(gè)細(xì)心的人,大多
    發(fā)表于 01-26 06:51

    個(gè)面向單片機(jī)、事件驅(qū)動(dòng)的嵌入式開(kāi)發(fā)平臺(tái)介紹

    EventOS,是個(gè)面向單片機(jī)、事件驅(qū)動(dòng)的嵌入式開(kāi)發(fā)平臺(tái)。它主要有兩大技術(shù)特色:是事件驅(qū)動(dòng),
    發(fā)表于 12-05 06:26

    Linux驅(qū)動(dòng)開(kāi)發(fā)的必備知識(shí)

    內(nèi)核基礎(chǔ)知識(shí): 1、熟悉 Linux 內(nèi)核的架構(gòu)、模塊系統(tǒng)、進(jìn)程管理、內(nèi)存管理等。 了解內(nèi)核的編譯和加載過(guò)程。 2、C編程技能: 精通 C 語(yǔ)言編程,包括指針操作、內(nèi)存管理、結(jié)構(gòu)體等
    發(fā)表于 12-04 07:58

    學(xué)單片機(jī)的誤區(qū)

    1.去背寄存器 寄存器不用死記硬背,,當(dāng)我們?nèi)ナ褂?b class='flag-5'>單片機(jī)外設(shè)的時(shí)候就要去配置,千萬(wàn)別去記寄存器,華維單片機(jī)編程的導(dǎo)師做開(kāi)發(fā)這么多年了,個(gè)寄存器都記不住。 何況,
    發(fā)表于 11-14 07:46

    怎么測(cè)單片機(jī)系統(tǒng)頻率

    單片機(jī)系統(tǒng)頻率是指單片機(jī)工作時(shí)的時(shí)鐘頻率,它直接影響單片機(jī)的運(yùn)行速度和處理能力,準(zhǔn)確測(cè)量系統(tǒng)頻率對(duì)單片機(jī)應(yīng)用開(kāi)發(fā)、程序調(diào)試和性能優(yōu)化具有重要
    的頭像 發(fā)表于 07-25 11:39 ?790次閱讀

    單片機(jī)怎么驅(qū)動(dòng)電機(jī)?

    在各類自動(dòng)化設(shè)備和智能裝置中,電機(jī)是重要的執(zhí)行部件,而單片機(jī)作為控制核心,需要通過(guò)特定的方式驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)。單片機(jī)驅(qū)動(dòng)電機(jī)并非直接連接即可,而是要根據(jù)電機(jī)類型和功率,搭配合適的
    的頭像 發(fā)表于 07-25 09:31 ?911次閱讀

    低功耗單片機(jī)各型號(hào)的對(duì)比及選型參考

    不同品牌、不同系列的低功耗單片機(jī)在功耗控制、性能表現(xiàn)、外設(shè)配置等方面各有特點(diǎn),通過(guò)低功耗單片機(jī)各型號(hào)的對(duì)比,能幫助開(kāi)發(fā)者更精準(zhǔn)地匹配應(yīng)用需求。本文將圍繞主流低功耗單片機(jī)型號(hào)展開(kāi)對(duì)比,并
    的頭像 發(fā)表于 07-22 18:25 ?1452次閱讀

    單片機(jī)開(kāi)發(fā)流程包括什么?

    單片機(jī)開(kāi)發(fā)個(gè)系統(tǒng)性的工程,從需求明確到最終產(chǎn)品落地,需要經(jīng)歷多個(gè)相互關(guān)聯(lián)的流程環(huán)節(jié),每個(gè)環(huán)節(jié)都對(duì)最終產(chǎn)品的性能和質(zhì)量有著重要影響。 、需求分析與文檔梳理
    的頭像 發(fā)表于 07-22 11:21 ?1017次閱讀

    單片機(jī)定制開(kāi)發(fā)的設(shè)計(jì)思路

    單片機(jī)定制開(kāi)發(fā)是根據(jù)特定場(chǎng)景和功能需求,量身打造符合要求的單片機(jī)應(yīng)用方案,其設(shè)計(jì)過(guò)程需要兼顧技術(shù)可行性與實(shí)際應(yīng)用價(jià)值,涉及多個(gè)關(guān)鍵環(huán)節(jié)。 、需求分析階段
    的頭像 發(fā)表于 07-17 11:14 ?788次閱讀
    <b class='flag-5'>單片機(jī)</b>定制<b class='flag-5'>開(kāi)發(fā)</b>的設(shè)計(jì)思路

    KF32A136系列單片機(jī)產(chǎn)品介紹

    F32A136 系列單片機(jī)是基于 KF32 內(nèi)核架構(gòu)開(kāi)發(fā)單片機(jī)。
    的頭像 發(fā)表于 06-27 11:42 ?2356次閱讀
    KF32A136系列<b class='flag-5'>單片機(jī)</b>產(chǎn)品介紹

    Linux嵌入式和單片機(jī)嵌入式的區(qū)別?

    新的應(yīng)用程序和驅(qū)動(dòng)程序來(lái)擴(kuò)展功能。 6. 開(kāi)發(fā)難度 : 單片機(jī)嵌入式 :開(kāi)發(fā)難度相對(duì)較低,適合初學(xué)者入門(mén)。 Linux嵌入式 :
    發(fā)表于 06-20 09:46

    單片機(jī)科普總結(jié),建議收藏!

    單片機(jī)(MicrocontrollerUnit,MCU)作為嵌入式系統(tǒng)的核心之一,在現(xiàn)代電子產(chǎn)品中無(wú)處不在。從智能家居、汽車電子,到工業(yè)控制、醫(yī)療設(shè)備,單片機(jī)支撐著無(wú)數(shù)智能化應(yīng)用的發(fā)展。對(duì)于初學(xué)者
    的頭像 發(fā)表于 04-07 11:58 ?5652次閱讀
    <b class='flag-5'>單片機(jī)</b>科普總結(jié),建議收藏!