開發arm應用程式有兩種方法:一種是直接在arm晶片上開發應用程式,而不使用作業系統,也稱為裸機編程。這種開發方法主要應用於一些低端的arm晶片,其開發過程與單片機的開發過程非常相似,本文不作介紹。另一種是在ARM晶片上運行作業系統。對於硬體的操作,需要編寫相應的驅動程序。應用程式開發基於作業系統。這種嵌入式應用的開發方式與單片機的開發有很大的不同。arm-linux應用程式開發與SCM開發的主要區別如下:
1. 應用開發環境硬體
單片機:開發板、模擬器(調試器)、USB線;
ARM-Linux的:開發板,電纜,串行電纜,SD卡;
對於arm-linux的開發,通常沒有硬體調試器,特別是在應用程式開發過程中,很少使用硬體調試器,程序調試主要是通過串行口進行的,但是需要注意的是,arm晶片也有硬體仿真器,但它通常用於裸金屬開發。
2、程序下載方式
Mcu: 仿真器(調試器)下載,或串口下載;
ARM-Linux:串口下載、TFTP網絡下載,或直接讀寫SD、MC卡等存儲設備,實現程序下載;
設備和硬體的開發環境,直接關係到沒有硬體仿真器,因此開發模擬器下載時,ARM-Linux的不正常使用;這可能看起來不方便,事實上,ARM-Linux應用程式的開發,以提供更多的下載方式。
3、晶片的硬體資源
微控制器:通常是一個完整的計算機系統,包括ram、flash、UART、I2C、ad、DA等外圍設備;
Arm: 通常只有 CPU,需要外部電路為 Arm 提供 Ram 正常運行,外部電路提供 FLASH、 SD 卡等存儲系統圖像,並通過外部電路實現各種外圍功能。 由於 ARM 晶片處理能力很強,通過外部電路可以實現各種複雜功能,其功能遠遠強於單片機。
4、固件的存儲位置
單片機:通常採用片上FLASH存儲器,固件程序通常存儲在這一區域,如果固件較大,則需要通過外部電路設計外部快閃記憶體來存儲固件。
ARM-Linux的:它不閃爍因為晶片,並需要運行的作業系統,整個系統映像通常較大,所以ARM-Linux的作業系統開發的圖像,以及應用程式通常存儲在外置MMC,SD卡,或SATA設備。
5、啟動方式
單片機:其結構簡單,內部集成flash,通常晶片廠商在程序開機時添加固定跳轉指令,直接跳轉到程序入口(通常在flash上);開發的應用程式由編譯器編譯,並通過特殊的下載工具,開機後直接運行到相應的程序入口,實現系統的啟動。
Arm-linux: 因為它使用 ARM 晶片,高效率,功能強大,外圍設備相對豐富,所以它是一個強大的計算機系統,需要運行作業系統,所以它的啟動方式與單片機有很大的不同,但它啟動的方式與家用計算機大致相同。 引導通常包括 BIOS、引導加載程序、內核引導、應用程式引導等。