偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

鴻蒙移植樹(shù)莓派(中)添加單板

系統(tǒng) Linux
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請(qǐng)前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)https://harmonyos.51cto.com/#zz

[[378185]]

 想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com/#zz

項(xiàng)目最新更新,可以查看碼倉(cāng) https://gitee.com/liangzili/harmony-raspberry

1、添加新單板

1.1、修改menuconfig和Kconfig

要在鴻蒙的源碼中添加樹(shù)莓派的開(kāi)發(fā)板,得先分析鴻蒙的編譯構(gòu)建系統(tǒng)。menuconfig通過(guò)Kconfig配置文件,可以生成.config(kernel\liteos_a.config)文件,內(nèi)核的編譯配置項(xiàng)包含在這個(gè)文件中。

1.1.1、添加單板

進(jìn)入源碼/kernel/liteos_a/目錄下執(zhí)行

  1. make menuconfig 

會(huì)進(jìn)入下圖的界面,這個(gè)界面基于\kernel\liteos_a\Kconfig這個(gè)文件生成,而且這個(gè)文件還可以包含其它目錄下的Kconfig。


  1. 包含其他目錄下的Kconfig,比如: 
  2. source "../../kernel/liteos_a/platform/Kconfig"  #這個(gè)文件就是添加新開(kāi)發(fā)板的Kconfig 
  3. source "../../kernel/liteos_a/arch/Kconfig" 
  4. ... 

 1.1.2、修改kernel\liteos_a\platform\Kconfig

打開(kāi)"../../kernel/liteos_a/platform/Kconfig",仿照其他單板,添加樹(shù)莓派配置項(xiàng)。

config PLATFORM 下添加:

  1. default "Raspberry_Pi_2" if PLATFORM_RASPBERRYPI2 

choice 下添加:

  1. config PLATFORM_RASPBERRYPI2 
  2.     bool "Raspberry_Pi_2" 
  3.     select ARCH_CORTEX_A7 

 添加完這兩項(xiàng),重新運(yùn)行make menuconfig選擇platform就會(huì)多出一個(gè)新的單板選項(xiàng)。

1.1.3、修改kernel\liteos_a\Kconfig

設(shè)置單板的默認(rèn)編譯器,在45、49行左右。

  1. config COMPILER_HIMIX_32 
  2.     bool "arm-linux-ohoseabi" 
  3.     depends on PLATFORM_HI3518EV300 || PLATFORM_HI3516DV300 || PLATFORM_RASPBERRYPI2 
  4. ​ 
  5. config COMPILER_CLANG_LLVM 
  6.     bool "clang-llvm" 
  7.         depends on PLATFORM_HI3518EV300 || PLATFORM_HI3516DV300 || PLATFORM_RASPBERRYPI2 

 添加了這兩項(xiàng)Compiler下才會(huì)出現(xiàn)編譯器的選擇,如下圖:

選擇這個(gè)新單板保存退出后,查看\kernel\liteos_a.config,會(huì)發(fā)現(xiàn)多出下面兩項(xiàng)。

  1. # Platform 
  2. LOSCFG_PLATFORM="Raspberry_Pi_2" 
  3. # LOSCFG_PLATFORM_HI3516DV300 is not set 
  4. # LOSCFG_PLATFORM_HI3518EV300 is not set 
  5. LOSCFG_PLATFORM_RASPBERRYPI2=y 

 1.2、修改make和Makefile文件

  1. Makefile platform/Makefile platform/bsp.mk 

1.2.1、修改kernel\liteos_a\Makefile

設(shè)置根文件系統(tǒng)類型和大小,在62行左右。

  1. ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2), y) 
  2. FSTYPE = jffs2 
  3. ROOTFS_SIZE = 0xA00000 
  4. endif 

 make lib下添加單板文件夾,在107行左右。同時(shí)在源碼目錄/vendor/下添加對(duì)應(yīng)文件夾,鴻蒙的部分代碼未開(kāi)源,這里要感謝韋東山老師提供的補(bǔ)丁文件。

  1. ##### make lib ##### 
  2. $(__LIBS): $(OUT) $(CXX_INCLUDE) 
  3. ​ 
  4. ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2),y) 
  5. BOARD_INCLUDE_DIR := $(LITEOSTOPDIR)/../../vendor/broadcom/BCM2836/board 
  6. else 
  7. BOARD_INCLUDE_DIR := $(LITEOSTOPDIR)/../../vendor/hisi/hi35xx/$(LITEOS_PLATFORM)/config/board 
  8. endif 
  9. ​ 
  10. $(OUT): $(LITEOS_MENUCONFIG_H) 
  11.     $(HIDE)mkdir -p $(OUT)/lib 
  12.     $(HIDE)$(CC) -I$(LITEOS_PLATFORM_BASE)/include -I$(BOARD_INCLUDE_DIR) \ 
  13.         -E $(LITEOS_PLATFORM_BASE)/board.ld.S \ 
  14.         -o $(LITEOS_PLATFORM_BASE)/board.ld -P 

 1.2.2、增加單板文件夾

新建單板文件夾,將韋東山的老師補(bǔ)丁中vendor文件夾復(fù)制過(guò)來(lái),在vendor目錄下新建broadcom

單板文件目錄結(jié)構(gòu)可以按照下面的格式修改:

內(nèi)核/架構(gòu)/芯片公司/芯片/板卡公司/硬件版本

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

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

設(shè)置基目錄地址

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

1.2.4、kernel\liteos_a\platform\Makefile

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

  1. $(LOSCFG_PLATFORM_RASPBERRYPI2) \ 
  2. ifeq ($(findstring y, $(LOSCFG_PLATFORM_HI3518EV300)$(LOSCFG_PLATFORM_HI3516DV300)$(LOSCFG_PLATFORM_RASPBERRYPI2)), y) 

 1.2.5、kernel\liteos_a\platform\bsp.mk

設(shè)置單板的設(shè)備類型,比如中斷、timer、串口、USB之類的,58行左右

  1. ########################## LOSCFG_PLATFORM_RASPBERRYPI2 Options############################## 
  2. else ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2), y) 
  3.     HWI_TYPE     := arm/interrupt/gic 
  4.     TIMER_TYPE   := arm/timer/arm_generic 
  5.     HRTIMER_TYPE := BCM2836/hrtimer 
  6.     #UART_TYPE    := amba_pl011 

 設(shè)置頭文件要包含的目錄,在90行左右

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

 1.2.6、drivers\hdf\lite\hdf_lite.mk

設(shè)置HDF的頂層目錄,在39行左右,有點(diǎn)沒(méi)搞懂,為啥不直接使用一個(gè)默認(rèn)的路徑

  1. include $(LITEOSTOPDIR)/../../vendor/huawei/hdf/hdf_vendor.mk 
  2. 替換為: 
  3. ifeq ($(findstring y, $(LOSCFG_PLATFORM_HI3518EV300)$(LOSCFG_PLATFORM_HI3516DV300)), y) 
  4. include $(LITEOSTOPDIR)/../../vendor/huawei/hdf/hdf_vendor.mk 
  5. endif 
  6. ​ 
  7. ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2), y) 
  8. include $(LITEOSTOPDIR)/../../vendor/broadcom/hdf/hdf_vendor.mk 
  9. endif 

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

設(shè)置下單板的HDF相關(guān)文件路徑,18行左右

  1. else ifeq ($(LOSCFG_PLATFORM_RASPBERRYPI2), y) 
  2.     LIB_SUBDIRS += $(LITEOS_SOURCE_ROOT)/vendor/broadcom/BCM2836/config 
  3.     VENDOR_HDF_DRIVERS_PLATFORM_ROOT := $(LITEOSTOPDIR)/../../vendor/broadcom/BCM2836/platform #這個(gè)文件夾還沒(méi)有 

 1.3、編譯:

編譯測(cè)試的時(shí)候可以修改kernel\liteos_a\tools\build\mk\los_config.mk HIDE的值為空,可以顯示make的執(zhí)行命令

  1. HIDE :=   #刪除@表示顯示make的執(zhí)行命令 

1.3.1、修改下面這4個(gè)頭文件

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

  1. #elif defined LOSCFG_PLATFORM_RASPBERRYPI2 
  2. #include "uart.h" 

 1.3.2、tools\build\mk\los_config.mk

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

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

43行左右,注釋此行

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

 =======完整內(nèi)容======

#2020征文-開(kāi)發(fā)板# 鴻蒙 移植 樹(shù)莓派(上)搭建環(huán)境下載源碼

#2020征文-開(kāi)發(fā)板# 鴻蒙 移植 樹(shù)莓派(中)添加單板

#2020征文-開(kāi)發(fā)板# 鴻蒙 移植 樹(shù)莓派(下)修改源碼

©著作權(quán)歸作者和HarmonyOS技術(shù)社區(qū)共同所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任。

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com/#zz

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2021-01-26 13:50:43

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-01-25 16:28:10

鴻蒙HarmonyOS搭建環(huán)境

2019-05-07 11:46:49

樹(shù)莓派Linux單板機(jī)

2019-03-31 08:00:02

樹(shù)莓派更新樹(shù)莓派 Linux

2019-03-24 20:30:18

樹(shù)莓派Linux

2023-10-12 10:27:19

樹(shù)莓派Linux

2021-11-23 15:35:05

鴻蒙HarmonyOS應(yīng)用

2021-12-31 10:00:30

鴻蒙HarmonyOS應(yīng)用

2019-03-12 18:33:57

樹(shù)莓派Linux

2021-12-09 10:11:04

鴻蒙HarmonyOS應(yīng)用

2020-11-03 10:37:01

樹(shù)莓派UbuntuLinux

2021-03-29 21:24:40

樹(shù)莓派Linux

2022-02-11 09:24:05

樹(shù)莓派OpenWrt固定IP服務(wù)

2019-03-23 19:33:14

樹(shù)莓派Linux操作系統(tǒng)

2019-08-20 15:38:19

樹(shù)莓派Linux

2018-10-12 11:20:20

樹(shù)莓派NAS Linux

2021-11-19 14:44:17

樹(shù)莓派Linux

2020-07-16 21:00:05

樹(shù)莓派Kubernetes集Linux

2024-03-22 15:28:36

樹(shù)莓派Linux

2019-05-24 13:30:57

PiShrink樹(shù)莓派Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)