ARM-Linux開發與MCU開發的區別

2021-01-06 向若坤說科技

開發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、引導加載程序、內核引導、應用程式引導等。

相關焦點

  • ARM-Linux開發與MCU開發的差別是什麼
    、驅動程序開發、系統內核開發,針對不同種類的軟體開發,有其不同的特點。今天我們來看看ARM-Linux開發和MCU開發的不同點,以及ARM-Linux的基本開發環境。 1. ARM-Linux應用開發和單片機開發的不同 這裡先要做一個說明,對於ARM的應用開發主要有兩種方式:一種是直接在ARM晶片上進行應用開發,不採用作業系統,也稱為裸機編程,這種開發方式主要應用於一些低端的ARM晶片上,其開發過程非常類似單片機,這裡不多敘述。
  • ARM和Linux交叉開發環境的搭建過程
    例如:arm.1inux—gcc。交叉開發環境是指編譯、連結和調試嵌入式應用軟體的環境,它與運行嵌入式應用軟體的環境有所不同,通常採用宿主機/目標機模式。  1)GNU交叉工具鏈的下載  從ARM官方網站F載刪.arm.tinux.org.ak,可以從該站點下載2.95.3工具鏈:  ftp://tip.arm.Iinux.org.uk/pub/armlinux/toolehain/cross-2.95.3.tar.bz2  2)cross-2.95.3.tar.bz2包的安裝步驟
  • 嵌入式arm開發學習第三天
    arm開發學習第三天交叉編譯裸板程序:1.arm-cortex_a9-linux-gnueabi-gcc -nostdlib -c -o xxx.o xxx.c-c: 只編譯不連結-nostdlib: 不允許使用標準c庫內容2.arm-cortex_a9-linux-gnueabi-ld -nostartfiles
  • 淺析gcc、arm-linux-gcc和arm-elf-gcc的關係
    四、arm-linux-gccarm-linux-gcc 是基於 ARM 目標機的交叉編譯軟體,arm-linux-gcc 跟 GCC 所需的安裝包不同,但僅僅是名字不同而已,這是為什麼呢?五、arm-elf-gccarm-elf-gcc 跟 arm-linux-gcc 一樣,也是是基於 ARM 目標機的交叉編譯軟體。但是它們不是同一個交叉編譯軟體,兩者是有區別的,兩者區別主要在於使用不同的 C 庫文件。
  • 如何在Linux系統中手動安裝arm-linux-gcc交叉編譯工具
    嵌入式開發少不了arm開發平臺。要編譯出能在arm平臺上運行的程序,必須使用交叉編譯工具arm-linux-gcc、arm-linux-ld、arm-linux-objcopy、arm-linux-objdump等。arm-linux-gcc是幹什麼的?gcc是linux系統下面用來將代碼編譯成一個可執行程序的手段。
  • arm-linux-gcc的安裝
    在X86電腦上開發的程序要在ARM系統上運行就必須使用交叉工具鏈arm-linux-gcc,linux系統上是沒有這個工具鏈的,為此必須自己下載安裝,安裝步驟為
  • Linux內核開發工具的介紹
    她對絕大部分內核開發者基本上是透明的,隱藏了大部分實現細節,有效地降低了開發者的負擔,能使其能專注於內核開發,而不至於花費時間和精力在編譯過程上。,則必須指定ARCH為arm(注意大小寫,須與arch/目錄下的arm一致),如:當然,也可以修改Makefile,將修改為ARCH ?
  • Ubuntu12.10 使用JLink連接開發板用arm-gdb調試ARM程序
    ,安裝完成後具有如下工具:arm-linux-gnueabi-addr2line       arm-linux-gnueabi-gcc             arm-linux-gnueabi-gprof           arm-linux-gnueabi-ranlibarm-linux-gnueabi-ar
  • linux上搭建stm32開發環境 vscode+gcc+stm32cubeMX 和 vscode+...
    :sudo apt-get install gcc-arm-none-eabisudo apt-get install gdb-arm-none-eabi  或 手動下載安裝:https://launchpad.net/gcc-arm-embedded/+download( 補充:VSCode的PlatformIO
  • Linux 系統下ARM Linux交叉編譯環境crosstool工具
    一、使用別人編譯好的開發工具鏈本文引用地址:http://www.eepw.com.cn/article/201611/317983.htmcross-2.95.3.tar.bz2arm-linux-gcc-3.3.2.tar.bz2arm-elf-tools-20030314.sh。
  • 了解Linux安裝ARM交叉編譯器的步驟
    環境下的asm和c語言編譯器,生成的是可以在x86平臺上運行的可執行程序; 而在開發板上運行的程序則需要arm平臺專用的編譯器,也稱為交叉編譯器; 交叉編譯器可以由開發人員手工定製,也可用使用別人已經編譯好的,比如arm-linux-gcc; (1)安裝交叉編譯器 -- $>cd /home/zhang/tools/
  • 嵌入式linux新手入門手記-準備qt5.4.1開發平臺
    /qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf。mkspecs目錄下有很多的保存.conf文件的目錄,分別對應不同的作業系統和交叉編譯平臺,我這裡使用linux-arm-gnueabi-g++平臺的配置文件進行交叉編譯。
  • Ubuntu 16.04 LTS-嵌入式交叉編譯環境arm-linux-gcc搭建過程圖解
    對於交叉開發的工具鏈來說,在文件名稱上加了一個前綴,用來區別本地的工具鏈。例如,arm-linux-表示是對arm的交叉編譯工具鏈;arm-linux-gcc表示是使用gcc的編譯器。除了體系結構相關的編譯選項以外,其使用方法與Linux主機上的gcc相同,所以Linux編程技術對於嵌入式同樣適用。不過,並不是任何一個版本拿來都能用,各種軟體包往往存在版本匹配問題。
  • Linux Lab 推出十大精彩使用案例
    C 語言開發裡頭已經安裝好了必備的編輯器 vim 和編譯器 gcc,可以直接上手 C 語言開發。的也不在話下:ubuntu@linux-lab:/labs/linux-lab/examples/assembly/arm$ cat arm-hello.s.datamsg: .ascii "Hello, ARM!
  • arm開發板與樹莓派有什麼區別
    它使用ARM處理器晶片,和linux作業系統或windows作業系統,是一個很小體積的桌面電腦。   樹莓派由註冊於英國的慈善組織「Raspberry Pi 基金會」開發,Eben·Upton/埃·厄普頓為項目帶頭人。
  • ARM與單片機到底有啥區別?
    1、軟體方面本文引用地址:http://www.eepw.com.cn/article/201808/386379.htm這應該是最大的區別了。引入了作業系統。為什麼引入作業系統?有什麼好處嘛?1)方便。
  • 移植SSH到ARM Linux開發板成功
    一個月之前遇到問題沒有找到-lgcc_s的問題一直沒有解決,以致後來非常影響開發進度。最近決心解決這個問題,在google上查到沒有找到lxx其實時沒有找到libxxx.so,然後與友善2440比較了下,發現果真是arm-none-linux-gnueabi/libc/lib下缺少libgcc_s.so。最後一步問題總結是我編譯的時候遇到等所有問題,後一一化解,成功移植。
  • Linux 對 ARM 的支持一團糟
    當硬體製造商正在談論基於ARM晶片的伺服器時, 支持ARM的軟體還要繼續努力開發以跟上發展步伐。LINUX越來越普 及,ARM晶片必須讓自己在這個系統上工作得更有效率。
  • Arm Linux Kernel 構建 情景分析
    命令:# CROSS_COMPILE 的值根據自己情況設定make ARCH=arm CROSS_COMPILE=arm-linux-androideabi-這條命令做了什麼呢,把 make 輸出到控制臺的信息貼出來(省略中間相似的信息):make ARCH=arm CROSS_COMPILE
  • 嵌入式arm開發學習第五天
    嵌入式arm學習第五天相關概念: i:輸入 o:輸出 clk:時鐘 src:源 div:分頻/降頻 inv:翻轉 invert sel:選擇 slave:外設 master:cpucpu通過uart串口訪問上位機流程: