如何在鸿蒙移植树莓派中添加单板

本篇文章给大家分享的是有关如何在鸿蒙移植树莓派中添加单板,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1、添加新单板

1.1、修改menuconfig和Kconfig

要在鸿蒙的源码中添加树莓派的开发板,得先分析鸿蒙的编译构建系统。menuconfig通过Kconfig配置文件,可以生成.config(kernel\liteos_a.config)文件,内核的编译配置项包含在这个文件中。

1.1.1、添加单板

进入源码/kernel/liteos_a/目录下执行

make menuconfig

会进入下图的界面,这个界面基于\kernel\liteos_a\Kconfig这个文件生成,而且这个文件还可以包含其它目录下的Kconfig。

如何在鸿蒙移植树莓派中添加单板
包含其他目录下的Kconfig,比如: source "../../kernel/liteos_a/platform/Kconfig"  #这个文件就是添加新开发板的Kconfig source "../../kernel/liteos_a/arch/Kconfig" ...

1.1.2、修改kernel\liteos_a\platform\Kconfig

打开"../../kernel/liteos_a/platform/Kconfig",仿照其他单板,添加树莓派配置项。

config PLATFORM 下添加:

default "Raspberry_Pi_2" if PLATFORM_RASPBERRYPI2

choice 下添加:

config PLATFORM_RASPBERRYPI2     bool "Raspberry_Pi_2"     select ARCH_CORTEX_A7

添加完这两项,重新运行make menuconfig选择platform就会多出一个新的单板选项。

如何在鸿蒙移植树莓派中添加单板

1.1.3、修改kernel\liteos_a\Kconfig

设置单板的默认编译器,在45、49行左右。

config COMPILER_HIMIX_32     bool "arm-linux-ohoseabi"     depends on PLATFORM_HI3518EV300 || PLATFORM_HI3516DV300 || PLATFORM_RASPBERRYPI2  config COMPILER_CLANG_LLVM     bool "clang-llvm"         depends on PLATFORM_HI3518EV300 || PLATFORM_HI3516DV300 || PLATFORM_RASPBERRYPI2

添加了这两项Compiler下才会出现编译器的选择,如下图:

如何在鸿蒙移植树莓派中添加单板

选择这个新单板保存退出后,查看\kernel\liteos_a.config,会发现多出下面两项。

# # Platform # LOSCFG_PLATFORM="Raspberry_Pi_2" # LOSCFG_PLATFORM_HI3516DV300 is not set # LOSCFG_PLATFORM_HI3518EV300 is not set LOSCFG_PLATFORM_RASPBERRYPI2=y

1.2、修改make和Makefile文件

Makefile platform/Makefile platform/bsp.mk

1.2.1、修改kernel\liteos_a\Makefile

设置根文件系统类型和大小,在62行左右。

ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2), y) FSTYPE = jffs2 ROOTFS_SIZE = 0xA00000 endif

make  lib下添加单板文件夹,在107行左右。同时在源码目录/vendor/下添加对应文件夹,鸿蒙的部分代码未开源,这里要感谢韦东山老师提供的补丁文件。

##### make lib ##### $(__LIBS): $(OUT) $(CXX_INCLUDE)  ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2),y) BOARD_INCLUDE_DIR := $(LITEOSTOPDIR)/../../vendor/broadcom/BCM2836/board else BOARD_INCLUDE_DIR := $(LITEOSTOPDIR)/../../vendor/hisi/hi35xx/$(LITEOS_PLATFORM)/config/board endif  $(OUT): $(LITEOS_MENUCONFIG_H)     $(HIDE)mkdir -p $(OUT)/lib     $(HIDE)$(CC) -I$(LITEOS_PLATFORM_BASE)/include -I$(BOARD_INCLUDE_DIR) \         -E $(LITEOS_PLATFORM_BASE)/board.ld.S \         -o $(LITEOS_PLATFORM_BASE)/board.ld -P

1.2.2、增加单板文件夹

新建单板文件夹,将韦东山的老师补丁中vendor文件夹复制过来,在vendor目录下新建broadcom

单板文件目录结构可以按照下面的格式修改:

内核/架构/芯片公司/芯片/板卡公司/硬件版本

Cortex-A7/Armv7-A/broadcom/BCM2836/Raspberry_Pi/..  vendor\broadcom\BCM2836\board\include\asm\platform.h

如何在鸿蒙移植树莓派中添加单板