0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在x86平臺(tái),如何用Qemu來模擬ARM系統(tǒng)

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-10-26 10:01 ? 次閱讀

前言

前一段時(shí)間因?yàn)楣ぷ餍枰?,我?duì)ARM模擬器進(jìn)行了一番調(diào)研。調(diào)研目的是:由于項(xiàng)目參與人員比較多,如果人手一塊ARM開發(fā)板,資源比較緊張,希望能夠用模擬器來代替。

在調(diào)研期間,花費(fèi)了很多時(shí)間去查資料、測(cè)試驗(yàn)證。在實(shí)際驗(yàn)證的時(shí)候,發(fā)現(xiàn)一個(gè)現(xiàn)象:很多文章雖然給出了或簡(jiǎn)單、或詳細(xì)的操作步驟,但是大部分都沒有寫清楚操作的背景、各個(gè)軟件的版本,這就導(dǎo)致需要把整個(gè)文章看完了、把所有的操作步驟都做了一遍,才明白作者想表達(dá)的是什么意思,操作的目的是什么。

我覺得,任何一篇文章,首先要讓讀者知道為什么要讀這篇文章,或者說讀了這篇文章能夠有什么收獲。

如果是操作性比較強(qiáng)的文章,那么就有必要交代清楚工作平臺(tái)的背景是什么,要達(dá)到的目的是什么,總體步驟是怎么樣的。只有這樣,閱讀文章的人在心中首先建立一個(gè)宏觀的框架,在理解框架的基礎(chǔ)上,再去實(shí)際操作,這樣的話就更容易理解。

當(dāng)然了,每個(gè)人的學(xué)習(xí)和閱讀習(xí)慣都不一樣,上面只是我個(gè)人的感受,或者說我喜歡這樣比較有條理的文章,這樣才不至于迷茫。

回到Qemu的主題上來,這篇文章主要是把調(diào)研的結(jié)果進(jìn)行梳理、匯總,包括如下內(nèi)容:

為什么需要ARM模擬系統(tǒng)?
Qemu是什么?
Qemu 能做什么?或者說適合做什么?
在 Ubuntu16.04 系統(tǒng)中,利用 Qemu 搭建一個(gè)ARM虛擬機(jī)操作步驟是什么?
編寫一個(gè)HelloWorld程序,放到虛擬機(jī)中執(zhí)行。

為什么需要ARM模擬系統(tǒng)

ARM平臺(tái)的軟件開發(fā)工作,可以劃分為2類:

應(yīng)用程序的開發(fā)
系統(tǒng)開發(fā)(內(nèi)核、文件系統(tǒng)、驅(qū)動(dòng)程序)

應(yīng)用程序的開發(fā)

我們?cè)陂_發(fā)嵌入式項(xiàng)目的時(shí)候,一般都是先在x86平臺(tái)上把大部分的功能開發(fā)完成,然后再交叉編譯,得到在ARM平臺(tái)的可執(zhí)行程序或者庫文件。再通過scp指令或者NFS遠(yuǎn)程掛載的方式,把這些文件復(fù)制到ARM板子上之后執(zhí)行。

一般而言,應(yīng)用程序就是利用硬件產(chǎn)品的各種資源、外設(shè),來完成特定的功能,比如:數(shù)據(jù)采集、控制外部設(shè)備、網(wǎng)絡(luò)傳輸?shù)鹊?。主要的特征就是與外部的各種設(shè)備進(jìn)行交互。

系統(tǒng)開發(fā)(BSP)

系統(tǒng)開發(fā)的最終目的是:為應(yīng)用程序的執(zhí)行準(zhǔn)備一個(gè)基本的執(zhí)行環(huán)境,內(nèi)容包括:系統(tǒng)引導(dǎo)程序bootloader,內(nèi)核kernel,文件系統(tǒng)rootfs,系統(tǒng)中所有設(shè)備的驅(qū)動(dòng)程序。在實(shí)際的項(xiàng)目開發(fā)中,系統(tǒng)開發(fā)難度更大一些,一旦開發(fā)完成,對(duì)于一塊板子來說基本上不會(huì)輕易變動(dòng),代碼的使用生命周期更長(zhǎng)。

以上這兩種分類,主要是從開發(fā)工作的內(nèi)容角度來進(jìn)行劃分的。可以看出:

應(yīng)用程序開發(fā):靈活性更大、需求變動(dòng)會(huì)更多(產(chǎn)品經(jīng)理或項(xiàng)目經(jīng)理經(jīng)常給你改需求)。
系統(tǒng)軟件開發(fā):需求更穩(wěn)定、很多代碼都是官方提供或者開源的,工作內(nèi)容就是進(jìn)行定制、裁剪。

對(duì)于系統(tǒng)軟件開發(fā)來說,如果每次編譯出一個(gè)bootloader、或者kernel,都上一個(gè)ARM開發(fā)板進(jìn)行驗(yàn)證,的確比較麻煩。如果能有一個(gè)ARM模擬系統(tǒng),直接在x86上進(jìn)行模擬,工作效率就會(huì)提高很多。

Qemu是什么?

Qemu是一個(gè)開源的托管虛擬機(jī),通過純軟件來實(shí)現(xiàn)虛擬化模擬器,幾乎可以模擬任何硬件設(shè)備。比如:Qemu可以模擬出一個(gè)ARM系統(tǒng)中的:CPU、內(nèi)存、IO設(shè)備等,然后在這個(gè)模擬層之上,可以跑一臺(tái)ARM虛擬機(jī),這個(gè)ARM虛擬機(jī)認(rèn)為自己在和硬件進(jìn)行打交道,但實(shí)際上這些硬件都是Qemu模擬出來的

9b536e18-54ce-11ed-a3b6-dac502259ad0.png

正因?yàn)镼emu是純軟件實(shí)現(xiàn)的,所有的指令都要經(jīng)過它的轉(zhuǎn)換,所以性能非常低。所以在生產(chǎn)環(huán)境中,大多數(shù)的做法都是配合KVM來完成虛擬化工作,因?yàn)镵VM是硬件輔助的虛擬化技術(shù),主要負(fù)責(zé)比較繁瑣的CPU和內(nèi)存虛擬化,而Qemu則負(fù)責(zé)I/O虛擬化,兩者合作各自發(fā)揮自身的優(yōu)勢(shì),相得益彰。這部分不是重點(diǎn),就不具體深入介紹了。

Qemu的兩種模式

Qemu有兩種執(zhí)行模式

  1. 用戶模式(User mode):利用動(dòng)態(tài)代碼翻譯機(jī)制來執(zhí)行不同主機(jī)架構(gòu)的代碼,例如:在x86平臺(tái)上模擬執(zhí)行ARM代碼,也就是說:我們寫一條ARM指令,傳入整個(gè)模擬器中,模擬器會(huì)把整個(gè)指令翻譯成x86平臺(tái)的指令,然后在x86的CPU中執(zhí)行。
9b6b5cf8-54ce-11ed-a3b6-dac502259ad0.png
  1. 系統(tǒng)模式(System mode):模擬整個(gè)電腦系統(tǒng),利用其它VMM(Xen, KVM)來使用硬件提供的虛擬化支持,創(chuàng)建接近于主機(jī)性能的全功能虛擬機(jī)。
9b77f5a8-54ce-11ed-a3b6-dac502259ad0.png

Qemu 能做什么?或者說適合做什么?

因?yàn)镼emu是使用純軟件模擬的,它的強(qiáng)項(xiàng)是模擬那些不涉及到外部的具體硬件設(shè)備的場(chǎng)景,比如:

想學(xué)習(xí)如何定制bootloader;
想在Arm系統(tǒng)中進(jìn)行文件系統(tǒng)的裁剪,學(xué)習(xí)文件系統(tǒng)的掛載過程;
想體驗(yàn)一下如何配置、裁剪linux kernel;想學(xué)習(xí)Linux系統(tǒng)中的設(shè)備樹;
...

以上這些場(chǎng)景中,都非常適合使用Qemu來模擬ARM系統(tǒng)。

在 Ubuntu16.04 系統(tǒng)中,利用 Qemu 搭建一個(gè)ARM虛擬機(jī)

使用Qemu虛擬機(jī)的幾種選擇

利用Qemu來運(yùn)行ARM虛擬機(jī),你有2個(gè)選擇

  1. 簡(jiǎn)單方式:直接下載別人編譯好的映像文件(包含了內(nèi)核,根文件系統(tǒng)),直接執(zhí)行即可。
    缺點(diǎn)是:別人編譯好的也許不適合你的需求,沒法定制。
  2. 復(fù)雜方式:自己下載內(nèi)核代碼、根文件系統(tǒng)代碼(例如:busybox),然后進(jìn)行編譯。
    優(yōu)點(diǎn)是:可以按照自己的實(shí)際需求,對(duì)內(nèi)核、根文件系統(tǒng)機(jī)型裁剪。

在第2種復(fù)雜模式中,又可以有2個(gè)選擇

2-1. 內(nèi)核代碼、根文件系統(tǒng)代碼全部自己手動(dòng)編譯,最后把這些編譯結(jié)果手動(dòng)組織在一個(gè)文件夾中,形成自己的根目錄;
2-2. 利用 buildroot 整個(gè)框架,只需要手動(dòng)進(jìn)行配置(比如:交叉編譯器在本機(jī)上的位置、輸出路徑、系統(tǒng)的裁剪),然后就可以一鍵編譯出一個(gè)完整的系統(tǒng),可以直接燒寫到機(jī)器!

以上這幾種操作方式的選擇,可以根據(jù)自己的實(shí)際需要來選擇。如果對(duì)構(gòu)建系統(tǒng)的整個(gè)流程已經(jīng)非常熟悉了,就利用buildroot工具;如果是想更徹底的學(xué)習(xí)制作一個(gè)系統(tǒng),那就手動(dòng)一步一步的實(shí)際編譯、操作一遍,多練幾次,你就變成大牛了。

下面,我們就按照2-2的方式,進(jìn)行實(shí)際操作一遍。所有的指令部分,我都直接貼代碼,不用截圖,這樣方便復(fù)制。

測(cè)試平臺(tái)

我的工作電腦是Win10,通過VirtualBox安裝了Ubuntu16.04虛擬機(jī),64位系統(tǒng)

下面的操作在Ubuntu16.04虛擬機(jī)中可以順利編譯,當(dāng)然,一些基本的工具(例如:build-essential, make等基礎(chǔ)工具軟件這里就不詳述了)。

安裝交叉編譯器

交叉編譯器的作用就不需要詳細(xì)解釋了,因?yàn)槲覀兪窃趚86平臺(tái)上進(jìn)行編譯,而運(yùn)行的平臺(tái)是ARM系統(tǒng),這2個(gè)平臺(tái)的指令集不一樣,所以需要交叉編譯得到ARM系統(tǒng)上可以執(zhí)行的程序。


		
sudo apt-get install gcc-arm-linux-gnueabi

驗(yàn)證安裝結(jié)果


		
dpkg -l gcc-arm-linux-gnueabi

顯示如下:

9baa71b8-54ce-11ed-a3b6-dac502259ad0.png

有些文章建議自己下載交叉編譯器,然后手動(dòng)設(shè)置環(huán)境變量。我實(shí)際操作了一下,手動(dòng)下載的交叉編譯工具鏈在編譯內(nèi)核的時(shí)候報(bào)錯(cuò),所以還是建議直接用apt-get直接安裝

編譯內(nèi)核kernel

內(nèi)核kernel的作用也是不言而喻的,就相當(dāng)于我們的Windows操作系統(tǒng),沒有這個(gè)操作系統(tǒng),硬件就是一堆廢鐵。當(dāng)系統(tǒng)啟動(dòng)的時(shí)候,會(huì)把內(nèi)核加載到內(nèi)存中,然后從內(nèi)核的入口地址開始執(zhí)行。

  1. 下載內(nèi)核版本:linux-4.14.212.tar。在文末,我會(huì)列出所有的軟件包下載地址。

  2. 使用現(xiàn)成的vexpress開發(fā)板子的config文件


		
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig

這個(gè)操作,會(huì)把vexpress_defconfig作為配置文件保存為.config,下面在編譯內(nèi)核時(shí)就根據(jù)這個(gè)config中的配置進(jìn)行編譯。

如果需要對(duì)內(nèi)核進(jìn)行裁剪,執(zhí)行:


		
make menuconfig

根據(jù)自己的實(shí)際需要,對(duì)內(nèi)核進(jìn)行定制。比如:可以配置網(wǎng)絡(luò)和NFS,在系統(tǒng)啟動(dòng)的時(shí)候就自動(dòng)掛載宿主機(jī)中的某個(gè)目錄。

  1. 編譯內(nèi)核

		
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm

編譯得到內(nèi)核文件arch/arm/boot/zImage,Qemu啟動(dòng)時(shí)需要指定使用這個(gè)映像文件。

制作根文件系統(tǒng)

內(nèi)核在啟動(dòng)之后、執(zhí)行到最后步驟時(shí),需要掛載根文件系統(tǒng),然后執(zhí)行文件系統(tǒng)中指定的執(zhí)行程序,例如:/etc/rc.local。

如果沒有跟文件系統(tǒng),那么內(nèi)核在執(zhí)行到最后就提示:panic...。

  1. 下載busybox

    版本:busybox-1.20.2.tar.bz2。

  2. 創(chuàng)建rootfs根目錄


		
mkdir -p rootfs/{dev,etc/init.d,lib}

  1. 把busybox-1.20.2中的文件復(fù)制到rootfs根目錄下,主要是一些基本的命令

		
cp busybox-1.20.2/_install/* -r rootfs/

  1. 把交叉編譯工具鏈中的庫文件復(fù)制到rootfs根目錄的lib文件夾下

		
sudo cp -P /usr/arm-linux-gnueabi/lib/* rootfs/lib/

  1. 制作根文件系統(tǒng)鏡像根文件系統(tǒng)鏡像就相當(dāng)于一個(gè)硬盤,就是把上面rootfs根目錄中的所有文件復(fù)制到這個(gè)硬盤中。

(1) 生成512M大小的磁盤鏡像


		
qemu-img create -f raw disk.img 512M

(2) 把磁盤鏡像格式化成ext4文件系統(tǒng)


		
mkfs -t ext4 ./disk.img

(3) 將rootfs根目錄中的所有文件復(fù)制到磁盤鏡像中操作步驟是:創(chuàng)建掛載點(diǎn)-掛載-復(fù)制文件-卸載。


		
mkdir tmpfs 
sudo mount -o loop ./disk.img tmpfs/  
sudo cp -r rootfs/* tmpfs/
sudo umount tmpfs

(4) 使用file指令檢查一下


		
file disk.img

9bc01270-54ce-11ed-a3b6-dac502259ad0.png

利用Qemu啟動(dòng)ARM虛擬機(jī)

1.啟動(dòng)虛擬機(jī)

這個(gè)命令有點(diǎn)長(zhǎng),測(cè)試時(shí)建議直接復(fù)制、粘貼。


		
qemu-system-arm -M vexpress-a9 -m 512M -kernel ./linux-4.14.212/arch/arm/boot/zImage -dtb  ./linux-4.14.212/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 rw console=ttyAMA0" -sd disk.img

2.停止虛擬機(jī)在Ubuntu另一個(gè)終端窗口中,通過killall指令來停止。


		
killall qemu-system-arm

當(dāng)然,也可以用ps指令找到qemu-system-arm的進(jìn)程號(hào),然后通過kill -9來停止虛擬機(jī)。

測(cè)試HelloWorld應(yīng)用程序

  1. 在Ubuntu任意一個(gè)目錄,編寫HelloWorld可執(zhí)行程序hello.c:

		
#include  
int main() 
{     
    printf("HelloWorld! 
");
    return 0; 
}

  1. 交叉編譯hello.c,得到可執(zhí)行程序hello:

		
arm-linux-gnueabi-gcc hello.c -o hello 

通過file指令,查看一下hello程序:


		
file hello

9bd14310-54ce-11ed-a3b6-dac502259ad0.png
  1. 通過kill命令停止虛擬機(jī)。

  2. 把hello可執(zhí)行程序復(fù)制到磁盤鏡像disk.img中操作步驟是:掛載-復(fù)制文件-卸載。


		
sudo mount -o loop ./disk.img tmpfs/  
cp hello tmpfs/ 
sudo umount tmpfs

  1. 執(zhí)行hello程序再次啟動(dòng)虛擬機(jī),此時(shí)可以在根目錄下面看到hello文件,直接執(zhí)行即可看到輸出結(jié)果。

總結(jié)

在以上的操作步驟中,我們把一個(gè)ARM系統(tǒng)在啟動(dòng)應(yīng)用程序之前,所需要的程序都手動(dòng)編譯、操作了一遍??匆槐楹苋菀拙兔靼?,親手操作一遍印象會(huì)更深刻。

這里的操作過程有些還需要繼續(xù)深入,比如:在系統(tǒng)啟動(dòng)之后,自動(dòng)掛載宿主機(jī)(Ubuntu系統(tǒng))中的某個(gè)文件夾,這樣就可以把hello等可執(zhí)行程序復(fù)制到掛載目錄中,然后在ARM系統(tǒng)中直接執(zhí)行了,而不用再執(zhí)行下面在一連串的操作(停止虛擬機(jī)-掛載磁盤鏡像-復(fù)制文件-卸載-啟動(dòng)虛擬機(jī))。

最后,希望這篇總結(jié)能給你帶來小小的收獲和提升!

軟件下載地址

1. linux-4.14.212.tar.xz

鏈接:https://pan.baidu.com/s/1d8RxjMkYQhPtbZgiybD8Gw

提取碼:b6ft。

2. busybox-1.20.2.tar.bz2

鏈接:https://pan.baidu.com/s/1oPeH7juEWuFR6y1Qpna_BA

提取碼:9kh6

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9330

    瀏覽量

    375886
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3324

    瀏覽量

    58844
  • qemu
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    5649

原文標(biāo)題:一步步教你:在x86平臺(tái),如何用Qemu來模擬ARM系統(tǒng)

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    聚徽廠家視角——X86 架構(gòu) vs. ARM 架構(gòu):工控一體機(jī)的算力、功耗與成本差異解析

    工業(yè)自動(dòng)化不斷發(fā)展的當(dāng)下,工控一體機(jī)作為核心設(shè)備,其架構(gòu)選擇至關(guān)重要。X86 架構(gòu)與 ARM 架構(gòu)工控領(lǐng)域各領(lǐng)風(fēng)騷,它們算力、功耗與成
    的頭像 發(fā)表于 06-07 14:56 ?187次閱讀

    龍芯處理器支持WINDOWS嗎?

    Linux系統(tǒng):龍芯處理器主要適配國產(chǎn)Linux發(fā)行版(如統(tǒng)信UOS、麒麟OS),可滿足多數(shù)辦公和開發(fā)需求。 虛擬化/模擬器: QEMU等工具可通過軟件模擬
    發(fā)表于 06-05 14:24

    ARMx86:架構(gòu)對(duì)比及其應(yīng)用

    典型的服務(wù)器架構(gòu)的x86采用模塊化方法,基于帶有可更換組件的主板。CPU和其他組件(如顯卡和GPU、內(nèi)存控制器、存儲(chǔ)或處理核心)針對(duì)特定功能進(jìn)行了優(yōu)化,可以輕松更換或擴(kuò)展。然而,這種便利是有代價(jià)
    的頭像 發(fā)表于 01-15 15:43 ?871次閱讀
    <b class='flag-5'>ARM</b>與<b class='flag-5'>x86</b>:架構(gòu)對(duì)比及其應(yīng)用

    Arm主板與x86主板的區(qū)別

    等領(lǐng)域中占據(jù)了重要地位。本文旨在探討Arm主板與x86主板之間的區(qū)別,分析其架構(gòu)、性能、能效、生態(tài)系統(tǒng)以及應(yīng)用場(chǎng)景等方面的差異,以幫助讀者更好地理解這兩種技術(shù)的
    的頭像 發(fā)表于 01-07 12:21 ?644次閱讀
    <b class='flag-5'>Arm</b>主板與<b class='flag-5'>x86</b>主板的區(qū)別

    KiCon演講回顧(八):KiCAD 賦能 x86 系統(tǒng)擴(kuò)展板

    “ ?由 Alpha Wang 帶來的最新分享,探索 KiCAD x86 系統(tǒng)擴(kuò)展板中的應(yīng)用! ” LattePanda Mu 集成CPU、內(nèi)存、硬盤,功能相當(dāng)于一臺(tái)筆記本電腦的計(jì)
    的頭像 發(fā)表于 11-27 11:48 ?812次閱讀
    KiCon演講回顧(八):KiCAD 賦能 <b class='flag-5'>x86</b> <b class='flag-5'>系統(tǒng)</b>擴(kuò)展板

    英特爾和AMD組建x86生態(tài)系統(tǒng)咨詢小組

    聯(lián)想2024 Tech World大會(huì)上,英特爾CEO帕特·基辛格宣布了一項(xiàng)重大合作:英特爾與AMD將共同組建X86生態(tài)系統(tǒng)咨詢小組。
    的頭像 發(fā)表于 10-16 16:34 ?639次閱讀

    英特爾將攜手AMD共同捍衛(wèi)x86生態(tài)

    10月16日,英特爾正式公布了一項(xiàng)重大合作計(jì)劃:與AMD攜手成立x86生態(tài)系統(tǒng)咨詢小組。該計(jì)劃由英特爾CEO帕特·基辛格親自宣布。   x86生態(tài)系統(tǒng)咨詢小組(
    的頭像 發(fā)表于 10-16 13:49 ?930次閱讀

    ARM 架構(gòu)工控機(jī)與 X86 架構(gòu)工控機(jī):差異究竟在哪?

    控制系統(tǒng)等行業(yè)。本文詳細(xì)分析一下ARM工控機(jī)與X86架構(gòu)工控機(jī),供大家參考。 應(yīng)用領(lǐng)域:ARM控制器適用于小型應(yīng)用,邊緣計(jì)算、自動(dòng)化控制、物聯(lián)網(wǎng)關(guān)、智慧城市、智能設(shè)備等場(chǎng)景,比如ARM
    的頭像 發(fā)表于 09-20 15:13 ?1019次閱讀
    <b class='flag-5'>ARM</b> 架構(gòu)工控機(jī)與 <b class='flag-5'>X86</b> 架構(gòu)工控機(jī):差異究竟在哪?

    就服務(wù)器而言,ARM架構(gòu)與X86架構(gòu)有什么區(qū)別?各自的優(yōu)勢(shì)在哪里?

    ,x86 架構(gòu)服務(wù)器市場(chǎng)占主導(dǎo),有強(qiáng)大處理能力和廣泛軟件兼容性,廣泛用于企業(yè)數(shù)據(jù)中心。ARM 架構(gòu)服務(wù)器近年崛起,憑借低功耗、高效能優(yōu)勢(shì)云計(jì)算和微服務(wù)領(lǐng)域及嵌入式
    的頭像 發(fā)表于 09-09 14:05 ?2865次閱讀

    樹莓派是x86還是arm

    樹莓派(Raspberry Pi)是一款由英國樹莓派基金會(huì)(Raspberry Pi Foundation)開發(fā)的微型計(jì)算機(jī)。它基于ARM架構(gòu),而非x86架構(gòu)。 一、樹莓派的發(fā)展歷程 樹莓派的誕生
    的頭像 發(fā)表于 08-30 15:42 ?2368次閱讀

    X86架構(gòu)處理器有哪些優(yōu)點(diǎn)和缺點(diǎn)

    X86架構(gòu)處理器作為計(jì)算機(jī)領(lǐng)域的重要組成部分,具有多個(gè)顯著的優(yōu)點(diǎn)和一定的缺點(diǎn)。以下是對(duì)X86架構(gòu)處理器優(yōu)缺點(diǎn)的詳細(xì)分析。
    的頭像 發(fā)表于 08-22 11:25 ?4557次閱讀

    X86架構(gòu)和ARM架構(gòu)有什么區(qū)別

    X86架構(gòu)和ARM架構(gòu)是兩種主流的CPU架構(gòu),它們多個(gè)方面存在顯著的差異。以下是對(duì)這兩種架構(gòu)的詳細(xì)比較,涵蓋了追求目標(biāo)、應(yīng)用領(lǐng)域、技術(shù)特點(diǎn)、性能功耗比、軟件生態(tài)以及未來趨勢(shì)等方面。
    的頭像 發(fā)表于 08-22 11:21 ?1.2w次閱讀

    鴻道Intewell工業(yè)操作系統(tǒng)ARM平臺(tái)生態(tài):飛騰E2000Q

    鴻道Intewell操作系統(tǒng)還具有高度的兼容性和易用性,支持X86架構(gòu),能夠與Intel全系列處理器良好配合,同時(shí)兼容多種外設(shè)和硬件平臺(tái),便于集成和擴(kuò)展。它還注重用戶體驗(yàn),提供友好的開發(fā)和調(diào)試工具,簡(jiǎn)化了
    的頭像 發(fā)表于 08-06 17:40 ?932次閱讀
    鴻道Intewell工業(yè)操作<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>ARM</b><b class='flag-5'>平臺(tái)</b>生態(tài):飛騰E2000Q

    探索RISC-V二進(jìn)制翻譯,openKylin成功SG2042平臺(tái)運(yùn)行X86架構(gòu)軟件!

    眾所周知,新的指令集架構(gòu)發(fā)展初期,往往采用兼容其他架構(gòu)軟件的方法拓展自身生態(tài)體系,如蘋果公司的Rosetta2和微軟的Arm64EC,都是將X86架構(gòu)軟件運(yùn)行在
    的頭像 發(fā)表于 07-24 08:34 ?961次閱讀
    探索RISC-V二進(jìn)制翻譯,openKylin成功<b class='flag-5'>在</b>SG2042<b class='flag-5'>平臺(tái)</b>運(yùn)行<b class='flag-5'>X86</b>架構(gòu)軟件!

    ElfBoard技術(shù)貼|如何將libwebsockets庫編譯為x86架構(gòu)

    之前的文章中,我們已經(jīng)詳細(xì)介紹了如何交叉編譯libwebsockets并將其部署到ELF1開發(fā)板上。然而在調(diào)試階段,發(fā)現(xiàn)將libwebsocketsUbuntu環(huán)境下編譯為x86架構(gòu)可能更為方便
    的頭像 發(fā)表于 07-10 09:38 ?1593次閱讀
    ElfBoard技術(shù)貼|如何將libwebsockets庫編譯為<b class='flag-5'>x86</b>架構(gòu)

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品