OpenHarmony4.x 系統模擬器環境

先下載源碼和編譯程序:

首先查看 OpenHarmony4.1源碼下載、編譯,生成OHOS_Image可執行文件的最簡易流程


準備在QEMU模擬器中運行ARM Cortex-M4的輕型開源鴻蒙系統

官方支持的開發板和模擬器種類-編譯形態整體說明OpenAtom OpenHarmony
已支持的示例工程,Qemu模擬器: arm_mps2_an386、esp32、riscv32_virt、SmartL_E802
Qemu Arm Cortex-m4 mps2-an386 教程:arm_mps2_an386/README_zh.md · OpenHarmony/device_qemu - Gitee.com


在電腦上安裝QEMU模擬器軟件,可以在Windows下安裝,也可以在Linux發行版下安裝

Qemu安裝-QEMU Quick Emulator QEMU在Ubuntu下的安裝流程:device_qemu: Hardware platforms emulation by QEMU | QEMU模擬不同的硬件單板;是下載源碼后再編譯,編譯速度很慢,可以make只編譯ARM部分的,這樣編譯速度會快很多

…/configure --target-list=arm-softmmu,arm-linux-user
make -j4
sudo make install


在Windows下的安裝流程簡單
Windows的所有安裝包QEMU for Windows – Installers (64 bit) 安裝6.2.0及以上的版本都可以
官網下載很慢,可以用國內網站下載 https://www.mydown.com/soft/172/726002172.shtml
Windows下安裝后手動配置好QEMU的環境變量,或者進入到D:\Program Files\qemu的目錄下打開CMD命令行界面

Ubuntu回到OpenHarmony源碼根目錄下,使用命令行用QEMU模擬器運行開源鴻蒙系統

./qemu-run --help
./qemu-run -e out/arm_mps2_an386/qemu_mini_system_demo/OHOS_Image
qemu-run是個腳本,可以用文本文件打開,它里面也是調用的qemu-system-arm,并且傳入了需要的參數


這是開源鴻蒙在QEMU硬件模擬器中運行的結果,在網口時程序跑飛了,可能源碼中對QEMU Cortex-M4的適配有點問題,你也可以再嘗試一下別的QEMU開發板,步驟和上述流程一樣的:

roots@ubuntu:~/openHarmony$ ./qemu-run -e out/arm_mps2_an386/qemu_mini_system_demo/OHOS_Image
board: arm_mps2_an386Enter to start qemu[y/n]:entering kernel init...
LfsLowLevelInit: DiskPartition succeed
LfsLowLevelInit: PartitionFormat succeed
LfsLowLevelInit: mount fs on '/littlefs' succeed
LfsLowLevelInit: mkdir '/littlefs' succeed
tcpip_init start
*************Exception Information**************
Type ? ? ?= 11
ThrdPid ? = 25
Phase ? ? = exc in task
FaultAddr = 0xabababab
Current task info:
Task name = (null)
Task ID ? = 25
Task SP ? = (nil)
Task ST ? = 0x0
Task SS ? = 0x0
Exception reg dump:
PC ? ? ? ?= 0x2100e62a
LR ? ? ? ?= 0x2101b045
SP ? ? ? ?= 0x210b18e0
R0 ? ? ? ?= 0x210a725c
R1 ? ? ? ?= 0x200
R2 ? ? ? ?= 0x210a725c
R3 ? ? ? ?= 0x2108a9b3
R4 ? ? ? ?= 0x0
R5 ? ? ? ?= 0x0
R6 ? ? ? ?= 0x0
R7 ? ? ? ?= 0x210b18e8
R8 ? ? ? ?= 0x0
R9 ? ? ? ?= 0x0
R10 ? ? ? = 0x0
R11 ? ? ? = 0x0
R12 ? ? ? = 0xc8000000
PriMask ? = 0x0
xPSR ? ? ?= 0x610f0000
----- backtrace start -----
backtrace 0 -- lr = 0x21015178
backtrace 1 -- lr = 0x2101b044
backtrace 2 -- lr = 0x210235da
backtrace 3 -- lr = 0x210235e2
backtrace 4 -- lr = 0x2102379a
----- backtrace end -----
qemu: fatal: Lockup: can't escalate 3 to HardFault (current priority -1)R00=210b2ad0 R01=2109fa3f R02=210a18f8 R03=6c0da998
R04=00000000 R05=00000060 R06=00000018 R07=210b1708
R08=00000019 R09=000003e8 R10=218ba1e8 R11=00000000
R12=00000000 R13=210b1708 R14=210011db R15=21000fcc
XPSR=21030006 --C- T handler
s00=00000000 s01=00000000 d00=0000000000000000
s02=00000000 s03=00000000 d01=0000000000000000
s04=00000000 s05=00000000 d02=0000000000000000
s06=00000000 s07=00000000 d03=0000000000000000
s08=00000000 s09=00000000 d04=0000000000000000
s10=00000000 s11=00000000 d05=0000000000000000
s12=00000000 s13=00000000 d06=0000000000000000
s14=00000000 s15=00000000 d07=0000000000000000
s16=00000000 s17=00000000 d08=0000000000000000
s18=00000000 s19=00000000 d09=0000000000000000
s20=00000000 s21=00000000 d10=0000000000000000
s22=00000000 s23=00000000 d11=0000000000000000
s24=00000000 s25=00000000 d12=0000000000000000
s26=00000000 s27=00000000 d13=0000000000000000
s28=00000000 s29=00000000 d14=0000000000000000
s30=00000000 s31=00000000 d15=0000000000000000
FPSCR: 00000000
/home/roots/openHarmony/vendor/ohemu/qemu_mini_system_demo/qemu_run.sh: line 95: 50440 Aborted ? ? ? ? ? ? ? ? (core dumped) qemu-system-arm -M mps2-an386 -m 16M -kernel $elf_file $qemu_option -append "root=dev/vda or console=ttyS0" -nographic
roots@ubuntu:~/openHarmony$?


在Windows的QEMU下可以用這個命令
qemu-system-arm -M mps2-an386 -cpu cortex-m4 -kernel OHOS_Image -serial stdio -nodefaults -nographic
另外一個可供參考的命令:

qemu-system-arm -machine versatileab -cpu cortex-a9 -nographic -monitor null -semihosting -append ‘some program arguments’ -kernel program.axf

D:\Program Files\qemu>qemu-system-arm -M mps2-an386 -cpu cortex-m4 -kernel OHOS_Image -serial stdio -nodefaults -nographic
qemu-system-arm: warning: nic lan9118.0 has no peer
entering kernel init...
LfsLowLevelInit: DiskPartition succeed
LfsLowLevelInit: PartitionFormat succeed
LfsLowLevelInit: mount fs on '/littlefs' succeed
LfsLowLevelInit: mkdir '/littlefs' succeed
tcpip_init start
*************Exception Information**************
Type      = 11
ThrdPid   = 25
Phase     = exc in task
FaultAddr = 0xabababab
Current task info:
Task name = (null)
Task ID   = 25
Task SP   = (nil)
Task ST   = 0x0
Task SS   = 0x0
Exception reg dump:
PC        = 0x2100e62a
LR        = 0x2101b045
SP        = 0x210b18e0
R0        = 0x210a725c
R1        = 0x200
R2        = 0x210a725c
R3        = 0x2108a9b3
R4        = 0x0
R5        = 0x0
R6        = 0x0
R7        = 0x210b18e8
R8        = 0x0
R9        = 0x0
R10       = 0x0
R11       = 0x0
R12       = 0xc8000000
PriMask   = 0x0
xPSR      = 0x610f0000
----- backtrace start -----
backtrace 0 -- lr = 0x21015178
backtrace 1 -- lr = 0x2101b044
backtrace 2 -- lr = 0x210235da
backtrace 3 -- lr = 0x210235e2
backtrace 4 -- lr = 0x2102379a
----- backtrace end -----
qemu: fatal: Lockup: can't escalate 3 to HardFault (current priority -1)R00=210b2ad0 R01=2109fa3f R02=210a18f8 R03=6c0da998
R04=00000000 R05=00000060 R06=00000018 R07=210b1708
R08=00000019 R09=000003e8 R10=218ba1e8 R11=00000000
R12=00000000 R13=210b1708 R14=210011db R15=21000fcc
XPSR=21030006 --C- T handler
s00=00000000 s01=00000000 d00=0000000000000000
s02=00000000 s03=00000000 d01=0000000000000000
s04=00000000 s05=00000000 d02=0000000000000000
s06=00000000 s07=00000000 d03=0000000000000000
s08=00000000 s09=00000000 d04=0000000000000000
s10=00000000 s11=00000000 d05=0000000000000000
s12=00000000 s13=00000000 d06=0000000000000000
s14=00000000 s15=00000000 d07=0000000000000000
s16=00000000 s17=00000000 d08=0000000000000000
s18=00000000 s19=00000000 d09=0000000000000000
s20=00000000 s21=00000000 d10=0000000000000000
s22=00000000 s23=00000000 d11=0000000000000000
s24=00000000 s25=00000000 d12=0000000000000000
s26=00000000 s27=00000000 d13=0000000000000000
s28=00000000 s29=00000000 d14=0000000000000000
s30=00000000 s31=00000000 d15=0000000000000000
FPSCR: 00000000D:\Program Files\qemu>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42931.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42931.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42931.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ArduPilot開源代碼之AP_MSP

ArduPilot開源代碼之AP_MSP 1. 源由2. Library設計2.1 啟動代碼2.2 支持特性2.3 MSP DisplayPort v.s. DJI FPV OSD 3. 重要例程3.1 AP_MSP::init3.2 AP_MSP::loop3.3 AP_MSP::init_backend 4. 實例理解5. 總結6. 參考資料 1. 源由 AP_MSP是處理MSP協議格式的報文數據應用類。…

反向業務判斷邏輯

業務功能需求: 根據id扣減用戶余額 包括:判斷用戶狀態是否正常判斷用戶余額是否充足 正向邏輯: 判斷用戶為正常下,判斷用戶余額充足,進行余額扣減; 》正向邏輯,多重嵌套,代碼不美觀…

??一文帶你入門【NestJS】

??引言 在現代Web開發領域,框架和技術的迭代速度令人咋舌。其中,NestJS作為一款基于Node.js的后端框架,以其卓越的設計理念和強大的功能集,迅速吸引了眾多開發者的眼球。本文將帶你深入了解NestJS的起源、發展,以及…

SpringIOC原理

SpringIOC原理 1.概念 Spring通過一個配置文件描述Bean及Bean之間的依賴關系,利用Java語言的反射功能實例化Bean并建立Bean之間的依賴關系。Spring的IOC容器在完成這些底層工作的基礎上,還提供了Bean實例緩存、生命周期管理、Bean實例代理、事件發布、…

AI提示詞:AI輔導「數學作業」

輔導孩子作業對許多家長來說可能是一件頭疼的事,但這部分工作可以在一定程度上交給AI來完成。 打開ChatGPT4,輸入以下內容: # Role 數學輔導專家## Profile - author: 姜小塵 - version: 02 - LLM: Kimi - language: 中文 - description: 專門為小學生…

加密算法詳解:對稱加密、非對稱加密、Hash算法

對稱加密、非對稱加密和哈希算法是信息安全中的三種主要加密技術,它們各自有不同的特點和用途: 對稱加密(Symmetric Encryption) 工作原理:使用相同的密鑰進行加密和解密。速度:通常非常快,適…

Elasticsearch:Node.js ECS 日志記錄 - Morgan

這是之前系列文章: Elasticsearch:Node.js ECS 日志記錄 - Pino Elasticsearch:Node.js ECS 日志記錄 - Winston 中的第三篇文章。在今天的文章中,我將描述如何使用 Morgan 包針對 Node.js 應用進行日子記錄。此 Morgan Node.j…

包裝器 std::function

使用前&#xff0c;包頭文件&#xff1a;#include <functional> std::function 是 C標準庫 中的一個通用函數包裝器&#xff1b; 它可以儲存、復制、調用任何可調用的對象&#xff0c;包括&#xff1a;函數指針、成員函數、綁定的成員函數、lambda表達式、仿函數等。 1…

Selenium Grid- 讓自動化分布式執行變得可能

什么是 Selenium Grid&#xff1f; Selenium Grid 是 Selenium 的三大組件之一&#xff0c;允許用戶同時在不同的機器和系統上測試不同瀏覽器。 也就是說 Selenium Grid 支持分布式的測試執行。它可以讓你的測試用例在一個分布式的執行環境中運行。 由上圖可見&#xff0c;測試…

linux:基礎知識及命令[圖表]

lsof:查找文件 普通文件、目錄、進程&#xff08;/proc&#xff09;、輸入輸出設備&#xff08;/dev&#xff09;、網絡字節流socket、鏈接文件、管道文件 基本用法 lsof&#xff1a;列出所有打開的文件。lsof /path/to/file&#xff1a;列出打開指定文件的所有進程。lsof -…

大話光學原理:4.散射:瑞利、拉曼、米氏和布里淵

這是一縷柔和的光&#xff0c;在空氣的舞臺上輕盈地跳躍。它悠然自得&#xff0c;在寧靜的空間中緩緩前行。然而&#xff0c;一片細薄透明的介質擋住了它的腳步&#xff0c;它毫無預兆地撞上了這片障礙。在這短暫的接觸中&#xff0c;它被分解成無數微小的粒子&#xff0c;被迫…

增強現實(AR)與虛擬現實(VR)的區別?

隨著科技的飛速發展&#xff0c;增強現實&#xff08;AR&#xff09;與虛擬現實&#xff08;VR&#xff09;技術在各個領域展現出巨大的潛力和應用前景。這兩種技術雖然在體驗和實現方式上有所不同&#xff0c;但都為用戶提供了全新的感知體驗。本文將詳細解析AR和VR的概念、區…

機器視覺/自然語言/生成式人工智能綜合應用實驗平臺-實訓平臺-教學平臺

AIGC是人工智能1.0時代進入2.0時代的重要標志&#xff0c;MIT 科技評論也將Al合成數據列為2022年十大突破性技術之一&#xff0c;甚至將生成性Al(Generative Al) 稱為是AI領域過去十年最具前景的進展。同時&#xff0c;AIGC領域崗位需求數量暴漲。高校方面在人工智能專業與機器…

javascript 處理###分隔的字符串

在 JavaScript 中&#xff0c;可以使用 split 方法將字符串按 ### 分隔成數組。以下是一個示例代碼&#xff0c;展示了如何處理由 ### 分隔的字符串&#xff1a; 示例代碼 // 示例字符串 let str "part1###part2###part3###part4";// 使用 split 方法按 ### 分隔字…

DEJA_VU3D - Cesium功能集 之 122-體元渲染(官方Voxels)

前言 編寫這個專欄主要目的是對工作之中基于Cesium實現過的功能進行整合,有自己琢磨實現的,也有參考其他大神后整理實現的,初步算了算現在有差不多實現小140個左右的功能,后續也會不斷的追加,工作原因可能無法像以前那樣周更2-3篇,但是閑下來還是會不定期的更新,Cesium…

tensorflow張量生成以及常用函數

張量tensor&#xff1a;多維數組&#xff08;列表&#xff09; 階&#xff1a;張量的維數 維數 階 名字 例子 0-D 0 標量 scalar s 1&#xff0c; 2&#xff0c; 3 1-D 1 向量 vector…

How do I format markdown chatgpt response in tkinter frame python?

題意&#xff1a;怎樣在Tkinter框架中使用Python來格式化Markdown格式的ChatGPT響應&#xff1f; 問題背景&#xff1a; Chatgpt sometimes responds in markdown language. Sometimes the respond contains ** ** which means the text in between should be bold and ### te…

Python數據分析-天氣類型預測分析

一、研究背景 近年來&#xff0c;隨著全球氣候變化的加劇&#xff0c;天氣預報和氣象預測變得越來越重要。準確的天氣預測不僅能夠幫助人們做好日常生活的安排&#xff0c;還能在農業生產、防災減災等方面起到關鍵作用。隨著大數據技術和機器學習算法的快速發展&#xff0c;利…

科普文:深入理解負載均衡(四層負載均衡、七層負載均衡)

概敘 網絡模型&#xff1a;OSI七層模型、TCP/IP四層模型、現實的五層模型 應用層&#xff1a;對軟件提供接口以使程序能使用網絡服務&#xff0c;如事務處理程序、文件傳送協議和網絡管理等。&#xff08;HTTP、Telnet、FTP、SMTP&#xff09; 表示層&#xff1a;程序和網絡之…

基于vue的地圖特效(飛線和標注)

這段代碼的主要功能是在頁面加載完成后&#xff0c;初始化一個 echarts 地圖圖表&#xff0c;并配置了相關的地理數據、散點數據、線條數據以及樣式效果&#xff0c;最后在指定的 div 元素中進行展示。 需要再vue中的框架實現&#xff0c;不能單獨直接運行。 標注 type: effe…