【DAYU400】龙芯2K0500 OpenHarmony代码开源
龙芯指令集介绍
2020年,龙芯中科基于二十年的CPU研制和生态建设积累推出了龙架构(LoongArch™),包括基础架构部分和向量指令、虚拟化、二进制翻译等扩展部分,近2000条指令。
龙架构具有较好的自主性、先进性与兼容性。
龙架构从整个架构的顶层规划,到各部分的功能定义,再到细节上每条指令的编码、名称、含义,在架构上进行自主重新设计,具有充分的自主性。
龙架构摒弃了传统指令系统中部分不适应当前软硬件设计技术发展趋势的陈旧内容,吸纳了近年来指令系统设计领域诸多先进的技术发展成果。同原有兼容指令系统相比,不仅在硬件方面更易于高性能低功耗设计,而且在软件方面更易于编译优化和操作系统、虚拟机的开发。
先进性:吸收近年来指令集发展的先进技术成果,提高代码效率
兼容性:融合X86、ARM等的主要特点,高效支持二进制翻译
模块化:基础部分、二进制翻译、虚拟化、向量化
扩展性:指令槽留有余地,利于今后的持续演进
2K0500开发板介绍
目前2K0500代码支持DAYU400和DAYU401开发板
其中DAYU401为广东龙芯和润和联合设计的LS-2K500迷你开发板,基于龙芯2K500处理器,采用单板的方式设计。该开发板主要
包含CPU、内存、网口、NAND FLASH等主要外设,常用接口以插针形式引出。
DAYU401为润和设计的功能齐全的主板,包含核心板、底板
获取 OpenHarmony-v4.1-Release 基础代码
repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v4.1-Release --no-repo-verify
repo sync -c -j4
repo forall -c 'git lfs pull'
./build/prebuilts_download.sh
3.2 替换(更新)vendor/hihope、device/board/hihope、device/soc/loongson 三个仓库:
cd vendor
rm hihope # 删除 OpenHarmony-v4.1-Release 基础代码中的 vendor/hihope 仓库
git clone https://gitee.com/openharmony-sig/vendor_hihope.git hihope
cd device/board
rm hihope # 删除 OpenHarmony-v4.1-Release 基础代码中的 device/board/hihope 仓库
git clone https://gitee.com/openharmony-sig/device_board_hihope hihope
cd device/soc
# OpenHarmony-v4.1-Release 基础代码中没有 loongson 仓库
git clone https://gitee.com/ohos4la-l1/device_soc_loongson loongson
3.3 获取 5.10.97 版本的Linux内核代码(v4.1-Release的内核为 5.10.184版本,当前的内核补丁尚无法完美打入,暂先使用3.2-Release的5.10.97 版本的内核)
cd kernel/linux/
cp -r linux-5.10 linux-5.10.97
cd linux-5.10.97
git fetch origin OpenHarmony-3.2-Release:OpenHarmony-3.2-Release
git switch OpenHarmony-3.2-Release
注意,这里是另外拉取一份 linux-5.10.97 版本的内核代码,不影响原来的 linux-5.10 的代码,在 kernel/linux/build/kernel.mk 文件中有如下判断:
ifeq ($(KERNEL_ARCH), loongarch)
KERNEL_SRC_PATH := $(OHOS_BUILD_HOME)/kernel/linux/linux-5.10.97
else
KERNEL_SRC_PATH := $(OHOS_BUILD_HOME)/kernel/linux/${KERNEL_VERSION}
endif
对 loongarch 的项目选用 linux-5.10.97 目录下的内核代码。
3.4 打入代码补丁
cd device/board/hihope/dayu400
./patch.sh
执行上述命令将所有仓库的相关的修改补丁打入到对应仓库代码中,如果打入补丁失败,则需要对打入补丁失败的仓库进行手动处理一下。
3.5 编译代码
在代码根目录下执行 hb set 选择对应的产品后,执行 hb build 即可编译。
更多使用说明见:https://gitee.com/openharmony-sig/device_board_hihope/blob/OpenHarmony-4.1-Release/dayu400/LS2K0500-DevGuide.md
注意,代码下载方式不要参考链接的,用上面的方式
编译有问题联系:13510979604
感谢连老师分享