<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何快速構(gòu)建嵌入式全棧知識體系?

          共 3904字,需瀏覽 8分鐘

           ·

          2021-05-23 03:29

          ??關(guān)注博文視點Broadview”,獲取更多書訊

          嵌入式是一門交叉學(xué)科。

          一個嵌入式電子產(chǎn)品(比如手機)從底層到上層,一般會涉及半導(dǎo)體芯片、電子電路、計算機、操作系統(tǒng)、多媒體等不同專業(yè)領(lǐng)域的知識。

          很多從事嵌入式開發(fā)的朋友,通常來自不同的專業(yè)(電子、電氣、計算機、機械、自動化、物理,甚至一些文科專業(yè)),在實際學(xué)習(xí)和開發(fā)中,由于專業(yè)背景的限制,經(jīng)常會遇到各種技術(shù)壁壘:搞硬件的不懂軟件,搞軟件的不懂硬件,搞底層芯片的不懂上層軟件,搞上層軟件的不懂底層芯片。

          嵌入式技術(shù)棧太深,除了極少數(shù)人,一般人很難實現(xiàn)技術(shù)破圈,將整個技術(shù)棧從上到下捋一遍,徹底打通。

          相對于桌面開發(fā),嵌入式開發(fā)還具有碎片化特點:不同架構(gòu)(如ARM、MIPS、RISC-V等)、不同廠家的SoC處理器(如Cortex-M系列、cortex-A系列、AI芯片等),不同的操作系統(tǒng)(Linux、uC/OS、FreeRTOS、Android等),一般都需要匹配對應(yīng)的編譯開發(fā)環(huán)境,然后工程師才能基于這個編譯環(huán)境做應(yīng)用開發(fā)。

          如果把軟件開發(fā)比作開飯館賣餃子,那么對于桌面軟件開發(fā)而言,鍋碗瓢盆、水電煤氣,甚至餃子(超市里的速凍餃子)都準(zhǔn)備好了,標(biāo)準(zhǔn)統(tǒng)一,就等著你下鍋,可以根據(jù)顧客不同的需求,做成一道道不同的美食:豬肉芹菜的、三鮮的、蒸的、煮的、煎的。

          而對于嵌入式開發(fā),可能情況就不太一樣了:沒有現(xiàn)成的餃子成品可以用,搟餃子皮、剁陷、鍋碗瓢盆都需要自己動手準(zhǔn)備,開發(fā)環(huán)境需要自己搭建。

          遇到問題,不能僅僅局限于當(dāng)前的軟件業(yè)務(wù)邏輯,可能還要從芯片、硬件電路、操作系統(tǒng)、底層驅(qū)動,甚至編譯器等不同的維度去分析,去定位出現(xiàn)問題的原因。

          隨著半導(dǎo)體行業(yè)趨勢的變化,以及國內(nèi)對芯片行業(yè)的大力投入,國產(chǎn)芯片越來越多,未來嵌入式軟件工程師的工作崗位和工作內(nèi)容也會隨之發(fā)生一些變化:

          嵌入式開發(fā)人員不再僅僅是基于芯片廠家提供的現(xiàn)成的開發(fā)板、BSP軟件包、產(chǎn)品方案去開發(fā)產(chǎn)品,而是有越來越多的工程師直接進(jìn)入芯片原廠工作,參與芯片底層軟件的開發(fā)和維護(hù)工作:芯片測試、操作系統(tǒng)移植、驅(qū)動開發(fā)與維護(hù)、以及基于自家芯片產(chǎn)品方案的推廣和技術(shù)支持等工作。

          在芯片設(shè)計前期,嵌入式軟件工程師有時候還需要和IC工程師一起去測試芯片,編寫相應(yīng)的測試代碼和測試案例。

          工作職責(zé)和工作內(nèi)容的變化,需要嵌入式軟件開發(fā)人員不斷擴充自己的知識體系,不斷學(xué)習(xí)和解鎖新的技能:C語言編程技能、軟件工程、編譯原理、計算機體系結(jié)構(gòu)、操作系統(tǒng)、匯編語言、硬件電路,有時甚至還需要了解一些芯片設(shè)計、芯片制造、CPU內(nèi)部結(jié)構(gòu)等“圈外”知識。

          每一個新的知識點,每一門新的技能,市面上都有大量的經(jīng)典書籍可以參考閱讀,但每一本書都很厚,都有自己偏向的領(lǐng)域和側(cè)重點,和我們的實際工程需求往往有一定偏差,都需要花大量的時間和精力去閱讀和消化,然后才能提煉出我們在嵌入式開發(fā)中所需要的一些核心知識點和關(guān)鍵技能。

          有了這些核心知識點和關(guān)鍵技能作為理論支撐,我們就可以在嵌入式開發(fā)中更好、更快地解決各種工程問題。

          工程師都很忙,沒有大片的時間和精力去通讀各種經(jīng)典書籍,或者說很少有人能堅持讀完。

          嵌入式開發(fā)人員的專業(yè)背景各不相同,每個人的知識儲備和點亮的技能樹也參差不齊,知識體系的不完善和基礎(chǔ)技能的儲備不足,往往會影響實際工作的輸出效率,在工作和學(xué)習(xí)中會遇到各種各樣的問題無法解決,學(xué)習(xí)陷入困境,或者工作陷入卡殼。

          那有沒有更好的方法,快速掌握這些嵌入式開發(fā)所需要的核心知識點和關(guān)鍵技能呢?

          答案是:有。

          基于這個現(xiàn)實需求,《嵌入式C語言自我修養(yǎng):從芯片、編譯器到操作系統(tǒng)》出版了。

          作者基于自己的嵌入式學(xué)習(xí)經(jīng)歷和工作經(jīng)驗總結(jié),從最底層的一堆沙子開始,一步一步,帶領(lǐng)大家學(xué)習(xí)CPU芯片是如何設(shè)計和制造出來的:

          • CPU內(nèi)部結(jié)構(gòu)是什么樣的?

          • CPU是如何工作的?

          • 編譯器和指令集的作用是什么?

          • 一個程序的編譯、鏈接、安裝和運行的過程是怎么樣的?

          • 程序運行時的內(nèi)存世界是什么樣的?

          • 為什么會有內(nèi)存錯誤?

          • 棧溢出攻擊是怎么回事?

          • 如何才能真正地理解和掌握C語言?

          • 為什么很多人在閱讀Linux內(nèi)核源碼時感到很吃力,看不懂?

          • 非計算機科班的朋友如何快速掌握操作系統(tǒng)的核心原理和概念?

          • 如何快速理解多任務(wù)編程思想?

          • 進(jìn)程、線程和協(xié)程有什么區(qū)別?

          這些疑問在書中都會一一講解。

          寫作初衷

          本書的寫作初衷,主要是為不同專業(yè)背景的嵌入式學(xué)員彌補理論短板:以C語言為切入點,從最底層的芯片開始,到編譯器、操作系統(tǒng)、軟件工程、系統(tǒng)框架、進(jìn)程、線程、協(xié)程,搭建一個嵌入式開發(fā)所需要的完整知識體系和認(rèn)知框架。

          平衡理論與工程
          本書不會像經(jīng)典書籍那樣面面俱到,深入每一個細(xì)節(jié),而是有的放矢,在理論和工程之間做一個平衡,一切都剛剛好一切以滿足實際工程需要為參考點,所有學(xué)習(xí)的知識點滿足實際項目所需要的理論支撐即可,不會深入到學(xué)院派關(guān)注的各種細(xì)節(jié)和性能指標(biāo),以免深入其中無法自拔,耗費太多的時間。

          掌握了這些實際開發(fā)中需要的核心知識點和關(guān)鍵技能,也就補齊了理論短板。

          此時,相信大家也會對嵌入式開發(fā)有一個更加清晰的整體認(rèn)識,在工作中遇到各種問題,都可以嘗試用這個知識體系和認(rèn)知框架去分析和解決,分析問題有了著力點,也就有了思路,也就不再迷茫。

          通俗風(fēng)趣
          相比其他書籍,本書堅持使用大白話寫作,通俗易懂,不怕學(xué)不會,就怕你不學(xué)。

          使用風(fēng)趣幽默的寫作風(fēng)格,以增強閱讀體驗,越讀越想讀,無論讀多久都不會覺得枯燥。

          內(nèi)容新穎
          在本書內(nèi)容安排上,做了很多嘗試性創(chuàng)新,比如:
          • 獨家講解GNU C編譯器擴展語法,幫你破解閱讀Linux內(nèi)核源碼時遇到的各種稀奇古怪的語法難題。

          • 首次在ARM平臺下,通過反匯編,帶你理解C語言背后的底層運行機制,深度講解程序的編譯、鏈接、安裝和運行原理,深度講解程序運行時的動態(tài)內(nèi)存管理、內(nèi)存泄漏、棧溢出攻擊示例等。

          • 結(jié)合嵌入式開發(fā)常用的三種場景:裸機環(huán)境、RTOS、Linux,幫助大家去分析和總結(jié)這三種場景下的內(nèi)存管理,讓你一覽整個嵌入式開發(fā)環(huán)境概貌。

          • 針對當(dāng)前火熱的人工智能、AIoT、異構(gòu)計算等熱門技術(shù),從一堆沙子開始,一步一步帶你了解整個CPU芯片設(shè)計、制造、封裝流程,CPU內(nèi)部結(jié)構(gòu)及工作原理:流水線、cache、單發(fā)射、多發(fā)射、亂序執(zhí)行,SIMD、NEON、多核、異構(gòu)...

          • 針對Linux內(nèi)核驅(qū)動閱讀難題,在本書中也分享了C語言的OOP編程思想,教你如何使用C語言來實現(xiàn)OOP編程,如何利用OOP思想去分析Linux內(nèi)核中復(fù)雜的驅(qū)動和子系統(tǒng)。

          • 針對電子類、自動化類等跨行進(jìn)入嵌入式專業(yè)的朋友,零基礎(chǔ)入門操作系統(tǒng)的核心概念,教你如何在裸機環(huán)境下使用多任務(wù)思想編程,如何使用狀態(tài)機進(jìn)行任務(wù)分解,以及RTOS任務(wù)調(diào)度的核心數(shù)據(jù)結(jié)構(gòu)。讓你不需要去啃大塊頭的《操作系統(tǒng)》書籍,直接切入操作系統(tǒng)最核心的知識點。

          • 重點分享C語言的模塊化編程思想,從零開始,從一個單文件開始,一步一步教你如何去封裝一個模塊,如何去使用一個模塊,如何模塊間通信,如何建立模塊依賴,軟件如何分層,模塊如何解耦,如何將你的軟件迭代為框架,幫你樹立軟件工程的意識,框架編程思想,讓你寫的代碼更加容易擴展和維護(hù)。

          • ARM架構(gòu)越來越流行,在手機、平板、桌面PC和服務(wù)器領(lǐng)域攻城拔地,市場份額越來越大,而目前很多編譯原理都是基于X86架構(gòu)來分析的。本書打破慣例,首次在ARM平臺上,通過反匯編手段,剔除編譯過程中各種語法分析等對嵌入式工程師無關(guān)緊要的技術(shù),給大家分享ARM平臺下程序的編譯、鏈接、安裝、運行全景圖,尤其是動態(tài)鏈接過程、多進(jìn)程如何共享動態(tài)庫、內(nèi)核模塊是如何動態(tài)加載和運行的、U-boot是如何自舉并重定位的,這些嵌入式開發(fā)中經(jīng)常遇到的核心知識點和難點,會帶領(lǐng)大家逐一分析。
          口碑之作
          本書的大部分內(nèi)容基于作者幾年前錄制的、專門為嵌入式工程師打造的C語言視頻教程:C語言嵌入式Linux高級編程改編。

          結(jié)合幾千名學(xué)員的中肯評價和不斷反饋,幾經(jīng)修改,不斷優(yōu)化結(jié)構(gòu)和內(nèi)容安排,紙質(zhì)版如今才得以和大家見面。

          全書正文560+頁,加上目錄、前言等,差不多600頁,握在手上,沉甸甸的,全是干貨。寫書是枯燥的,耗時的,幾經(jīng)拖延,幾經(jīng)修改,最后還是跟大家見面了,用口碑和信念做編程教育,致力于分享最原汁原味的技術(shù)和干貨知識,幾千名學(xué)員的中肯反饋和積極評價是最讓人欣慰的,也是這本書質(zhì)量的保障。

          愿這本書也能為你的嵌入式學(xué)習(xí)盡一份力,為你的嵌入式職場生涯增磚添瓦。



          ▊《嵌入式C語言自我修養(yǎng)——從芯片、編譯器到操作系統(tǒng)

          王利濤 著


          • AIoT時代嵌入式開發(fā)集大成之作

          • 10年工作及培訓(xùn)總結(jié)

          • 從芯片編譯器到操作系統(tǒng)等嵌入式開發(fā)所需核心理論和技能一應(yīng)俱全

          • 51CTO/CSDN/淘寶/QQ學(xué)員力薦

          本書是一本專門為嵌入式讀者打造的C語言進(jìn)階學(xué)習(xí)圖書。本書的學(xué)習(xí)重點不再是C語言的基本語法,而是和嵌入式、C語言相關(guān)的一系列知識。作者以C語言為切入點,分別探討了嵌入式開發(fā)所需要的諸多核心理論和技能,力圖幫助讀者從零搭建嵌入式開發(fā)所需要的完整知識體系和技能樹。

          (掃碼查看本書詳情)





          如果喜歡本文
          歡迎 在看留言分享至朋友圈 三連


           熱文推薦  





          ▼點擊閱讀原文,查看本書詳情~
          瀏覽 19
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  影音先锋琪琪色 | 熟妇一区二区 | 黄色一级视频在线观看 | 久久国内综合视频 | 影音先锋男人资源网站 |