iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何在鸿蒙移植树莓派中添加单板
  • 428
分享到

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

2023-06-15 15:06:00 428人浏览 八月长安
摘要

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

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

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

1.2.3、然后修改vendor\broadcom\BCM2836\BCM2836.mk

设置基目录地址

BCM2836_BASE_DIR  := $(LITEOSTOPDIR)/../../vendor/broadcom/BCM2836

1.2.4、kernel\liteos_a\platform\Makefile

仿照其他单板添加,43行左右

$(LOSCFG_PLATFORM_RASPBERRYPI2) \ ifeq ($(findstring y, $(LOSCFG_PLATFORM_HI3518EV300)$(LOSCFG_PLATFORM_HI3516DV300)$(LOSCFG_PLATFORM_RASPBERRYPI2)), y)

1.2.5、kernel\liteos_a\platform\bsp.mk

设置单板的设备类型,比如中断、timer、串口、USB之类的,58行左右

########################## LOSCFG_PLATFORM_RASPBERRYPI2 Options############################## else ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2), y)     HWI_TYPE     := arm/interrupt/gic     TIMER_TYPE   := arm/timer/arm_generic     HRTIMER_TYPE := BCM2836/hrtimer     #UART_TYPE    := amba_pl011

设置头文件要包含的目录,在90行左右

ifeq ($(findstring y, $(LOSCFG_PLATFORM_HI3518EV300)$(LOSCFG_PLATFORM_HI3516DV300)), y)     PLATFORM_INCLUDE += -I $(LITEOSTOPDIR)/../../vendor/hisi/hi35xx/$(LITEOS_PLATFORM)/config/board/include/hisoc else ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2),y)     PLATFORM_INCLUDE += -I $(LITEOSTOPDIR)/../../vendor/broadcom/BCM2836/board/include endif

1.2.6、drivers\hdf\lite\hdf_lite.mk

设置HDF的顶层目录,在39行左右,有点没搞懂,为啥不直接使用一个默认的路径

include $(LITEOSTOPDIR)/../../vendor/huawei/hdf/hdf_vendor.mk 替换为: ifeq ($(findstring y, $(LOSCFG_PLATFORM_HI3518EV300)$(LOSCFG_PLATFORM_HI3516DV300)), y) include $(LITEOSTOPDIR)/../../vendor/huawei/hdf/hdf_vendor.mk endif  ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2), y) include $(LITEOSTOPDIR)/../../vendor/broadcom/hdf/hdf_vendor.mk endif

1.2.7、vendor\huawei\hdf\hdf_vendor.mk(TODO)

设置下单板的HDF相关文件路径,18行左右

else ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2), y)     LIB_SUBDIRS += $(LITEOS_SOURCE_ROOT)/vendor/broadcom/BCM2836/config     VENDOR_HDF_DRIVERS_PLATFORM_ROOT := $(LITEOSTOPDIR)/../../vendor/broadcom/BCM2836/platform #这个文件夹还没有

1.3、编译:

编译测试的时候可以修改kernel\liteos_a\tools\build\mk\los_config.mk  HIDE的值为空,可以显示make的执行命令

HIDE :=   #删除@表示显示make的执行命令

1.3.1、修改下面这4个头文件

kernel/liteos_a/shell/full/src/base/show.c

kernel/liteos_a/shell/full/src/base/shcmd.c

kernel/liteos_a/shell/full/src/base/shmsg.c

kernel/liteos_a/shell/full/src/cmds/dmesg.c

#elif defined LOSCFG_PLATFORM_RASPBERRYPI2 #include "uart.h"

1.3.2、tools\build\mk\los_config.mk

ifeq ($(LITEOS_PLATFORM),BCM2836) include $(LITEOSTOPDIR)/../../vendor/broadcom/BCM2836/BCM2836.mk endif

1.3.3、kernel\liteos_a\kernel\common\los_config.h

43行左右,注释此行

//#include "hisoc/clock.h"   #include "clock.h"

以上就是如何在鸿蒙移植树莓派中添加单板,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 如何在鸿蒙移植树莓派中添加单板

本文链接: https://www.lsjlt.com/news/280855.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在鸿蒙移植树莓派中添加单板
    本篇文章给大家分享的是有关如何在鸿蒙移植树莓派中添加单板,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、添加新单板1.1、修改menuconfig和Kconfig要在鸿蒙的源...
    99+
    2023-06-15
  • 如何在表单设计中添加filelistbox控件
    要在表单设计中添加filelistbox控件,可以按照以下步骤进行操作:1. 打开表单设计工具,比如Microsoft Access...
    99+
    2023-09-26
    filelistbox
  • 笔记本电脑右键菜单中如何添加控制面板
    这篇文章给大家分享的是有关笔记本电脑右键菜单中如何添加控制面板的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用组合快捷键win键+r键打开运行窗口,在打开的运行窗口中输入“regedit”点击确定打开注册表编辑...
    99+
    2023-06-28
  • 如何在Android应用中添加一个菜单功能
    这篇文章将为大家详细讲解有关如何在Android应用中添加一个菜单功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。开发环境:AndroidStudio2.1.2部分代码(Activity)...
    99+
    2023-05-31
    android roi
  • 如何在文件夹右键菜单中添加进入DOS命令
    这篇文章主要为大家展示了“如何在文件夹右键菜单中添加进入DOS命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何在文件夹右键菜单中添加进入DOS命令”这篇文章吧。那么就在文件夹右键菜单中增加...
    99+
    2023-06-08
  • 如何在win10的开始菜单中添加“设备和打印机”
      如何在win10的开始菜单中添加“设备和打印机”?随着电脑的使用率越来越高,我们有时候可能会遇到对win10系统开始菜单如何添加“设备和打印机”进行设置,如果我们需要对win10系统开始菜单如何添加“设备和打印机”进行设置时,要怎么处理...
    99+
    2023-07-10
  • Win10如何在右键菜单中添加记事本以提高启动效率
      记事本是一个常用的系统自带工具,很多人都把它当成默认的编辑工具。如果将记事本放到右键菜单中,那启动效率会高很多。这在Win10下该如何操作呢   右键菜单中添加“记事本”   1.Win + ...
    99+
    2023-06-11
    Win10 右键菜单 记事本 添加 菜单 启动 右键
  • 在WebStorm中如何添加Vue.js单文件组件的高亮及语法支持
    这篇文章将为大家详细讲解有关在WebStorm中如何添加Vue.js单文件组件的高亮及语法支持,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:一个小遗憾 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作