嵌入式學習(一)——單片機與Linux

姓名:李萌怡? 學號:19020100103? 學院:電子工程學院

轉自:https://blog.csdn.net/thisway_diy/article/details/106101091

【嵌牛導讀】:對于嵌入式Linux學習的初學者,往往習慣將嵌入式Linux與自己所熟悉的東西聯(lián)系起來。單片機就是其中一個例子导而。本文對單片機與Linux做以區(qū)別歹篓。

【嵌牛鼻子】:單片機? Linux

【嵌牛提問】:單片機與Linux的區(qū)別有哪些牧牢?

【嵌牛正文】

1.1 有哪些產(chǎn)品使用單片機或Linux

所有的電子產(chǎn)品,所用技術都可以認為要么是單片機,要么是Linux;GUI方面主要是QT/Android聪轿,它們都是運行于Linux之上的。

也許你不服猾浦!不是還有ucos陆错、vxwork、wince金赦、IOS嗎音瓷?

我們說的單片機不使用操作系統(tǒng)。但是使用單片機設備肯定遠遠超過Linux素邪。很多人也是先學習單片機外莲,從單片機進入電子工程師行業(yè)

我們設計一個產(chǎn)品時猪半,是使用單片機還是Linux兔朦,取決于成本:硬件成本、軟件成本磨确、維護成本沽甥、升級成本。而不應該根據(jù)個人偏好來選擇:我喜歡單片機乏奥,所以就排斥使用Linux摆舟;我喜歡Linux,就排斥使用單片機邓了。為了有更多的選擇恨诱,我們需要既懂單片機,又懂Linux骗炉。

1.2 在硬件操作上單片機和Linux是類似的

以點燈為例照宝,

無論是單片機還是Linux,我們要做的事情都一樣:

1.看原理圖句葵,確定引腳是哪一個厕鹃,確定它輸出什么電平才可以

2.看芯片手冊兢仰,確定要怎么操作寄存器

3.寫程序

但是,怎么編寫程序剂碴,單片機和Linux有很大不同把将。

1.3 在單片機中點燈、使用LCD

LED程序里面的init_led忆矛、led_on察蹲、led_off函數(shù)是你一個人寫的,愛取什么名就取什么名催训,愛怎么寫就怎么寫递览。

LCD程序里的函數(shù)也是你寫的,完全是自由發(fā)揮瞳腌。

很多單片機項目不是很復雜绞铃,2、3個人從上到下統(tǒng)統(tǒng)搞定嫂侍,里面的函數(shù)大多時間是直接去讀寫寄存器儿捧。

很多單片機項目嚴重依賴于硬件,換一個芯片后怎么辦挑宠?重寫一套代碼唄菲盾。

在單片機程序里,沒有應用程序各淀、驅動程序的概念懒鉴,很可能一個人包攬了硬件設計、模塊調試(或稱之為驅動)碎浇、功能開發(fā)(或稱之為應用)的全部活临谱。

1.4 在Linux中點燈、使用LCD

在Linux中奴璃,不允許應用開發(fā)人員直接去操作硬件悉默,比如你想點個燈,不好意思苟穆,你無法直接訪問寄存器抄课;你需要通過驅動程序來訪問寄存器。

為什么雳旅?有幾大原因:

1.Linux系統(tǒng)中運行著眾多程序跟磨,必須保證質量差的程序無法破壞系統(tǒng):

假設你寫的程序比較爛,那我不能讓你去隨便訪問寄存器攒盈,把系統(tǒng)搞崩潰了怎么辦抵拘?你本意是去點燈,但是你看錯了寄存器沦童,你把電源關了怎么辦仑濒?

所以這些操作硬件的活叹话,還是交給信得過的人來做吧:交給驅動工程師,他既懂硬件又懂軟件墩瞳。

2.保證程序的可移植性:

編寫應用程序時驼壶,大家都使用統(tǒng)一的函數(shù),以后換一個芯片時喉酌,應用程序不用變热凹;只需要根據(jù)這個接口提供驅動程序就可以了。

3.團隊協(xié)作:

使用Linux系統(tǒng)的項目一般比較大泪电,術業(yè)有專攻般妙,一個人不太可能從上到下都全部掌握。比如做人臉識別項目相速,有擅長做圖像處理的碟渺,他可不管你要用多少種攝像頭,有圖像給他就可以突诬。而多種攝像頭的硬件操作方法各有不同苫拍,這些交給驅動程序工程師。

所以旺隙,在Linux中應用程序和驅動程序是分開的绒极。

也許你已經(jīng)大概猜出來了,應用程序怎么調用驅動程序蔬捷?通過標準的接口:

open:

打開驅動程序垄提。

read/write:

讀、寫數(shù)據(jù)周拐。

ioctl:

傳入各種參數(shù)铡俐,獲得各種參數(shù)。

mmap:

內(nèi)存映射速妖,比如映射之后高蜂,應用程序可以直接讀寫LCD的顯存。

你看罕容!從這些接口里,我們根本看不到寄存器的操作稿饰。底層的程序驅動會根據(jù)這些調用锦秒,去設置寄存器、操作硬件喉镰。

所以旅择,我高大上的應用工程師,干嘛苦哈哈地去看原理圖侣姆、看在片手冊生真、讀寫寄存器沉噩,搞不好還要去調試硬件BUG。這些臟活柱蟀、累活就交給驅動工程師吧川蒙。客戶的需求千變?nèi)f化长已,我996時間都不夠用了畜眨。

我上懂軟件、下懂硬件的驅動工程師术瓮,肯定不能把這么重要的活交給你去做了康聂,把我的系統(tǒng)搞崩潰了怎么辦。

開玩笑胞四、開玩笑恬汁、開玩笑的,有應用工程師辜伟、驅動工程師的優(yōu)劣之分蕊连,大家都是為了做出產(chǎn)品。現(xiàn)在有一個趨勢游昼,一個任務從上到下你都需要懂甘苍,這就是所謂的全棧工程師。

在Linux中烘豌,“一切皆文件”载庭,要訪問某個硬件,也是要打開文件廊佩、讀寫文件囚聚。應用程序要根據(jù)標準的文件接口:open/read/write/ioctl/mmap等來訪問驅動程序。

既然如此标锄,怎么寫驅動程序呢顽铸?最簡單的方法就是:APP要調用open來打開驅動程序,那驅動‘程序里就提供一個xxx_open函數(shù)來初始化硬件料皇;APP要調用write來寫數(shù)據(jù)谓松,驅動程序里就提供一個xxx_write函數(shù)來接收數(shù)據(jù)并操作硬件。

用xxx_open践剂、xxx_write來構成一個驅動程序鬼譬,這就是驅動框架。

怎么實現(xiàn)這些xxx_open逊脯、xxx_write函數(shù)优质?我們要做的事情跟單片機是類似的,一樣要去看電路圖、看芯片手冊巩螃,然后在這些函數(shù)里讀寫寄存器:這稱為硬件操作演怎。

所以,Linux驅動程序= 驅動框架 + 硬件操作避乏。

有單片機基礎的人爷耀,對硬件操作比較熟悉了,把重點放在驅動框架上就可以淑际。

高能預警:驅動框架可不簡單畏纲,對于LED來說是簡單,但是還有更復雜的驅動程序春缕,它要考慮“通用”盗胀,這很要命。

————————————————

版權聲明:本文為CSDN博主「韋東山」的原創(chuàng)文章锄贼,遵循CC 4.0 BY-SA版權協(xié)議票灰,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/thisway_diy/article/details/106101091

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宅荤,一起剝皮案震驚了整個濱河市屑迂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冯键,老刑警劉巖惹盼,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惫确,居然都是意外死亡手报,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門改化,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掩蛤,“玉大人,你說我怎么就攤上這事陈肛∽崮瘢” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵句旱,是天一觀的道長阳藻。 經(jīng)常有香客問我,道長前翎,這世上最難降的妖魔是什么稚配? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮港华,結果婚禮上,老公的妹妹穿的比我還像新娘午衰。我一直安慰自己立宜,他們只是感情好冒萄,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著橙数,像睡著了一般尊流。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灯帮,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天崖技,我揣著相機與錄音,去河邊找鬼钟哥。 笑死迎献,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的腻贰。 我是一名探鬼主播吁恍,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼播演!你這毒婦竟也來了冀瓦?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤写烤,失蹤者是張志新(化名)和其女友劉穎翼闽,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洲炊,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡感局,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了选浑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓝厌。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖古徒,靈堂內(nèi)的尸體忽然破棺而出拓提,到底是詐尸還是另有隱情,我是刑警寧澤隧膘,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布代态,位于F島的核電站,受9級特大地震影響疹吃,放射性物質發(fā)生泄漏蹦疑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一萨驶、第九天 我趴在偏房一處隱蔽的房頂上張望歉摧。 院中可真熱鬧,春花似錦、人聲如沸叁温。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膝但。三九已至冲九,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間跟束,已是汗流浹背莺奸。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冀宴,地道東北人灭贷。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像花鹅,于是被迫代替她去往敵國和親氧腰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 姓名:吳兆陽 學號:14020199009 轉自韋東山 嵌牛導讀:對嵌入式初學者刨肃,沒有足夠的視野選擇一個合適投入方...
    吳兆陽閱讀 2,387評論 0 4
  • 就現(xiàn)在的行業(yè)發(fā)展來看只會單片機已經(jīng)不吃香了并且在薪資待遇方面來看的話單片機的收入限制性太強可能工作很多年之后發(fā)現(xiàn)沒...
    Mr_bd1e閱讀 272評論 0 0
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月古拴,有人笑有人哭,有人歡樂有人憂愁真友,有人驚喜有人失落黄痪,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,536評論 28 53
  • 人工智能是什么?什么是人工智能盔然?人工智能是未來發(fā)展的必然趨勢嗎桅打?以后人工智能技術真的能達到電影里機器人的智能水平嗎...
    ZLLZ閱讀 3,778評論 0 5
  • 上周六在壓力下實在需要釋放,去西塘躲了兩天愈案,真是好地方挺尾,很優(yōu)雅的江南古鎮(zhèn),而且與周莊比開發(fā)不算過度站绪。 我們是周五半...
    聚塔閱讀 805評論 2 2