當(dāng)下的嵌入式編程通常需要使用開發(fā)套件來加快和簡(jiǎn)化開發(fā)流程。
例如,Arm Keil 帶有集成 IDE、調(diào)試器和一組軟件包,內(nèi)含 RTOS、驅(qū)動(dòng)程序、中間件 (如 TCP/IP 堆棧) 以及 mbedTLS (SSL/TLS) 或 lvgl (圖形) 之類的庫(kù)。
意法半導(dǎo)體的 Cube IDE 以及恩智浦的 MCUXpresso、德州儀器的 CCS、微芯的 MPLAB 等開發(fā)工具也提供類似的功能。
當(dāng)開發(fā)者在其中一個(gè)框架中啟動(dòng)項(xiàng)目后,他們要在各種軟件層之上開發(fā)應(yīng)用代碼。
有時(shí)開發(fā)者可能會(huì)選擇繞過所有這些層,而開發(fā)直接與硬件通信的代碼。這種開發(fā)方式稱為裸機(jī)編程。該做法的主要目的如下:
通過對(duì)所開發(fā)的應(yīng)用進(jìn)行充分了解,掌握每一個(gè)細(xì)節(jié),由此減輕維護(hù)負(fù)擔(dān)
充分實(shí)現(xiàn)目標(biāo)硬件的性能和靈活性,起初比較耗時(shí),但隨著項(xiàng)目的推進(jìn),可能會(huì)帶來巨大回報(bào)
避免花費(fèi)時(shí)間來修復(fù)和調(diào)試底層軟件層,尤其是在測(cè)試不充分、文檔記錄不完整且漏洞百出的情況下
裸機(jī)開發(fā)可以不使用集成開發(fā)套件 (IDE),只需使用任何一款編輯器和 Arm GCC 編譯器即可操作。
當(dāng)然,也可以使用諸如 Arm Keil 這樣的 IDE 來完成開發(fā)工作。無論是哪種情況,開發(fā)者都需要了解以下幾個(gè)關(guān)鍵概念:
內(nèi)存的組織方式
外設(shè)的工作原理
生成的二進(jìn)制代碼的布局
用于生成所需布局的鏈接器腳本情況
矢量表、中斷和弱符號(hào)
CMSIS 設(shè)備頭文件:Arm 核心和供應(yīng)商外設(shè)
審核編輯:劉清
-
驅(qū)動(dòng)器
+關(guān)注
關(guān)注
53文章
8260瀏覽量
146647 -
調(diào)試器
+關(guān)注
關(guān)注
1文章
305瀏覽量
23774 -
LED閃爍
+關(guān)注
關(guān)注
0文章
29瀏覽量
9847 -
嵌入式編程
+關(guān)注
關(guān)注
0文章
27瀏覽量
10337 -
gcc編譯器
+關(guān)注
關(guān)注
0文章
78瀏覽量
3402
原文標(biāo)題:裸機(jī)編程指南
文章出處:【微信號(hào):Arm社區(qū),微信公眾號(hào):Arm社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論