在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

嵌入式系統開發的思維和注重方法

Q4MP_gh_c472c21 ? 來源:技術讓夢想更偉大 ? 作者:李肖遙 ? 2021-09-02 11:10 ? 次閱讀

開頭的話

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

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

從裸機思維開始

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

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

硬件:業已固化下來的邏輯,可以穩定的提供確定的服務和功能軟件的本質是設計人員的思維,因而程序設計人員最重要的是自己根據任務的需求想通所有的邏輯,并借助一定的語言作為工具,把自己的思維“固化”下來,而硬件,本質上一個固化下來的邏輯。

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

注重方法

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

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

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

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

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

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

Lv3:“實時性” = 任務拆分;

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

Lv5:到了這個階段,不僅腦洞大開、戰斗力驚人總而言之需要深入理解,才能在注重方法的前提下,成為一個高級碼農。

注重技巧

為大家庖丁解牛、由淺入深,就要不懼怕優化,不要把編譯器的行為看作是玄學,深入底層,才能把編譯器、內存、寄存器、語言本質理解的透徹。

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

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

#defineXXXXX_IO_REG ( *((volatile uint32_t*)XXXX_IO_REG_BASE_ADDRESS) )

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

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

最后的話

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

責任編輯:haq

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

    關注

    5087

    文章

    19148

    瀏覽量

    306187
  • C語言
    +關注

    關注

    180

    文章

    7608

    瀏覽量

    137156

原文標題:大佬談:嵌入式系統開發的思維、方法、技巧

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式系統開發中的測試方法 嵌入式系統開發與AI結合應用

    嵌入式系統開發中的測試方法 嵌入式系統開發是一個復雜的過程,涉及到硬件和軟件的緊密結合。測試是確保系統
    的頭像 發表于 12-09 10:22 ?416次閱讀

    嵌入式系統開發與硬件的關系 嵌入式系統開發常見問題解決

    嵌入式系統開發與硬件的關系 嵌入式系統是專為特定應用設計的計算機系統,它們通常嵌入在所控制的設備
    的頭像 發表于 12-09 09:38 ?328次閱讀

    嵌入式系統的未來趨勢有哪些?

    會更加注重能源效率。低功耗設計和節能技術會成為關鍵,以延長設備的電池壽命或降低能源成本。這對于可穿戴設備、便攜醫療設備等對續航能力有較高要求的產品尤為重要。 4. 多模塊與集成化 在未來的嵌入式
    發表于 09-12 15:42

    嵌入式linux開發的基本步驟有哪些?

    嵌入式Linux開發是一個復雜的過程,涉及到硬件選擇、操作系統移植、驅動開發、應用程序開發等多個方面。以下是
    的頭像 發表于 09-02 09:11 ?541次閱讀

    嵌入式linux開發板怎么操作

    嵌入式Linux開發板是一種基于Linux操作系統嵌入式系統開發平臺。它通常包括一個處理器、內存、存儲器、輸入/輸出接口等硬件組件,以及一
    的頭像 發表于 09-02 09:09 ?420次閱讀

    嵌入式linux開發板芯片的工作原理

    嵌入式Linux開發板是一種基于Linux操作系統嵌入式系統開發平臺,它廣泛應用于工業控制、智能家居、智能交通、醫療設備等領域。
    的頭像 發表于 09-02 09:07 ?418次閱讀

    恩智浦加速嵌入式AI創新應用開發

    在AI應用飛速發展的今天,如何能夠將AI與嵌入式系統開發有機結合起來,營造新的開發生態,打造與眾不同的創新用例,一直是嵌入式開發者追求的目標。
    的頭像 發表于 08-27 09:46 ?850次閱讀

    嵌入式開發前景怎么樣?

    嵌入式開發前景非常廣闊,這主要得益于物聯網、人工智能、大數據等技術的快速發展,以及嵌入式系統在各個領域的廣泛應用。以下是對嵌入式開發前景的詳細分析
    的頭像 發表于 07-10 09:00 ?2779次閱讀
    <b class='flag-5'>嵌入式開發</b>前景怎么樣?

    嵌入式系統怎么學?

    、C++或者Python。這些語言在嵌入式系統開發中都被廣泛應用。 3、微處理器/微控制器架構:學習常見的微處理器和微控制器架構,如ARM、AVR、PIC等,了解其特性和應用場景。 4、嵌入式
    發表于 07-02 10:10

    如何提升嵌入式編程能力?

    和仿真:使用模擬和仿真工具來測試你的嵌入式系統,這可以在實際硬件之前發現問題。 通過以上的這些方法,可以逐步提高個人的嵌入式編程技能,并成為一名更優秀的
    發表于 06-21 10:01

    嵌入式軟件工程師和硬件工程師的區別?

    ,并且了解嵌入式系統的工作原理。此外,他們還需要具備良好的邏輯思維能力,能夠快速解決復雜的軟件問題。嵌入式軟件工程師在軟件開發方面有著豐富的
    發表于 05-16 11:00

    再談嵌入式實時操作系統

    程序的可移植性得到了增強,系統開發的工作量減輕的同時也提高了開發效率。對實時性和可靠性日益增長的要求正在塑造某些現代領域的嵌入式實時操作系統的發展方向,例如航空航天、工業控制、汽車電子
    的頭像 發表于 04-09 17:27 ?814次閱讀
    再談<b class='flag-5'>嵌入式</b>實時操作<b class='flag-5'>系統</b>

    fpga與嵌入式的區別 嵌入式和fpga開發有什么關系

    的,無法進行大規模的硬件級別的修改。這意味著FPGA能更靈活地適應不同的應用場景和變化的需求。 開發周期:FPGA的開發周期相對較短,因為它可以通過重新編程來實現新功能。相比之下,嵌入式系統
    的頭像 發表于 03-14 17:04 ?6962次閱讀

    ARM嵌入式Linux 系統開發從入門到精通

    ARM嵌入式Linux 系統開發從入門到精通
    發表于 03-10 18:44

    嵌入式工程師需要掌握哪些技術?

    一些必要的技術能力是至關重要的。在本篇中,我們將討論入行嵌入式所必須的技術能力。 1.C/C++編程能力:C/C++是嵌入式系統開發中最常用的編程語言。熟練掌握C/C++語言將使你能夠理解和編寫底層
    發表于 03-04 16:38
    主站蜘蛛池模板: 超级乱淫小黄文小说| 最刺激黄a大片免费观看下截| 天天鲁天天爽天天视频| 啪啪黄色| 人人草97| 欧美黄色片免费看| 四虎影院在线观看免费| 深爱五月激情五月| 日韩欧美亚洲综合一区二区| 欧美色乱| 国产1区二区| 五月天婷婷精品视频| 久久久久久久国产| 欧美人与物另类| 老师在办公室被躁得舒服小说| 长腿丝袜美女被啪啪| 五月综合激情视频在线观看| 日日噜噜噜夜夜爽爽狠狠| 麻豆美女大尺度啪啪| 热久久这里只有精品| 就要爱综合| 97影院理论片在线观看| 天天干夜夜添| 94久久国产乱子伦精品免费| 热久久久久| 四虎影院在线网址| 欧美色视频日本| 国产91小视频在线观看| 天天草天天草| 手机看片欧美日韩| www.九色视频| 国产一区在线mmai| 色综合天天射| 国产网站免费观看| 特黄一级| av 狼| 亚洲成综合人影院在院播放| 起碰成人免费公开网视频| 成人综合网址| 亚洲欧美圣爱天天综合| 国产免费午夜|