日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从零学习嵌入式

發布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零学习嵌入式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從零學習嵌入式

作為一個非科班出身,目前從事嵌入式軟件編程的小菜鳥,本博客(專欄)將記錄并分享自己從零開始學習嵌入式的經歷。包括但不限于技術分享類博文、代碼分享類博文、編程感悟類博文以及學習性博文。
也許有人問了,你寫的東西有什么價值呢?我會說,有沒有價值不知道,但是如果能夠記錄自己在學習以及工作中針對嵌入式編程所遇到的問題,并且能夠給出一個系統的解決方案,我相信對自己還是有用的。
從零學習嵌入式,將從真正的零開始,把自己從一個門外漢到現在的所學所感分享出來,希望有人看,希望能夠幫到別人。

一、 跨專業找工作

在學校的時候學的是機械專業,當然大學課程會有一些和程序以及電路相關的,但是,和大多數的同學們一樣,大學課程只是為了求個及格,并不了解真正的編程含義,甚至可以說,連編程的門都沒有進。后來機緣巧合讀了研究生,學的也非編程,但是會用到一些數據處理的程序,有時候的一些小的算法需要自己編寫。研究生期間用的是MATLAB和LabVIEW,相信工科的同學們都知道這兩個軟件,他有著強大的數據處理和運算能力,但是,不管是語法還是編程思想,MATLAB的編程自己并不感興趣,因為我在這個平臺上做的最多的就是寥寥幾行的數據處理語句,大多數的時間停留在做實驗和獲取實驗數據上,所以,不管是本科還是研究生,自己對嵌入式的理解幾乎為零,更別提對C語言的理解,僅僅停留在C語言必須要有一個main()作為起始語句這個層面。
研究生畢業找工作時,同學們許多都找了對口的工作,有的去了國企,有的去了航天院,站在人生的十字路口,我也面臨著抉擇。
機械行業的枯燥讓我不想從事相關的工作,國企央企的加班和工作氛圍也讓我有些抗拒,其實那時候最想去的是外企,雖然自己的英語不能說很好,但是至少六級過了,當時自己幻想的自己還是去一家外企。可是找了幾家外企發現自己的能力達不到別人家的要求,最后作罷。
當時給自己定的方向是,第一不找機械相關工作,第二找和編程相關工作,雖然自己當時的編程能力水平可以說不高,但是自己還是一門心思想往這個行業鉆。后來機緣巧合投了一家做嵌入式軟件開發的公司,面試的時候并沒有針對技術做很強的面試,自己竟然順利通過,而且公司給的待遇也很好,自己糾結了幾天,最后欣然簽約。畢業去了這家公司,隨后便開始了一個門外漢在一家公司一遍學習一邊做項目一邊受鄙視的苦逼工作生涯。

一句話,跨專業找工作有風險。要能抗壓,也要能受鄙視。

二、 C語言初入門

現在我在用Markdown編輯器寫博文,如果自己沒有從事編程行業,或許自己現在正坐在辦公室了加著班,用著Solidworks在畫著3D零件圖,自己或許永遠也不會知道有Markdown這種編輯器可以使用,而且如此方便。

剛工作第一天,老同事扔給我一個項目工程,讓我熟悉。花了半天的時間安裝開發環境。記得當時同事問我,你電腦上有XX IDE么,我腦袋一蒙,IDE什么意思,但是自己沒有好意思問,怕露怯。隨口說了一句沒有。他說那等會我給你發一個,順便把工程發給你你先熟悉一下。

做回自己工位,打開百度,第一件事輸入”IDE什么意思”。

集成開發環境(IDE,Integrated Development Environment )是用于提供程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面等工具。集成了代碼編寫功能、分析功能、編譯功能、調試功能等一體化的開發軟件服務套。所有具備這一特性的軟件或者軟件套(組)都可以叫集成開發環境。如微軟的Visual Studio系列,Borland的C++ Builder、Delphi系列等。該程序可以獨立運行,也可以和其它程序并用。IDE多被用于開發HTML應用軟件。例如,許多人在設計網站時使用IDE(如HomeSite、DreamWeaver等),因為很多項任務會自動生成。

看到這,心里舒了一口氣,原來就是開發程序的軟件啊,這把我嚇了一跳,要不要這么欺負新人?

可見自己當時對于嵌入式的理解,完全為零。這之后,每次聽到同事們說起一個新的名詞,自己都會默默地記下來,然后找個時間去問度娘。多虧了百度,讓我慢慢的明白了什么是內存泄漏、仲裁機制、上拉電阻、開漏輸出、大小端存儲、堆、棧等等等等的專有名詞,自己也慢慢的有信心和同事們討論代碼及其運行機理。這是后話。

打開項目工程的第一件事,自己便是瀏覽代碼,天哪,這是天書啊!這都是啥意思?

花了半個小時,找到了main(),可是為啥別的文件中也有個main()函數,不是說一個工程中只能有一個main()的么?

看到 (void*)這種代碼,自己便開始懷疑自己大學學沒學過C語言。
看到 recive->buf這種代碼,自己開始懷疑自己選擇嵌入式有沒有錯。
看到#pargam location = 0x00001000這種代碼,自己開始懷疑人生。

對著電腦工程,苦逼學習了半個月,期間不停地問同事,指針什么意思,環形緩沖啥意思。剛開始同事很耐心的講解,后來同事不耐煩了,自己去去查吧!

好,查就查,誰怕誰。

一邊學習項目背景,一邊學習C語言知識,一邊查資料。

就這樣,對嵌入式一竅不懂的我,跌跌撞撞奔著嵌入式的門走了過去,雖然已經現在也不敢說自己已經入門,但是自己感覺已經比之前更有信心,面對不懂得東西也更加從容。

對了,從畢業到現在,跌跌撞撞一年了。所以自己打算開通CSDN的博客,記錄自己學習嵌入式的經歷。

算起來,從剛開始到現在,自己接觸到的項目中,第一個是做純應用程序的編寫,實際上一小塊代碼,并不難,難得是項目背景的原理。對我影響最大的是后來學習并維護一款國產8位單片機的過程,以及在該單片機上編寫BootLoader用于升級的經歷,因為感覺正是這個過程,使自己真正觸碰到了嵌入式的門檻,也正是因為有了這個經歷,讓我在后來的切換ARM 內核編寫BootLoader時特別有信心,而且事實證明,自己有信心是正確的。

從零學習嵌入式這個專欄,自己打算根據自己這一年的項目經歷以及學習到的知識,從以下幾個方面慢慢講起。當然,自己畢竟經驗和知識有限,所寫內容不可避免出現紕漏,還望發現的童鞋積極指正,我們一起進步。

從零學習嵌入式(目錄)

本專欄主要包括以下知識點。

  • 結構體與聯合體
  • 指針與內存地址
    -函數指針及其應用
    -指針傳遞
  • 預編譯及相關代碼
    -#Pargam 語句
    -#define 語句
  • 定時器
  • 寄存器
  • 堆棧
    -芯片內存分配機制
    -堆區和棧區
  • 單片機組成原理
    -CPU
    -外設
    -串口通信
    -645協議
    -485總線
  • Bootloader升級原理
  • BootLoader代碼段分享

暫時想到這么多,以后會根據自己遇到的實際情況追加新的內容。

總結

以上是生活随笔為你收集整理的从零学习嵌入式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。