BL B的作用:1:讓R14(LR)寄存器保存B下面的地址,作為返回地址
在平房等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計、成都做網(wǎng)站 網(wǎng)站設(shè)計制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,外貿(mào)網(wǎng)站制作,平房網(wǎng)站建設(shè)費用合理。?2:跳轉(zhuǎn)到B函數(shù)的地址中執(zhí)行B函數(shù)代碼
單純的B指令,只會跳轉(zhuǎn)而不會返回
LR保存返回地址:為什么不是E0或者E2而是取了一個中間值E1?
可能需要額外學(xué)習(xí)關(guān)于ARM內(nèi)核的知識了--任務(wù):關(guān)于ARM-M3內(nèi)核的學(xué)習(xí)
ARM-RISC<精簡指令集>,R0-R11通用目的寄存器用來暫存數(shù)據(jù)
R13-SP? ?????????R14-LR(保存返回地址)? ? ? ? ?
R15-PC(用來存儲指向下一條指令的地址,也即將將要執(zhí)行的指令代碼)? ? ? ?
PSR-程序狀態(tài)寄存器
指令種類:內(nèi)存、運算、跳轉(zhuǎn)、比較
裸機的編程思維:狀態(tài)機思維--其實就是很好的利用switch語句配合,不同的情況執(zhí)行不同的代碼,一步一步的來,比如按鍵或者其他,這種思維需要想,目的的話:提高代碼健壯性、可讀性等,很有用
CPU從ROM中取指令,從RAM取數(shù)據(jù),把數(shù)據(jù)暫時性保存在通用寄存器中,可以從ARM匯編的過程中可以很清除的看到此過程?
學(xué)會在C語言中,使用C++的面向?qū)ο蟮乃季S ,結(jié)構(gòu)體封裝-變量和函數(shù)
中斷的要求:快進快出,一般不能放入一些函數(shù),一般放標志位,但是有時候中斷需要放一些緊急的任務(wù),因此放標志位的都是不緊急的,比如按鍵掃描、獲取傳感器參數(shù)等
除時序以外,避免使用延時函數(shù),一個使用延時函數(shù)的程序,是不完美的程序
任務(wù)優(yōu)先級的設(shè)置的值不要太大,有些任務(wù)的優(yōu)先級可以相等就相等,如果任務(wù)優(yōu)先級過多,那么涉及到的搶占就會越多,搶占就會越多,保存的內(nèi)容就越多(壓棧)。因為可能當(dāng)你執(zhí)行A任務(wù)的時候,B來搶占了,B執(zhí)行的時候,C又來搶占了,此時你就需要保存A\B的棧,假如繼續(xù)呢?
如果是相等的優(yōu)先級的話,搶占的機會就少了很多了
一個芯片的啟動方式有很多,當(dāng)你學(xué)習(xí)一種芯片的時候,不要形成固定思維,認為其他的芯片也是這樣。當(dāng)你學(xué)另外一種芯片的時候,你前面所學(xué)的內(nèi)容只是參考,最終我們都是需要看數(shù)據(jù)手冊的。我曾經(jīng)犯的錯誤,我學(xué)的芯片存在定時器3,然后我去玩了另外一個芯片,最后發(fā)現(xiàn)定時器3配置不成功,最后才發(fā)現(xiàn),原來這個芯片連定時器3都沒用
學(xué)習(xí)不能形成固定思維,前面的學(xué)習(xí)內(nèi)容只是參考而已
你需要學(xué)會STM32庫和FreeRTOS對C語言的高級使用?-結(jié)構(gòu)體、枚舉、指針等用法
以及HAL庫函數(shù)的實現(xiàn)里面都包含著很多C語言的高級用法
寫代碼能力 = 邏輯 + 基礎(chǔ) + 調(diào)試?
寫一部分,調(diào)試一部分,把大功能分成一個一個小小的函數(shù)
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧