当前位置: 首页 > news >正文

福田网站建设seo信科重庆建设工程招标网站

福田网站建设seo信科,重庆建设工程招标网站,海外网页,网络营销咨询服务开源鸿蒙NEXT星河版内核嵌入式编程 作者将狼才鲸创建日期2024-03-08 CSDN文章阅读地址Gitee文章下载地址 一、前景提要 2024年1月18日#xff0c;华为放出HarmonyOS NEXT 鸿蒙星河版开发者预览版本#xff08;不是HarmonyOS NEXT版#xff0c;是HarmonyOS NEXT星河版…开源鸿蒙NEXT星河版内核嵌入式编程 作者将狼才鲸创建日期2024-03-08 CSDN文章阅读地址Gitee文章下载地址 一、前景提要 2024年1月18日华为放出HarmonyOS NEXT 鸿蒙星河版开发者预览版本不是HarmonyOS NEXT版是HarmonyOS NEXT星河版首次提到用鸿蒙内核暂命名取代了Linux内核。 该内核源码还未放出当前能下载到的还是OpenHarmony4.1的版本里面的轻型小型系统使用的还是LiteOS内核标准系统使用的还是Linux内核。等纯国产内核释出后我会重新修改此文档。 开源鸿蒙OpenHarmony和华为HarmonyOS是两样东西华为鸿蒙里面包含非开源代码。因为很多嵌入式产品单价低、利润薄、出货量大所以我只会跟踪开源鸿蒙OpenHarmony的鸿蒙内核和底层代码对华为鸿蒙不涉及。 参考网址 开源鸿蒙系统介绍-OpenHarmony开源项目 Gitee开源鸿蒙介绍-OpenHarmony Gitee源码仓库 开源鸿蒙子系统介绍设备开发系统移植介绍-docs/ zh-cn / device-dev下载源码时的顶层仓库-OpenHarmony / manifest下载源码的4种方法-获取源码b站视频教程-OpenHarmony开发者一些开源鸿蒙的板子-学习-开发样例一些开源鸿蒙的产品-兼容性测评结果设备开发的官方教程-学习-学习路径开发板和模块开发的官方教程-学习-在线课程-全部课程 二、OpenHarmony源码下载、编译与运行 1、源码整体感知 这是OpenHarmony的源码目录 jimubuntu:~/OpenHarmony$ ls -a . build developtools foundation .repo .. build.py device .gn test applications build.sh docs kernel third_party base commonlibrary drivers productdefine vendor159,898 items, totalling 11.6 GB当前下载的是单一芯片单一系统类型的代码总量11G如果是全量代码OpenHarmony4.0会有30G。OpenHarmony有Gitee源码仓库https://gitee.com/openharmony 但是和其它简单的Git仓库不一样它不是通过 git clone xxx 一个命令就能下载全量代码的而是和安卓类似需要用到manifest这个顶层仓库并且通过repo工具把很多个Git仓库的特定版本拉到本地同一个目录。 顶层目录下没有.git的文件夹只有.repo的文件夹而底下的每个文件夹可能就是单独的Git仓库有自己的.git隐藏文件夹 参考网址 官方文档-获取源码通过特定命令单独获取OpenHarmony标准、轻量、小型系统指定开发板的代码华为云14天鸿蒙设备开发-Day1源码获取使用码云Gitee获取开源鸿蒙欧拉系统源代码OpenHarmony-v4.1-beta1.md 海思二OpenHarmony获取源码 git repo工具详细使用教程——彻底学会Android repo的使用如果获取鸿蒙源代码 特定的开发板介绍 OpenHarmony开发板列表官方支持的所有开发板和芯片轻量、小型、标准系统的区别-快速入门概述OpenHarmony / docs 各个子系统介绍 官方的轻型系统开发板中我中意的有瑞芯微RK2206和STM32F407IGT6信息如下 OpenHarmony / device_soc_rockchipOpenHarmony / device_board_lockzhinerOpenHarmony / vendor_lockzhiner 下载源码时可以指定目标硬件开源鸿蒙的源码下载步骤和安卓类似使用repo工具和https://gitee.com/openharmony/manifest 这个仓库manifet是组织了很多独立的git仓库一起给你按tag拉出一份全量代码 从manifest仓库你们的readme可知我下载时可以指明参数例如 ohos:mini 轻型系统ohos:chipset 选择一款芯片repo init -u URL -b master 下载整个系统全量代码30多Grepo init -u URL -b master -g ohos:mini 下载轻量系统全量代码。repo init -u URL -b master -m chipsets/chipsetN.xml -g ohos:mini 下载轻量系统指定芯片的代码。在 https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/dev-board-on-the-master.md 里面有支持的所有开发板和芯片我选中了ARM Cortex-M内核的Niobe407开发板的STM32F407IGT6芯片小凌派-RK2206开发板的RK2206还有使用QEMU虚拟机的虚拟开发板它们的型号和配置是 https://gitee.com/openharmony/manifest/blob/master/chipsets/niobe407/niobe407.xml 、 https://gitee.com/openharmony/manifest/blob/master/chipsets/lockzhiner/lingpi.xml 、 https://gitee.com/openharmony/manifest/blob/master/chipsets/qemu/qemu.xml 2、源码下载 2.1、最简单的下载方式 推荐你下载OpenHarmony4.1全量代码最简单直接网址下载总共30G左右不用解决Linux环境下的各种依赖错误。 下载网址 https://repo.huaweicloud.com/openharmony/os/4.1-Beta1/code-v4.1-Beta1.tar.gz出了新版本后也是进入上面类似的网址进入新版本的文件夹种下载压缩包即可。 2.2、常规的下载方式 如果你有过Linux内核开发经验知道接下来要使用OpenHarmony在哪款板子上运行则建议你下载特定类型轻型小型标准、特定芯片的系统此下载步骤需要在Linux发行版如Ubuntu下进行总共11G左右 安装VMware或者VMware-Player或者Virual Box虚拟机初学者建议使用VMware网上教程更多过程略安装Ubuntu系统过程略我使用的是Ubuntu18.04.6执行命令 推荐使用Ubuntu18.04及以上版本Ubuntu16.04不行Windows MSYS2 MinGW64不行安装Ubuntu后把“电源”和“隐私”的设置都改成永远不锁屏否则一锁屏后下载就会停住需要退出重新来容易导致文件冲突建议在你创建好的文件夹内打开命令行如果你在~家目录打开命令行则下载的源码文件都在家目录下会和其它文件混在一起文件夹很多分辨不出哪个是系统原有的想再剪切到别的文件就困难了。进入Ubuntu系统后在桌面上按鼠标右键然后点击打开终端这一项老系统可以按Ctrl Alt T打开命令行终端默认是在~家目录mkdir ~/openHarmony /* 家目录下新建文件夹 */cd ~/openHarmony /* 进入新建的文件夹 */sudo apt-get install git /* 安装Git软件 */git config --global user.name jimXXX /* 配置Git输入你自己的名字 */git config --global user.email jimXXX163.com /* 配置Git输入你自己的邮箱 */git config --global credential.helper store /* 配置Git为自动保存账号密码 */ssh-keygen -t rsa -C jimXXX163.com /* 生成Gitee网站要用到的密钥这里是输入你自己的邮箱回车三次 */gedit ~/.ssh/id_rsa.pub /* 复制密钥复制里面全部的文本内容 */打开网址 https://gitee.com/ 注册账号点击齿轮状的设置点击安全设置中的SSH公钥将刚刚复制的内容填入到“公钥”这个文本框内点击确定输入密码即添加完Git公钥mkdir ~/binsudo apt install curlcurl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo chmod ax ~/bin/reposudo apt install python3-pip如果用了Ubuntu老版本系统如Ubuntu18.04则还要继续执行下面步骤sudo apt-get install python3echo alias pythonpython3 ~/.bashrcsource ~/.bashrcpython3 --versionwhereis python3sudo ln -s /usr/bin/python3 /usr/bin/pythonpip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests如果使用了Ubuntu16.04及以前的系统这条命令可能会报错需要你自己解决gedit ~/.bashrc 打开桌面~下的.bashrc隐藏文件夹在最后面加上一句 export PATH~/bin:$PATH保存退出source ~/.bashrc 生效环境变量echo $PATH 查看环境变量repo init -u https://gitee.com/openharmony/manifest -b master -m chipsets/niobe407.xml -g ohos:mini 做好下载指定开发板指定芯片源码的准备我这里是下载ARM Cortex-M内核的Niobe407开发板的STM32F407IGT6芯片如果下载全量代码则使用 repo init -u gitgithub.com:openharmony/manifest.git -b master --no-repo-verify如果下载QEMU模拟器的代码则使用 repo init -u https://gitee.com/openharmony/manifest -b master -m chipsets/qemu.xml -g ohos:minirepo sync -c 开始下载等待时间会比较久需要设置电脑不待机如果中途卡住可以Ctrl C退出当前命令并再次repo sync -c继续下载如果继续下载有冲突则手动删除有冲突的文件夹后继续使用repo sync -c你在哪个文件夹路径使用repo init就会在这个路径形成一个.repo隐藏文件夹已经下载完的文件夹会在当前目录中出现sudo apt-get install git-lfsrepo forall -c git lfs pull继续拉取大文件下载完之后的文件结构如下 jimubuntu:~/OpenHarmony$ ls -a . build developtools foundation .repo .. build.py device .gn test applications build.sh docs kernel third_party base commonlibrary drivers productdefine vendor159,898 items, totalling 11.6 GB当前下载的是单一芯片单一系统类型的代码总量11G如果是全量代码OpenHarmony4.0会有30G。repo仓库是由多个git仓库拼起来的源码根目录下是.repo隐藏文件夹里面的某些子文件夹下如果有.git隐藏文件夹那么它就是一个独立的git仓库 3、编译系统生成OHOS_Image可执行文件 编译OpenHarmony源码前先下载源码 步骤见开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程 确定你要编译哪一块开发板我这里使用QEMU模拟器虚拟开发板 可以编译的开发板和芯片列表含QEMU模拟器 - 编译形态整体说明QEMU模拟器 ARM Coterx-M核 mini轻型系统的配置有 qemu_mini_system_demo arm_mps2_an386 qemu liteos_m mini arm-cortex-m4qemu_cm55_mini_system_demo arm_mps3_an547 qemu liteos_m mini arm-cortex-m55Qemu Arm Cortex-m4 mps2-an386 教程Qemu Arm Cortex-m55 mps3-an547 教程QEMUQuick Emulator鸿蒙QEMU模拟器操作指南 下载安装VMware虚拟机 Ubuntu发行版系统 Git软件 repo软件 Python 如果你之前不是下载的全量30G代码是下载的别的开发板的代码那么在下载的openHarmony目录下再执行一次下面的命令多下一份qemu模拟器的源码使用 repo init -u https://gitee.com/openharmony/manifest -b master -m chipsets/qemu.xml -g ohos:mini 初始化对应于QEMU模拟器类似于开发板的全套源码按之前的的步骤接着下载鸿蒙源码 repo sync -crepo forall -c ‘git lfs pull’ 3.1、最简单的编译流程使用Docker 使用鸿蒙官方已经准备好的Docker环境 Docker编译环境sudo apt install docker.iosudo docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2cd ~/openHarmony 进入到你下载的开源鸿蒙源码的路径再执行下面这一条docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2这时已经进入到docker的虚拟环境 jimubuntu:~/openHarmony$ sudo docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2 root949f932a2f80:/home/openharmony# ls applications build build.sh developtools docs foundation ohos_config.json prebuilts qemu-run third_party base build.py commonlibrary device drivers kernel out productdefine test vendor root949f932a2f80:/home/openharmony#python3 build.py -p qemu_mini_system_demoohemu 你要编译什么板子就使用什么命令我这里是编译qemu的轻型系统开始编译轻型系统编译时间会需要很久十几分钟……编译工具分为轻型、小型、标准而芯片、开发板的归属也分为这三种下载的工具和你编译的参数必须属于同一种类否则会编译各种报错 在编译结束后编译所生成的文件都会被存放在out/{device_name}/目录下结果镜像输出在out/{device_name}/packages/phone/images/目录下。 如果遇到报错则解决报错 编译成功后是这样的打印 [OHOS INFO] [1614/1615] STAMP obj/build/ohos/images/make_images.stamp [OHOS INFO] [1615/1615] STAMP obj/build/core/gn/images.stamp [OHOS INFO] ccache_dir /root/.ccache, ccache_exec /usr/bin/ccache [OHOS INFO] -------------------------------------------- [OHOS INFO] ccache summary: [OHOS INFO] ccache version: 3.7.7 [OHOS INFO] cache hit (direct): 0 [OHOS INFO] cache hit (preprocessed): 0 [OHOS INFO] cache miss: 0 [OHOS INFO] hit rate: 0.00% [OHOS INFO] miss rate: 0.00% [OHOS INFO] Cache size (GB): [OHOS INFO] --------------------------------------------- [OHOS INFO] c targets overlap rate statistics [OHOS INFO] subsystem files NO. percentage builds NO. percentage overlap rate [OHOS INFO] hiviewdfx 12 0.8% 12 0.8% 1.00 [OHOS INFO] kernel 902 63.5% 902 63.5% 1.00 [OHOS INFO] security 61 4.3% 61 4.3% 1.00 [OHOS INFO] startup 26 1.8% 26 1.8% 1.00 [OHOS INFO] systemabilitymgr 15 1.1% 15 1.1% 1.00 [OHOS INFO] thirdparty 393 27.7% 393 27.7% 1.00 [OHOS INFO] [OHOS INFO] c overall build overlap rate: 1.00 [OHOS INFO] [OHOS INFO] [OHOS INFO] qemu_mini_system_demoohemu build success [OHOS INFO] Cost time: 0:05:47 rootff38bf1e3e75:/home/openharmony# jimubuntu:~/openHarmony/out/arm_mps2_an386/qemu_mini_system_demo$ ls all_parts_host.json build_configs config.h kconfig_files.txt OHOS_Image.bin src_installed_parts.json all_parts_info.json build.log error.log libs OHOS_Image.map src_sa_infos_tmp.json args.gn build.ninja etc NOTICE_FILES OHOS_Image.sym.sorted startup binary_installed_parts.json build.ninja.d gen obj packages thirdparty build.1709259296.3884952.log build.trace.gz hiviewdfx OHOS_Image security toolchain.ninja build.1709259767.6772568.log config.gni kconfig_env.txt OHOS_Image.asm sorted_action_duration.txt jimubuntu:~/openHarmony/out/arm_mps2_an386/qemu_mini_system_demo$ 生成的系统镜像image是这里面的OHOS_Image文件 如需退出Docker执行exit命令即可。这个命令会停止当前的Docker容器并返回到您的操作系统。 下一步就可以把编译好的操作系统在QEMU模拟器中运行起来啦。 3.2、使用ohos-build工具编译 最常用的编译方式是使用hb命令也就是ohos-build工具这是鸿蒙自己的Python工具 了解OpenHarmony-编译 OpenHarmony支持hb和build.sh两种编译方式。 安装hb编译工具 安装库和工具集 .sh方式编译构建指导 python3 -V 查看python版本如果是3.8以下则 sudo apt install python3.8sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2sudo update-alternatives --config python3python3 -V python3 -m pip install --user ohos-build pip3是Python的包管理工具用于安装、升和管理Python包需要python3.8以上的版本 安装流程介绍 hb安装异常处理快速入门-如何编译程序安装库和工具集-编译流程 如果你是Ubuntu18.04则先执行 cd /usr/lib/python3/dist-packagescp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so apt_pkg.cpython-39m-x86_64-linux-gnu.so apt_pkg.socd - 再安装依赖库 sudo apt-get update sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g-multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev仔细看安装后的信息如果提示有哪些包未安装成功则你需要单独安装 sudo apt-get install g-multilibsudo apt-get install gcc-arm-linux-gnueabisudo apt-get install gcc-multilibsudo apt-get install lib32ncurses5-devsudo apt-get install lib32z1-devsudo apt-get install libc6-dev-i386sudo apt-get install gcc-7-arm-linux-gnueabisudo apt-get install libc6-amd64:i386sudo aptitude install gcc-multilib:i386 使用aptitude命令可以自动解决包依赖关系需要先安装aptitude软件 已经按前面的流程下载好源码 cd ~/openHarmony 进入到你下载的源码根目录 bash build/prebuilts_download.sh 安装和芯片相关的编译器和二进制工具全自动的会下载的同时进行安装要等待一段时间有进度条 python3 -m pip install --user build/hb gedit ~/.bashrc 将 export PATH~/.local/bin:$PATH 加入到最后一行并保存退出 source ~/.bashrc hb --help 这个命令执行时可能有报错有什么错误就解决什么错误例如用下面方法解决报错 python3 -m pip uninstall ohos-buildpython3 -m pip install --user ohos-build0.4.3 hb set 进行编译设置 第一步目录输入. 选择源码根目录的当前目录第二步选择开发板我使用上下方向键选择qemu_mini_system_demo这款qemu的模拟器开发板ARM Cortex-M4内核的虚拟芯片 编译形态整体说明含QEMU可以编译哪些开发板和芯片Qemu Arm Cortex-m4 mps2-an386 教程qemu_mini_system_demo arm_mps2_an386 qemu liteos_m mini arm-cortex-m4 jimubuntu:~/openHarmony$ hb set [OHOS INFO] Input code path: . OHOS Which product do you need? qemu_mini_system_demohb build -f 开始编译有报错则处理报错 出现build success表示编程成功然后进行烧录或者直接用QEMU模拟器进行运行。 参考资料 基于OpenHarmony搭建的Qemu仿真实验环境ohos-build 安装失败分析基于Ubuntu20.04搭建OpenHarmony v3.0.6的qemu仿真环境基于OpenHarmony搭建的Qemu仿真实验环境搭建一个鸿蒙运行环境来一窥神秘鸿蒙 3.3 使用传统Linux脚本方式编译 如果你用hb的方式编译始终出错那么可以试试使用传统.sh脚本的方式 使用build.sh脚本编译源码 ./build.sh --product-name qemu_mini_system_demo --ccache /* 需要换成你自己开发板的名称我这里使用的是QEMU模拟器的虚拟开发板 */ 有报错则解决报错 检查编译结果。编译完成后log中显示如下 post_processbuild name successful.编译所生成的文件都归档在out/{device_name}/目录下结果镜像输出在out/{device_name}/packages/phone/images/ 目录下。 如果依然编译有报错那还可以试试Docker 如果你只是想编译应用程序那么可以使用DevEco Device Tool 应用编译 3、系统运行 如果你是在某一块开发板上运行开源鸿蒙系统那么请参照该开发板对应的sdk文档我准备在QEMU模拟器中运行ARM Cortex-M4的轻型开源鸿蒙系统 官方支持的开发板和模拟器种类-编译形态整体说明已支持的示例工程Qemu模拟器: arm_mps2_an386、esp32、riscv32_virt、SmartL_E802Qemu Arm Cortex-m4 mps2-an386 教程 在电脑上安装QEMU模拟器软件可以在Windows下安装也可以在Linux发行版下安装 Qemu安装-QEMU Quick Emulator QEMU在Ubuntu下的安装流程是下载源码后再编译编译速度很慢可以make只编译ARM部分的这样编译速度会快很多 …/configure --target-listarm-softmmu,arm-linux-usermake -j4sudo make install 在Windows下的安装流程更简单Windows的所有安装包 安装6.2.0及以上的版本都可以官网下载很慢可以用国内网站下载 https://www.mydown.com/soft/172/726002172.shtmlWindows下安装后需要手动配置好QEMU的环境变量或者直接进入到D:\Program Files\qemu的目录下打开CMD命令行界面这样才能调用qemu的命令 Ubuntu回到OpenHarmony源码根目录下使用命令行用QEMU模拟器运行开源鸿蒙系统 ./qemu-run --help./qemu-run -e out/arm_mps2_an386/qemu_mini_system_demo/OHOS_Imageqemu-run是个脚本可以用文本文件打开它里面也是调用的qemu-system-arm这个命令只是自动传入了需要的参数 这是开源鸿蒙在QEMU硬件模拟器中运行的结果当前源码中对QEMU Cortex-M4的适配有点问题会有程序跑飞的报错你可以再尝试一下别的QEMU开发板或者以后用OpenHarmony新版本的程序再试一次 jimubuntu:~/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: cant escalate 3 to HardFault (current priority -1)R00210b2ad0 R012109fa3f R02210a18f8 R036c0da998 R0400000000 R0500000060 R0600000018 R07210b1708 R0800000019 R09000003e8 R10218ba1e8 R1100000000 R1200000000 R13210b1708 R14210011db R1521000fcc XPSR21030006 --C- T handler s0000000000 s0100000000 d000000000000000000 s0200000000 s0300000000 d010000000000000000 s0400000000 s0500000000 d020000000000000000 s0600000000 s0700000000 d030000000000000000 s0800000000 s0900000000 d040000000000000000 s1000000000 s1100000000 d050000000000000000 s1200000000 s1300000000 d060000000000000000 s1400000000 s1500000000 d070000000000000000 s1600000000 s1700000000 d080000000000000000 s1800000000 s1900000000 d090000000000000000 s2000000000 s2100000000 d100000000000000000 s2200000000 s2300000000 d110000000000000000 s2400000000 s2500000000 d120000000000000000 s2600000000 s2700000000 d130000000000000000 s2800000000 s2900000000 d140000000000000000 s3000000000 s3100000000 d150000000000000000 FPSCR: 00000000 /home/jim/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 rootdev/vda or consolettyS0 -nographic jimubuntu:~/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\qemuqemu-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: cant escalate 3 to HardFault (current priority -1)R00210b2ad0 R012109fa3f R02210a18f8 R036c0da998 R0400000000 R0500000060 R0600000018 R07210b1708 R0800000019 R09000003e8 R10218ba1e8 R1100000000 R1200000000 R13210b1708 R14210011db R1521000fcc XPSR21030006 --C- T handler s0000000000 s0100000000 d000000000000000000 s0200000000 s0300000000 d010000000000000000 s0400000000 s0500000000 d020000000000000000 s0600000000 s0700000000 d030000000000000000 s0800000000 s0900000000 d040000000000000000 s1000000000 s1100000000 d050000000000000000 s1200000000 s1300000000 d060000000000000000 s1400000000 s1500000000 d070000000000000000 s1600000000 s1700000000 d080000000000000000 s1800000000 s1900000000 d090000000000000000 s2000000000 s2100000000 d100000000000000000 s2200000000 s2300000000 d110000000000000000 s2400000000 s2500000000 d120000000000000000 s2600000000 s2700000000 d130000000000000000 s2800000000 s2900000000 d140000000000000000 s3000000000 s3100000000 d150000000000000000 FPSCR: 00000000D:\Program Files\qemu三、源码讲解 这是下载好的源码文件夹 jimubuntu:~/openHarmony$ tree -a -L 1 . ├── applications ├── base ├── build ├── build.py - build/build_scripts/build.py ├── build.sh - build/build_scripts/build.sh ├── commonlibrary ├── developtools ├── device ├── docs ├── drivers ├── foundation ├── .gn - build/core/gn/dotfile.gn ├── kernel ├── ohos_config.json ├── out ├── prebuilts ├── productdefine ├── qemu ├── qemu-run - vendor/ohemu/common/qemu-run ├── .repo ├── test ├── third_party └── vendor18 directories, 5 files jimubuntu:~/openHarmony$ tree -a -L 2 . ├── applications │ └── sample ├── base │ ├── global │ ├── hiviewdfx │ ├── iothardware │ ├── powermgr │ ├── security │ ├── sensors │ ├── startup │ └── update ├── build │ ├── build_scripts │ ├── bundle.json │ ├── common │ ├── compile_env_allowlist.json │ ├── compile_standard_whitelist.json │ ├── component_compilation_whitelist.json │ ├── config │ ├── core │ ├── docs │ ├── .git │ ├── .gitattributes │ ├── .gitee │ ├── .gitignore │ ├── gn_helpers.py │ ├── hb │ ├── LICENSE │ ├── lite │ ├── misc │ ├── OAT.xml │ ├── ohos │ ├── ohos.gni │ ├── ohos_system.prop │ ├── ohos_var.gni │ ├── prebuilts_download_config.json │ ├── prebuilts_download.py │ ├── prebuilts_download.sh │ ├── print_python_deps.py │ ├── __pycache__ │ ├── README_zh.md │ ├── rust │ ├── scripts │ ├── subsystem_compoents_whitelist.json │ ├── subsystem_config_example.json │ ├── subsystem_config.json │ ├── templates │ ├── test │ ├── test.gni │ ├── toolchain │ ├── tools │ ├── version.gni │ └── zip.py ├── build.py - build/build_scripts/build.py ├── build.sh - build/build_scripts/build.sh ├── commonlibrary │ ├── c_utils │ └── utils_lite ├── developtools │ ├── global_resource_tool │ ├── integration_verification │ ├── packing_tool │ └── syscap_codec ├── device │ └── qemu ├── docs │ ├── CODEOWNERS │ ├── DCO.txt │ ├── docker │ ├── en │ ├── .git │ ├── .gitattributes │ ├── .gitignore │ ├── image.png │ ├── LICENSE │ ├── OAT.xml │ ├── README.md │ ├── README_zh.md │ └── zh-cn ├── drivers │ ├── hdf_core │ ├── liteos │ └── peripheral ├── foundation │ ├── ability │ ├── ai │ ├── arkui │ ├── bundlemanager │ ├── communication │ ├── distributedhardware │ ├── graphic │ ├── multimedia │ ├── systemabilitymgr │ └── window ├── .gn - build/core/gn/dotfile.gn ├── kernel │ ├── liteos_a │ ├── liteos_m │ └── uniproton ├── ohos_config.json ├── out │ ├── arm_mps2_an386 │ ├── arm_virt │ ├── hb_args │ ├── ohos_config.json │ ├── preloader │ └── sdk ├── prebuilts │ ├── ark_tools │ ├── build-tools │ ├── clang │ ├── cmake │ ├── develop_tools │ ├── gcc │ ├── mingw-w64 │ ├── packing_tool │ ├── python │ └── rustc ├── productdefine │ └── common ├── qemu │ ├── qemu-6.2.0 │ └── qemu-6.2.0.tar.xz ├── qemu-run - vendor/ohemu/common/qemu-run ├── .repo │ ├── manifests │ ├── manifests.git │ ├── manifest.xml │ ├── project.list │ ├── project-objects │ ├── projects │ ├── repo │ └── .repo_fetchtimes.json ├── test │ ├── ostest │ ├── testfwk │ └── xts ├── third_party │ ├── bounds_checking_function │ ├── cJSON │ ├── cmsis │ ├── curl │ ├── FatFs │ ├── ffmpeg │ ├── FreeBSD │ ├── freetype │ ├── glslang │ ├── gn │ ├── googletest │ ├── harfbuzz │ ├── jerryscript │ ├── jinja2 │ ├── json │ ├── libjpeg-turbo │ ├── libpng │ ├── libunwind │ ├── littlefs │ ├── ltp │ ├── lwip │ ├── lzma │ ├── markupsafe │ ├── mbedtls │ ├── mksh │ ├── mtdev │ ├── musl │ ├── nghttp2 │ ├── NuttX │ ├── openssl │ ├── optimized-routines │ ├── popt │ ├── PyYAML │ ├── qrcodegen │ ├── spirv-headers │ ├── spirv-tools │ ├── sqlite │ ├── toybox │ ├── unity │ ├── vk-gl-cts │ ├── wpa_supplicant │ └── zlib └── vendor└── ohemu140 directories, 42 files jimubuntu:~/openHarmony$ 1、编译工具 编译源码可以使用hb命令(ohos-build)可以使用build.sh脚本也可以使用build.py脚本其中编译脚本在build这个git仓库里hb命令的ohos-build源码也在build/lite目录下可以通过这个仓库学习编译整套源码的流程。 对应的仓库地址为https://gitee.com/openharmony/build使用了Gn、Ninja、Python工具类似于Linux中的Cmake、Makefile、Kconfig、Kbuild这些 Ninja是谷歌用于替代Makefile的开源编译工具使用并行机制提高速度源码地址是 https://gitee.com/openharmony/third_party_ninja Ninja 构建系统-介绍
http://www.zqtcl.cn/news/430497/

相关文章:

  • 百度提交网站收录入口郑州网站app开发
  • 自己的身份已经网站备案了品牌建设目标包括哪些方面
  • 中国免费网站服务器下载保定网站制作系统
  • 深圳app网站设计数据库网站建设公司
  • 手机网站程序下载做地方黄页网站
  • 网站开发时如何设计英文版本专业vi机构
  • 黄骅市人事考试网电商网站怎样优化
  • 可信网站认证必须做吧陕西做网站的
  • 网站怎么静态化wordpress视频安装教程
  • 合浦县建设局网站网站备案号如何查询
  • 网站跳转代码 html亚马逊使用wordpress做的
  • 做哪一类的网站可以短时间变现东莞大朗网站设计
  • 框架网站模板建设淘宝客网站.lc和ev
  • 驻马店做网站推广涞源县住房和城乡建设局网站
  • 国外seo大神如何做网站 seo
  • 网站建设外文版要求昆山网站建设怎么样
  • 合肥知名网站制作网站建设宣传的目的
  • 曲阜做网站哪家好asp.net网站打不开html页面
  • 品牌网站开发普通人做电商赚钱吗
  • 网站建设与维护理解视频当背景图片 网站开发
  • 站酷设计师网站wordpress 设置静态内容缓存时间
  • 网站推广做什么好看的电商网站模板下载
  • 如何打破违法网站wordpress 无法上传文件
  • 自己做网站的软件下载wordpress发布文章 更新失败
  • 电大企业网站建设论文范文搜狗推广登录入口
  • 建设银行u盾用网站打不开软件工程师证书有哪些
  • 网站建设域名的购买多少钱注册的公司才能参加投标
  • 做婚纱网站策划方案php网站超市源码
  • 济南网站搭建公司有哪些做企业网站的
  • 360做企业网站多少钱凡客诚品网