一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

嵌入式開發(fā)如何快速進階?有捷徑?

小麥大叔 ? 來源:小麥大叔 ? 2023-08-16 15:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式軟件開發(fā)有沒有什么捷徑?不定期會收到類似的問題,我只想說:嵌入式軟件開發(fā)沒有捷徑

說實話,有這種想法的人,我其實想勸你放棄。對于絕大多數(shù)普通人,一步一個腳印就是捷徑。

當然,這個問題可以換個方式問,比如:如何才能提升自己編程水平?或者:如何提升自己技能?

對于大部分人,特別是初學者,我覺得應該從兩個方面提升自己技能:

1.多參考、多閱讀優(yōu)秀的開源代碼;

2.多實踐,動手敲代碼;

為啥要參考別人的代碼?

你要相信,這個世界上大部分人都是普通人,你的寫代碼的很多想法別人都已經(jīng)想過,而且實踐驗證過。

最終能保留下來的,而且運用在優(yōu)秀開源項目中的代碼,這種代碼就具有參考價值。

肯定有人會反駁,認為**代碼很La圾,自己寫的代碼肯定比**代碼要好。有這種想法的人,往往自己很菜,卻非要認為自己很牛逼。

當然,不排除有那種確實很牛逼的人,但這種人又有多少呢,反正我自認為我是一個普通人,我要向優(yōu)秀的人學習的地方還有很多。

何為優(yōu)秀的代碼?

何為優(yōu)秀的代碼?可能每個人的定義不同,每個人的側(cè)重點也不同。

易讀易懂、結(jié)構(gòu)清晰、邏輯清晰、方便移植......等等包含了所有優(yōu)點的代碼,就是優(yōu)秀的代碼?我覺得不是!

人無完人,代碼也肯定多少都存在“瑕疵”,或者說多少存在有你認為不滿意的地方。

我認為優(yōu)秀的代碼,首先,它能被許多人使用,并運用在許多成功的項目中。比如:一套控制算法代碼,能成功應用在機械臂、機器人、無人機等項目中,它就是優(yōu)秀的代碼。

其次,它具有優(yōu)秀代碼的一些基本特性,比如上面說的易讀易懂、代碼清晰、方便移植等。

這種對于學習者不排斥的代碼也算得上優(yōu)秀的代碼,比如:一個模塊的驅(qū)動程序、一套串口通信協(xié)議。

再次,就是代碼更多細節(jié),比如:代碼排版格式、注釋、命名等。

哪里有優(yōu)秀的代碼?

我覺得程序員不應該問這樣的問題。我反過來問你吧,你看大家一般把代碼開源在什么地方?

當然是代碼托管的網(wǎng)站啊,GitHub是目前世界上最大的代碼托管平臺:

https://github.com/

當然,除了GitHub之外,還有國內(nèi)的Gitee代碼托管平臺:

https://gitee.com/

這倆代碼托管平臺眾多大公司都在上面貢獻了優(yōu)秀的代碼,微軟、谷歌、騰訊、阿里這些公司都有代碼庫。

同時,你會發(fā)現(xiàn)平時我們使用的一些開源代碼,在GitHub平臺上都有。比如:RTOS內(nèi)核及組件、MCU廠家驅(qū)動代碼、通信協(xié)議等源代碼。

多動手寫代碼

實踐是檢驗真理的唯一標準,這句話相信大家都聽說過。

如果只看書不動手敲代碼就能掌握程序開發(fā),你覺得這個程序員能寫出好的代碼嗎?很多人基礎(chǔ)理論很不錯,但實踐操作起來各種問題、各種不懂。

比如下面這樣寫:

if(i = 1)
{
//...
}

你可能認為是對的,編譯也是對的,但實際這代碼有bug。

編程是一個很注重實踐的工作,因為現(xiàn)實中存在各種不確定的因素,比如:你寫的函數(shù),有可能因為傳入的參數(shù)過大導致內(nèi)存溢出。

代碼寫出來了還不算有本事,編譯0警告0錯誤,并成功運行起來,你學的理論知識才發(fā)揮了作用。

編程習慣

這里說的多動手寫代碼,不只是為了寫代碼而寫代碼,寫代碼的同時,要培養(yǎng)良好的編程習慣。

如果養(yǎng)成了不良的編程習慣,后期改變可能很難。

比如函數(shù)、變量以“中文字母”方式命名:

int DianYa;


intCaiJiDianYa(void);

還比如:不寫注釋、源代碼不分類、命名混亂等。

很多人初學的時候可能都沒有意識,想到什么就寫什么,所有功能在main中就實現(xiàn)了。

這里就要回到上面的內(nèi)容,多參考別人優(yōu)秀的代碼。當然,不同階段參考的代碼不同,初學者可以參考一些基礎(chǔ)教程配套的代碼,有工作經(jīng)驗的工程師應該多參看成功項目的源代碼。

看看別人怎樣命名、怎么寫注釋、怎么將代碼分類等。

編程思維

做小項目時,可能幾百行代碼,一個main就搞定了,這時你可能覺得編程思維不重要好。

但項目做大了,你就會發(fā)現(xiàn)以小項目的編程方式不能完成了,這個時候就要考慮軟件架構(gòu)、結(jié)構(gòu)化、模塊化了。

對于初學者來說,一下就要掌握軟件架構(gòu)、模塊化設計可能有點難,但是,可以慢慢培養(yǎng)自己的編程思維。

舉一個簡單的模塊化的例子,你做一個小車,你把“運動部分的代碼歸為一類(模塊化),對應的文件命名可以為bsp_motion,app_motion,函數(shù)命名為 Motion_xxx 等。

當然,還有很多地方,你可以都歸類為 Motion,比如:

#define MOTION_PWM_TIMx              TIM9
#define MOTION_PWM_TIM_CLK           RCC_APB2Periph_TIM9
#define MOTION_PWM_TIM_GPIO_CLK      RCC_AHB1Periph_GPIOE
#define MOTION_PWM_TIM_PIN           GPIO_Pin_5
#define MOTION_PWM_TIM_GPIO_PORT     GPIOE
#define MOTION_PWM_TIM_SOURCE        GPIO_PinSource5
#define MOTION_PWM_TIM_AF            GPIO_AF_TIM9
#define MOTION_PWM_TIM_OCxInit       TIM_OC1Init
#define MOTION_PWM_TIM_SetComparex   TIM_SetCompare1
#define MOTION_PWM_COUNTER_CLOCK     10000000

其實,說的再多,看的再多,不如自己行動起來敲代碼,過程中你肯定會遇到各種各樣的問題。

你用心解決這些問題的過程,就是你成長的過程 最后,如何證明你編碼水平提升了?答:回看自己以前代碼,如果覺得爛,那就說明你提升了。

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

    關(guān)注

    18

    文章

    1075

    瀏覽量

    48853
  • 模塊化
    +關(guān)注

    關(guān)注

    0

    文章

    340

    瀏覽量

    21984
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70694

原文標題:嵌入式開發(fā)如何快速進階?有捷徑?

文章出處:【微信號:knifewheat,微信公眾號:小麥大叔】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    嵌入式開發(fā)入門指南:從零開始學習嵌入式

    隨著物聯(lián)網(wǎng)、智能硬件的發(fā)展,嵌入式開發(fā)成為熱門技能之一。以下將為初學者提供一份詳細的嵌入式開發(fā)入門指南,涵蓋學習路徑、必備工具、推薦資源等內(nèi)容。 1. 嵌入式系統(tǒng)的定義與應用嵌入式系統(tǒng)
    發(fā)表于 05-15 09:29

    嵌入式開發(fā):高門檻的系統(tǒng)性工程與 996 的行業(yè)困局

    嵌入式開發(fā)的門檻,往往被培訓機構(gòu)和表象所掩蓋。許多人誤以為 “用 C 語言寫個跑在 ARM 上的程序” 就是嵌入式,實則連皮毛都未觸及。真正的嵌入式開發(fā)是硬件與軟件深度融合的系統(tǒng)性工程,需跨越三重壁壘
    的頭像 發(fā)表于 04-09 11:06 ?337次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>:高門檻的系統(tǒng)性工程與 996 的行業(yè)困局

    2025年嵌入式開發(fā)趨勢:新技術(shù)如何影響你的工作?

    嵌入式開發(fā)的世界正在快速變化,新技術(shù)的崛起正悄然改變硬件設計、軟件架構(gòu)以及開發(fā)方式。無論你是剛?cè)腴T的新手,還是經(jīng)驗豐富的工程師,理解這些趨勢不僅能幫助你應對技術(shù)變革,還能在職業(yè)發(fā)展中占據(jù)主動
    的頭像 發(fā)表于 03-14 17:36 ?1516次閱讀
    2025年<b class='flag-5'>嵌入式開發(fā)</b>趨勢:新技術(shù)如何影響你的工作?

    BlackBerry QNX推出通用嵌入式開發(fā)平臺

    BlackBerry有限公司(紐交所代碼:BB;多倫多證券交易所代碼:BB)旗下部門QNX今日宣布推出QNX 通用嵌入式開發(fā)平臺(General Embedded Development
    的頭像 發(fā)表于 03-11 16:04 ?622次閱讀

    AI來襲!嵌入式開發(fā)者該如何應對轉(zhuǎn)型?

    AI正在改變世界!從自動駕駛到智能家居,從工業(yè)自動化到語音助手,各行各業(yè)都在朝著智能化方向邁進。對于嵌入式開發(fā)者來說,AI的到來既是一次前所未有的挑戰(zhàn),也是一個充滿機遇的時代。過去,我們專注于硬件
    的頭像 發(fā)表于 03-04 14:41 ?817次閱讀
    AI來襲!<b class='flag-5'>嵌入式開發(fā)</b>者該如何應對轉(zhuǎn)型?

    代碼+案例+生態(tài):武漢芯源半導體CW32嵌入式開發(fā)實戰(zhàn)正式出版

    尊敬的各位電子工程師、嵌入式開發(fā)愛好者們:大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布一個重大喜訊——武漢芯源半導體的單片機CW32正式出書啦!《基于ARMCortex-M0+的CW32
    的頭像 發(fā)表于 03-03 15:15 ?684次閱讀
    代碼+案例+生態(tài):武漢芯源半導體CW32<b class='flag-5'>嵌入式開發(fā)</b>實戰(zhàn)正式出版

    代碼+案例+生態(tài):武漢芯源半導體CW32嵌入式開發(fā)實戰(zhàn)正式出版

    快速掌握 CW32 單片機的開發(fā)技能。 我們相信,這本書的出版將為 CW32 單片機的推廣和應用起到積極的推動作用,也將進一步促進嵌入式開發(fā)領(lǐng)域的技術(shù)交流與發(fā)展。我們希望廣大開發(fā)者能
    發(fā)表于 03-03 15:14

    哪些專業(yè)適合學習嵌入式開發(fā)?

    哪些專業(yè)適合學習嵌入式開發(fā)? 在傳統(tǒng)行業(yè)不斷被取代的當下,對于大學生、從業(yè)者而言,選擇一個熱門主流的職業(yè)方向,是未來發(fā)展的關(guān)鍵因素之一。 嵌入式作為當下高薪崗位之一,轉(zhuǎn)行、轉(zhuǎn)專業(yè)的人群已經(jīng)占據(jù)求職
    發(fā)表于 01-03 13:44

    嵌入式開發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢命令(上)觸覺智能出品

    實用干貨!嵌入式開發(fā)學習必備-RK3562演示Linux常用系統(tǒng)查詢命令(上)關(guān)注觸覺智能持續(xù)為大家?guī)砀?b class='flag-5'>嵌入式開發(fā)內(nèi)容
    的頭像 發(fā)表于 12-31 10:51 ?117次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>必備-RK3562演示Linux常用系統(tǒng)查詢命令(上)觸覺智能出品

    如何使用 RISC-V 進行嵌入式開發(fā)

    、準備開發(fā)環(huán)境 選擇開發(fā)板 :RISC-V架構(gòu)的嵌入式開發(fā)多種選擇,如GD32VF103R-START、飛凌嵌入式OK113i-S等。選
    的頭像 發(fā)表于 12-11 17:32 ?1934次閱讀

    基于Xilinx ZYNQ7000 FPGA嵌入式開發(fā)實戰(zhàn)指南

    電子發(fā)燒友網(wǎng)站提供《基于Xilinx ZYNQ7000 FPGA嵌入式開發(fā)實戰(zhàn)指南.pdf》資料免費下載
    發(fā)表于 12-10 15:31 ?37次下載

    零基礎(chǔ)嵌入式開發(fā)學習路線

    嵌入式開發(fā)”沒有接觸過的同學可能會不明覺厲,但是只要你了解了,感興趣并且有一個正確的學習路線的話,零基礎(chǔ)也能入門。給大家介紹一個簡單易懂的學習路線,讓你能夠從零開始學習嵌入式開發(fā)。 第一步:掌握
    發(fā)表于 10-25 15:55

    嵌入式開發(fā)常見問題排查

    嵌入式開發(fā)問題排查很多人認為嵌入式開發(fā)很難,主要是因為在這個過程中常常會遇到各式各樣的問題。這些問題的復雜性和多樣性使得許多人感到困惑和無所適從。然而,如果將這些問題逐一拆解,實際上大部分都可以
    的頭像 發(fā)表于 09-22 08:04 ?824次閱讀
    <b class='flag-5'>嵌入式開發(fā)</b>常見問題排查

    嵌入式linux開發(fā)的基本步驟哪些?

    之前,首先需要選擇合適的硬件平臺。硬件選擇需要考慮以下幾個方面: 1.1 處理器 嵌入式Linux開發(fā)需要一個處理器,常見的處理器ARM、MIPS、PowerPC等。選擇處理器時,需要考慮處理器的性能、功耗、成本等因素。 1.
    的頭像 發(fā)表于 09-02 09:11 ?1233次閱讀

    聚焦嵌入式開發(fā)中的合規(guī)性工具、項目管理工具、版本迭代工具應用

    日前,龍智攜嵌入式開發(fā)及管理解決方案亮相2024上海國際嵌入式展(embedded world China 2024)。展會期間,我們對話了多位龍智資深DevSecOps顧問及技術(shù)支持專家
    的頭像 發(fā)表于 07-29 15:15 ?1078次閱讀