www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導(dǎo)讀]開頭的話嵌入式開發(fā)是一個比較苦、容易背鍋、可能仍然需要996而且拿錢較少,但也有些許樂趣的活,我一直稱之為跳坑里了。如果你在里面深耕,那終究會成為大佬,軟硬結(jié)合的高手;如果你剛?cè)肟樱铱赡軇衲戕D(zhuǎn),但是可能你自己還有點舍不得。總之,確定了在這一行,靠的就是思維與技巧結(jié)合,注重實踐方...

開頭的話

嵌入式開發(fā)是一個比較苦、容易背鍋、可能仍然需要996而且拿錢較少,但也有些許樂趣的活,我一直稱之為跳坑里了。如果你在里面深耕,那終究會成為大佬,軟硬結(jié)合的高手;如果你剛?cè)肟?,我可能勸你轉(zhuǎn),但是可能你自己還有點舍不得。

總之,確定了在這一行,靠的就是思維與技巧結(jié)合,注重實踐方法,方能在其中有一席之地。

從裸機思維開始

嵌入式系統(tǒng)是一個面向應(yīng)用高度裁減的專用計算機系統(tǒng),嵌入式軟硬件也可以這樣定義

  • 軟件:人們借助某種語言,“嘗試”固化下來的,自己的思維

  • 硬件:業(yè)已固化下來的邏輯,可以穩(wěn)定的提供確定的服務(wù)和功能

軟件的本質(zhì)是設(shè)計人員的思維,因而程序設(shè)計人員最重要的是自己根據(jù)任務(wù)的需求想通所有的邏輯,并借助一定的語言作為工具,把自己的思維"固化"下來,而硬件,本質(zhì)上一個固化下來的邏輯。

這個是行業(yè)內(nèi)在心底里約定俗成已經(jīng)默默在做的事情,嵌入式系統(tǒng)、模塊化編程、狀態(tài)機、層次框架等等,都是在其中摸索探究。

注重方法

思維的設(shè)計有很多輔助工具,如大家熟知的流程圖、UML圖、數(shù)據(jù)流圖等等。然而,具體代碼往往并不是一個好的輔助工具。

進行思維設(shè)計的開發(fā)人員,叫做Programmer,也就是所謂的碼農(nóng),而要做一個好的碼農(nóng),真的需要注意方法,比如狀態(tài)機編程,怎么理解狀態(tài)?如何才算一個狀態(tài)。

我們看到圖中,我們用圓圈來表示一個狀態(tài),圖中最左的箭頭表示從別的什么地方“躍遷”到了當(dāng)前狀態(tài);下方的箭頭表示從當(dāng)前狀態(tài)離開;右上角從當(dāng)前狀態(tài)“扇出”后又“返回到”當(dāng)前狀態(tài)。這里需要很多轉(zhuǎn)變,而好的架構(gòu)很關(guān)鍵。

在之前我分享過很多狀態(tài)機的知識,可以說萬物皆可狀態(tài)機,而嵌入式軟件開發(fā)時總繞不開與實時性(Real Time)相關(guān)的話題,大部分人對實時性的認知過程通常會分以下幾個階段:。

  • v1:“實時性” = “越快越好”

  • Lv2:“實時性” = RTOS,認為選一個好的RTOS,或者會用RTOS就可以保證實時性;

  • Lv3:“實時性” = 任務(wù)拆分;

  • Lv4:開始思考實時性模型的特點;

  • Lv5:到了這個階段,不僅腦洞大開、戰(zhàn)斗力驚人

總而言之需要深入理解,才能在注重方法的前提下,成為一個高級碼農(nóng)。

注重技巧

為大家庖丁解牛、由淺入深,就要不懼怕優(yōu)化,不要把編譯器的行為看作是玄學(xué),深入底層,才能把編譯器、內(nèi)存、寄存器、語言本質(zhì)理解的透徹。

比如位域和volatile,前者用于將指定類型的整形變量按照我們的意愿切分;后者用于告訴編譯器不允許對被修飾的變量做優(yōu)化。如果我們對編譯器的優(yōu)化等級忽略的話,很難定義到bug,或者當(dāng)我們對內(nèi)存塊理解的不深入不透徹,關(guān)于內(nèi)存的七七八八就會莫名其妙的找上門來。

volatile在嵌入式系統(tǒng)中的應(yīng)用范圍非常廣泛,假設(shè)某32位外設(shè)寄存器的地址為XXXXX_IO_REG_BASE_ADDRESS,則對應(yīng)的寄存器可以定義為如下的形式:

#defineXXXXX_IO_REG???(?*((volatile?uint32_t*)XXXX_IO_REG_BASE_ADDRESS)?)
而應(yīng)用中很多針對外設(shè)寄存器的連續(xù)操作都可以通過優(yōu)化來大幅度提高效率,在保證程序邏輯正確的情況下,應(yīng)該盡可能減少volatile的使用,或者是限制其使用的范圍,那么你知道為什么嗎?

這就是編譯器、語言本身、變量的一些特別之處,搞定這些底層原理知識,必定讓我們打開語言的大門。

最后的話

嵌入式開發(fā)所涉及到的思維訓(xùn)練、C語言以及編譯器相關(guān)的關(guān)鍵知識、裸機環(huán)境下的開發(fā)者模型等等,可以幫助我們深入理解底層原理知識,以不變應(yīng)萬變,最終對知識點實現(xiàn)完整和全面的覆蓋。


END
來源:技術(shù)讓夢想更偉大,作者:李肖遙版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除。
嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉