天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術(shù)熱線: 4007-888-234
設(shè)計開發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開發(fā)工具

提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)

單片機開發(fā):為何要避免使用匯編語言?

更新時間: 2020-10-16
閱讀量:3503

對資深單片機開發(fā)人員來說經(jīng)常提倡的一個開發(fā)技巧是,開發(fā)人員應(yīng)避免使用匯編語言。避免使用匯編語言的原因是它特定于所使用的處理器體系結(jié)構(gòu),難以閱讀,理解和維護。而且需要注意的是,在查看仍可以使用匯編語言的每個區(qū)域之前,這些匯編指令如何集成到代碼庫中將根據(jù)所使用的開發(fā)環(huán)境而有所不同。通常有一些自定義的編譯器函數(shù)用于使編譯器語言知道正在使用匯編指令,例如_asm(),我們檢查的代碼段在使用前可能需要進行修改。

但是,有四個適合使用匯編語言的地方:

一、執(zhí)行斷點指令

每當我開始一個新項目時,我在實施過程中要做的第一件事就是將斷點的匯編指令放入CPU錯誤,看門狗超時以及特殊RTOS事件(例如在中斷服務(wù)例程中使用malloc)。這樣做的原因是,當達到這些功能之一時,想得到通知,但是又不想管理這些斷點。許多現(xiàn)代處理器都有一個斷點匯編指令,使用匯編代碼執(zhí)行該指令是完全合適的。

對于使用類似于STM32 CubeIDE的IDE的Arm Cortex-M處理器,此類組裝實現(xiàn)可能如下所示:

__asm(“ bkpt”);

當?shù)竭_上面這條指令時,處理器將停止執(zhí)行。

二、從Bootloader過渡到應(yīng)用程序

開發(fā)人員應(yīng)該使用匯編語言的第二個領(lǐng)域是從引導(dǎo)加載程序到應(yīng)用程序代碼的過渡點。在許多系統(tǒng)中,引導(dǎo)加載程序是第一個執(zhí)行的應(yīng)用程序。它設(shè)置處理器,驗證內(nèi)存并可能執(zhí)行其他一些功能。但是在某個時候,引導(dǎo)加載程序讓步并跳轉(zhuǎn)到主應(yīng)用程序。為了成功完成該跳轉(zhuǎn),需要將處理器中的許多組件設(shè)置為它們的初始狀態(tài),例如系統(tǒng)堆棧,然后需要加載應(yīng)用程序復(fù)位向量的功能指針。另外,當需要將匯編語言集成到應(yīng)用程序中時,可以使用IDE的匯編函數(shù)。這些功能可能因IDE的不同而有所差異。

三、控制循環(huán)中的代碼優(yōu)化

在某些情況下,可能需要在高頻控制循環(huán)中優(yōu)化代碼,這需要使用匯編語言。手工編碼組裝中的快速控制循環(huán)曾經(jīng)很普遍。盡管有時這仍然是適當?shù)?,但在當今使用超快處理器和使用?fù)雜的優(yōu)化技術(shù)的編譯器的開發(fā)環(huán)境中,你會發(fā)現(xiàn)使用匯編語言的情況將越來越少。

四、學(xué)習(xí)單片機基礎(chǔ)知識

許多人剛開始涉足單片機開發(fā)時,實際上是被迫以匯編形式開發(fā)應(yīng)用程序的。當時的單片機供應(yīng)商不提供免費的C編譯器,但是匯編語言工具是免費的。

我不認為應(yīng)該花很多時間在匯編上,但是我認為單片機的開發(fā)人員應(yīng)該會編寫一些非常基本的應(yīng)用程序,例如“ Hello World”應(yīng)用程序和閃爍LED應(yīng)用程序,以了解如何初始化處理器、控制寄存器,并稍微了解基礎(chǔ)指令集。這些可以幫助開發(fā)人員理解C/C++的底層體系結(jié)構(gòu),并且真正理解該體系結(jié)構(gòu)的唯一方法就是以其自身的自然語言進行處理,從而可以用C/C++編寫效率更高的代碼。

以上就是英銳恩單片機開發(fā)工程師分享的單片機開發(fā)過程中的為何避免使用匯編語言,且在一些地方應(yīng)使用匯編語言的知識。英銳恩專注單片機應(yīng)用方案設(shè)計與開發(fā),同時提供8位單片機、16位單片機、32位單片機、運放芯片和模擬開關(guān)。如果你需要更多單片機方案產(chǎn)品的信息,請撥打官網(wǎng)電話:4007-888-234,或點擊“在線咨詢”,我們的客服人員將為你提供更詳細的解答。

單片機方案開發(fā)

联系我们: 犍为县| 青州市| 武川县| 富民县| 邵武市| SHOW| 秀山| 黔东| 沭阳县| 云阳县| 芦山县| 陆河县| 竹山县| 白朗县| 云浮市| 文水县| 江安县| 华宁县| 荃湾区| 兴山县| 柞水县| 永川市| 安仁县| 元阳县| 岗巴县| 靖宇县| 康乐县| 九台市| 电白县| 泗洪县| 饶平县| 麻江县| 克山县| 鄄城县| 苗栗县| 碌曲县| 军事| 苍梧县| 阿荣旗| 宣威市| 霍林郭勒市|