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

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

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

學(xué)習(xí)編程時最常見的問題:如何盡可能有效地處理新信息,如何保持動力

lPCU_elecfans ? 來源:未知 ? 作者:李倩 ? 2018-07-31 10:55 ? 次閱讀

學(xué)習(xí)一直都是不容易的,在工程師的世界里可能是更加的需要我們付出時間和精力。而學(xué)習(xí)能力在現(xiàn)在這個時代又是顯得十分的重要,相信許多燒友們對編程的學(xué)習(xí)也是十分感興趣的,或者正在學(xué)習(xí)的過程中。所有小編今天特別整理了一份滿滿的干貨給到小伙伴們學(xué)習(xí)和借鑒。

我知道現(xiàn)在有成千上萬的資源可以“教你如何編碼”。但是,這絕對不是這里最重要的部分,也不是這篇文章的主題。重要的是你如何建立起良好的學(xué)習(xí)習(xí)慣,如何更好的吸收處理新知識,時刻保持自己的學(xué)習(xí)動力,并把注意力放在核心問題上。

如果你愿意遠(yuǎn)離你的舒適區(qū)!你一定會為學(xué)習(xí)到新知識而感到興奮,并且能獲得優(yōu)越感,久而久之,你也一定會成為一名優(yōu)秀的開發(fā)者

我已經(jīng)有多年的執(zhí)教經(jīng)驗(yàn),當(dāng)我的學(xué)生告訴我他們沒有動力的時候,我經(jīng)??吹揭环N現(xiàn)象,他們只執(zhí)著于最終的大目標(biāo),而忽視了每一次小小的進(jìn)步,這讓他們始終覺得離目標(biāo)很遠(yuǎn),從而導(dǎo)致挫敗感。當(dāng)我剛開始學(xué)編程的時候也有同樣的想法,不斷的和身邊的人對比,覺得他們比我優(yōu)秀太多,我永遠(yuǎn)無法達(dá)到我要的高度。

正是一直存在這樣的想法,往往忽視了自己做出的努力,即便自己輕松創(chuàng)建出一個比之前復(fù)雜的應(yīng)用程序時,也不會有成就感,因?yàn)樾睦镆恢背两诤透薪?jīng)驗(yàn)的開發(fā)者的比較中。

學(xué)習(xí)如何編程是最困難的,每個人都在努力克服。本文會把重心放在學(xué)習(xí)編程時最常見的問題上:如何盡可能有效地處理新信息,如何保持動力。

有效地處理新信息

每個人吸收新知識的方式不同,所以,在開始學(xué)習(xí)代碼之前,你首先要做的就是先學(xué)習(xí)如何學(xué)習(xí)。

很快你就會發(fā)現(xiàn),最常見的兩種學(xué)習(xí)資源就是:在線課程和語言文檔。除超人類的天才外,是沒人能夠在只看課程/讀純文本的情況下還能記住所有知識點(diǎn),所以每當(dāng)你在看視頻課程或閱讀文檔時,感到迷茫和困惑是完全正常的,畢竟對于沒有太多知識的人來說,通過一些極客術(shù)語來理解代碼是蠻難的。

無論你覺得自己有多優(yōu)秀都不要忽略基礎(chǔ)知識,開始學(xué)一門語言的時候不要跳過任何一個細(xì)節(jié),如果你一開始不注意的話,會后悔的。即便是閱讀文檔,也請從第一頁開始閱讀,相信我:注意細(xì)節(jié),過后會感謝今天的你。

教學(xué)是最好的學(xué)習(xí)方式,是每隔10分鐘,就停下來用自己的話解釋一下你剛剛所學(xué)到的東西,即便周圍沒有人,你可能會覺得做起來十分困難,但這種做法可以讓你立刻知道自己還不了解的知識點(diǎn)有哪些,你可以及時鞏固研究,就記下來,通過實(shí)踐編碼,會讓你記憶的更加簡單深刻。

不要只聽課程和閱讀文檔,你還應(yīng)通過積極參加創(chuàng)建自己的個人項(xiàng)目,把你所學(xué)的每一個新的知識點(diǎn)都運(yùn)用上來,這聽起來似乎也不是那么簡單,但你只要一直堅(jiān)持,你一定可以提高你的編程技能。

保持動力

很多人問我日常生活中如何讓自己編寫出這么多代碼,思考了很久之后,得出以下答案:

每個人否喜歡玩游戲,不論什么類型的游戲,因?yàn)橛螒蚩梢詭Ыo你即時的滿足感,這就是動機(jī)成因,通過編程,我也獲得到了滿足感,但編程不是游戲,沒有你想象中的容易。

設(shè)立小目標(biāo),不是因?yàn)槟悴凰歼M(jìn)取,而是因?yàn)槟悴蛔⒅馗纳?,做一個當(dāng)天完成的事情待辦列表:也許只是讀一頁,或者只看一個課程更或者只是編寫10行代碼,看到自己完成整個待辦事項(xiàng)清單,你會獲得滿足感,對自己的進(jìn)步更有信心?!拔乙呀?jīng)完成了今天的目標(biāo)任務(wù)”比“我只完成了2%的課程”要好得多,及時行樂是很重要的。

不斷提醒自己,你已經(jīng)走了多遠(yuǎn)。這一點(diǎn)經(jīng)常被忽視,你不會意識到自己每天都在進(jìn)步,但相信我,你只要每天都編碼(哪怕一點(diǎn)點(diǎn)),你也會越來越好。所以最好的方法是寫日記,每天用一句話來記錄自己的困惑,一個月后再回頭看看,你可以看到自己正在變得更好。

在你真正感興趣的個人項(xiàng)目上編程,這里不包含在待辦事項(xiàng)列表中,而是你真正想要建立的項(xiàng)目,也不要想到自動駕駛汽車、機(jī)器人等等這些龐大的項(xiàng)目,可以選擇一些小項(xiàng)目,比如創(chuàng)建一個網(wǎng)站或者一個小型游戲,這種項(xiàng)目會讓你更有動力去完成它,一旦項(xiàng)目完成,你就會有成就感。

意識到自己比想象中要優(yōu)秀。你可能會覺得你身邊的每個人知道的東西都比你多的多,這也被稱為冒名頂替者綜合征。但事實(shí)并非如此,只要你有足夠的學(xué)習(xí)動力、足夠努力地編碼,你一定可以可以成為一名優(yōu)秀的開發(fā)人員。

要時刻牢記的事

不要和其他開發(fā)者對比。非常老套的建議,但這是至關(guān)重要的。你比你想象中的進(jìn)步更快。我下面這張照片,如果在4個月前看到這些屏幕中的代碼,我會感到害怕的。但現(xiàn)在我完全可以找出這里面犯了多少錯誤

你比你想象的要進(jìn)步得多。每一次學(xué)習(xí)或編碼,你都在成長。

每個人一開始都很迷茫,大家都是一樣的,但這并不意味著你會成為一個糟糕的程序員。你現(xiàn)在的想法只是學(xué)習(xí)過程的一部分。不久,你會回頭看看這時的你,你一定會認(rèn)同我說的!

最后如果可以,試著找一位導(dǎo)師。通過向其求教相信更有助于你克服問題并獲得新的啟發(fā)。

好的,講了這么多理論學(xué)習(xí)編程語言的方法,下面我們來講講如何學(xué)習(xí)STM32呢?

首先,在學(xué)習(xí)Cortex-M3時,我們必須要知道必要的縮略語。

整理如下:

AMBA:先進(jìn)單片機(jī)總線架構(gòu) ADK:AMBA設(shè)計套件AHB:先進(jìn)高性能總線 AHB-AP:AHB訪問端口APB:先進(jìn)外設(shè)總線 ARM ARM:ARM架構(gòu)參考手冊ASIC:行業(yè)領(lǐng)域?qū)S?a target="_blank">集成電路 ATB :先進(jìn)跟蹤總線

BE8:字節(jié)不變式大端模式 CPI:每條指令的周期數(shù)

DAP:調(diào)試訪問端口 DSP數(shù)字信號處理(器)DWT:數(shù)據(jù)觀察點(diǎn)及跟蹤 ETM:嵌入式跟蹤宏單元FPB:閃存地址重載及斷點(diǎn) FSR:fault狀態(tài)寄存器

HTM:Core Sight AHB跟蹤宏單元ICE:在線仿真器 IDE:集成開發(fā)環(huán)境

IRQ:中斷請求(通常是外中斷請求)ISA:指令系統(tǒng)架構(gòu) ISR:中斷服務(wù)例程ITM:儀器化跟蹤宏單元

JTAG:連接點(diǎn)測試行動組(一個關(guān)于測試和調(diào)試接口的標(biāo)準(zhǔn))LR:連接寄存器

LSB:最低有效位

MSB:最高有效位LSU:加載存儲單元MCU微控制器單元

MPU:存儲器保護(hù)單元

MMU:存儲器管理單元MSP:主堆棧指針NMI:不可屏蔽中斷NVIC:嵌套向量中斷控制器PC:程序計數(shù)器PPB:私有外設(shè)總線

Cortex-M3芯片簡介

1、芯片的基本結(jié)構(gòu)如下圖

2、關(guān)于ARMv7的知識了解

在這個版本中,內(nèi)核架構(gòu)首次從單一款式變成3種款式。

款式A:設(shè)計用于高性能的“開放應(yīng)用平臺”——越來越接近電腦

款式R:用于高端的嵌入式系統(tǒng),尤其是那些帶有實(shí)時要求的——又要快又要實(shí)時。

款式M:用于深度嵌入的,單片機(jī)風(fēng)格的系統(tǒng)中。

介紹A:用于高性能的“開放應(yīng)用平臺”,應(yīng)用在那些需要運(yùn)行復(fù)雜應(yīng)用程序的處理器。支持大型嵌入式操作系統(tǒng)。

R:用于高端的嵌入式系統(tǒng),要求實(shí)時性的。

M:用于深度嵌入的、單片機(jī)風(fēng)格的系統(tǒng)中。

3、Cortex-M3處理器的舞臺

高性能+高代碼密度+小硅片面積,使得CM3大面積地成為理想的處理平臺,主要應(yīng)用在以下領(lǐng)域:

(1)低成本單片機(jī)(2)汽車電子(3)數(shù)據(jù)通信(4)工業(yè)控制(5)消費(fèi)類電子產(chǎn)品

4、Cortex-M3的簡化圖

5、寄存器組

處理器擁有R0-R15的寄存器組,其中R13最為堆棧指針SP,SP有兩個,但是同一時刻只能有一個可以看到,這就是所謂的“banked”寄存器。

a、R0-R12都是 32位通用寄存器,用于數(shù)據(jù)操作。但是注意:絕大多數(shù) 16位Thumb指令只能訪問R0-R7,而 32位 Thumb-2指令可以訪問所有寄存器。

b、Cortex-M3擁有兩個堆棧指針,然而它們是 banked,因此任一時刻只能使用其中的一個。

6、Cortex-M3的簡評

a、高性能

許多指令都是單周期的——包括乘法相關(guān)指令。并且從整體性能上,Cortex-M3比得過絕大多數(shù)其它的架構(gòu)。

指令總線和數(shù)據(jù)總線被分開,取值和訪內(nèi)可以并行不悖 。

Thumb-2的到來告別了狀態(tài)切換的舊世代,再也不需要花時間來切換于 32位 ARM狀態(tài)和16位Thumb狀態(tài)之間了。這簡化了軟件開發(fā)和代碼維護(hù),使產(chǎn)品面市更快。

Thumb-2指令集為編程帶來了更多的靈活性。許多數(shù)據(jù)操作現(xiàn)在能用更短的代碼搞定,這意味著 Cortex-M3的代碼密度更高,也就對存儲器的需求更少。

取指都按 32位處理。同一周期最多可以取出兩條指令,留下了更多的帶寬給數(shù)據(jù)傳輸。

Cortex-M3的設(shè)計允許單片機(jī)高頻運(yùn)行(現(xiàn)代半導(dǎo)體制造技術(shù)能保證 100MHz以上的速度)即使在相同的速度下運(yùn)行,CM3的每指令周期數(shù)(CPI)也更低,于是同樣的 MHz下可以做更多的工作;另一方面,也使同一個應(yīng)用在 CM3上需要更低的主頻。

b、先進(jìn)的中斷處理功能

內(nèi)建的嵌套向量中斷控制器支持240條外部中斷輸入。向量化的中斷功能大大減少了中斷延遲,因?yàn)椴辉谛枰浖ヅ袛嘀袛嘣?。中斷的嵌套也是?a target="_blank">硬件水平上實(shí)現(xiàn)的,不需要軟件代碼來實(shí)現(xiàn)。

Cortex-M3在進(jìn)入異常服務(wù)例程時,自動壓棧了 R0-R3, R12, LR, PSR 和PC,并且在返回時自動彈出它們,這多清爽!既加速了中斷的響應(yīng),也再不需要匯編語言代碼了

NVIC支持對每一路中斷設(shè)置不同的優(yōu)先級,使得中斷管理極富彈性。最粗線條的實(shí)現(xiàn)也至少要支持 8級優(yōu)先級,而且還能動態(tài)地被修改。

優(yōu)化中斷響應(yīng)還有兩招,它們分別是“咬尾中斷機(jī)制”和“晚到中斷機(jī)制”。

有些需要較多周期才能執(zhí)行完的指令,是可以被中斷-繼續(xù)的——就好比它們是一串指令一樣。

這些指令包括加載多個寄存器(LDM),存儲多個寄存器(STM),多個寄存器參與的PUSH,以及多個寄存器參與的 POP。

除非系統(tǒng)被徹底地鎖定,NMI(不可屏蔽中斷)會在收到請求的第一時間予以響應(yīng)。對很多安全-關(guān)鍵(safety-critical)的應(yīng)用,NMI都是必不可少的(如化學(xué)反應(yīng)即將失控時的緊急停機(jī))。

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

    關(guān)注

    2263

    文章

    10847

    瀏覽量

    353799
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    920

    瀏覽量

    54713
  • Cortex-M3
    +關(guān)注

    關(guān)注

    9

    文章

    269

    瀏覽量

    59384

原文標(biāo)題:想要從編程小白成為達(dá)人,這些你必須知道?。ǜ絊TM32學(xué)習(xí)指南)

文章出處:【微信號:elecfans,微信公眾號:電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    為什么會出現(xiàn)電壓降 如何實(shí)現(xiàn)盡可能低的電壓降

    高速電流波形會導(dǎo)致集成電路電壓下降。如果足夠嚴(yán)重,電壓降可能會重置微處理器或?qū)е聹y試結(jié)果出現(xiàn)異常。本文解釋了為什么會出現(xiàn)電壓降,提供了多種方法來通過選擇最佳負(fù)載引線和電源以及使用本地旁路來實(shí)現(xiàn)盡可能低的電壓降。
    發(fā)表于 02-06 10:02 ?6505次閱讀
    為什么會出現(xiàn)電壓降 如何實(shí)現(xiàn)<b class='flag-5'>盡可能</b>低的電壓降

    哪里可以買到盡可能高頻率的無線能量發(fā)射接收模塊

    哪里可以買到盡可能高頻率的無線能量發(fā)射接收模塊。哪里可以買到盡可能高頻率的無線能量發(fā)射接收模塊。哪里可以買到盡可能高頻率的無線能量發(fā)射接收模塊。哪里可以買到盡可能高頻率的無線能量發(fā)射接
    發(fā)表于 12-05 22:48

    請問哪位大神可以推薦8位PIC單片機(jī)或者16位的單片機(jī),要求端口盡可能多些的?

    請問各位,最近老師要我選個8位PIC單片機(jī)或者16位的單片機(jī),要求端口盡可能多些,我之前也沒怎么接觸過單片機(jī)這塊的內(nèi)容,感覺很棘手,他還給出了一種開發(fā)工具PICSTART-PLUS開發(fā)編程器,但是我
    發(fā)表于 07-03 03:44

    請問為什么低噪聲放大器的第一級要盡可能的放大?

    為什么低噪聲放大器的第一級要盡可能的放大?
    發(fā)表于 08-24 07:15

    如何確保盡可能高效地測試開關(guān)穩(wěn)壓器?

    問題:如何確保盡可能高效地測試開關(guān)穩(wěn)壓器?
    發(fā)表于 03-01 08:50

    STM32F756 AES加密不可能有同樣的輸出

    項(xiàng)目中需要pc端使用同樣的AES算法,密鑰和初始向量加密,但是STM32中使用跟加密協(xié)處理器配套的函數(shù),我現(xiàn)在直覺pc端的AES實(shí)現(xiàn)跟硬件端同樣輸入不可能有同樣的輸出,請問各位大神有沒有遇到這種情況怎么解決,或者哪位有pc端配套的AEScbc算法,在此謝過!
    發(fā)表于 05-21 14:33

    數(shù)據(jù)采集系統(tǒng)信號路徑中發(fā)現(xiàn)的最常見的濾波器是低通濾波器

    編程二階低通濾波器電路。在數(shù)據(jù)采集系統(tǒng)信號路徑中發(fā)現(xiàn)的最常見的濾波器是低通濾波器。這種類型的濾波器通常用于減少A / D轉(zhuǎn)換器混疊誤差。如果通過多路復(fù)用器向A / D轉(zhuǎn)換器施加多個信號,則每個信號源可能有其自己的一組濾波器要求
    發(fā)表于 08-21 08:53

    緩沖VDAC輸出損失如何盡可能的減少?

    ,但是連接后電壓不會下降到1.9V以下。JRK直接從電位器工作。我想在PSoC和控制器之間放置一個運(yùn)放來緩沖這個,但是我想盡可能少的損失,盡可能保持輸出的精確性。我需要一個DIL包,這樣我就可以剝離
    發(fā)表于 10-08 12:43

    是否有任何選項(xiàng)可以更改NFC的場功率以使讀取盡可能節(jié)能?

    我需要讓 ST25R3916 讀取盡可能節(jié)能。我正在搜索文檔,但我只看到這個穩(wěn)壓器 (0x2C)。是否有任何選項(xiàng)可以更改 NFC 的場功率以使讀取盡可能節(jié)能?NFC 標(biāo)簽將始終位于固定范圍內(nèi)的固定位置。重要提示:我們不是在談?wù)摍z測卡——因?yàn)殡娙輽z測已經(jīng)足夠好了,但只是在讀
    發(fā)表于 02-02 07:43

    為什么在MCU中要盡可能少用浮點(diǎn)數(shù)運(yùn)算?

    為什么在MCU中要盡可能少用浮點(diǎn)數(shù)運(yùn)算
    發(fā)表于 10-09 08:06

    為什么在MCU中要盡可能少用全局變量?

    為什么在MCU中要盡可能少用全局變量
    發(fā)表于 10-11 07:07

    為什么低噪聲放大器的第一級要盡可能的放大呀?

    為什么低噪聲放大器的第一級要盡可能的放大?
    發(fā)表于 11-21 08:01

    UPS蓄電池的設(shè)計為什么要讓電池保持盡可能的溫度

    在UPS 的實(shí)際應(yīng)用中,溫度對電池的自然老化過程有很大影響。詳細(xì)的實(shí)驗(yàn)數(shù)據(jù)表明溫度每上升 5℃,電池壽命就下降 10%,所以 UPS 蓄電池的設(shè)計應(yīng)讓電池保持盡可能的溫度。
    發(fā)表于 08-09 15:22 ?1178次閱讀

    Watson Works提供了數(shù)據(jù)驅(qū)動的見解,以幫助雇主在工作場所重入

    IBM區(qū)塊鏈和生態(tài)系統(tǒng)認(rèn)知應(yīng)用高級副總裁Bob Lord說:“我們設(shè)計了Watson Works,以幫助企業(yè)盡可能有效地應(yīng)對持續(xù)的COVID-19健康危機(jī) 。
    的頭像 發(fā)表于 09-10 16:06 ?2177次閱讀

    如何測量運(yùn)算放大器的輸入電容以盡可能降低噪聲

    這些問題。 運(yùn)算放大器被廣泛用于各種電子電路中。它們用于小電壓的放大,以進(jìn)一步執(zhí)行信號處理。煙霧探測器、光電二極管跨阻放大器、醫(yī)療器械,甚至工業(yè)控制系統(tǒng)等應(yīng)用都需要盡可能低的運(yùn)算放大器輸入電容,因?yàn)檫@會影響噪聲增益(
    的頭像 發(fā)表于 04-11 03:45 ?623次閱讀
    如何測量運(yùn)算放大器的輸入電容以<b class='flag-5'>盡可能</b>降低噪聲