OpenHarmony开发者论坛
标题:
【源文件说明】(DEVICE-VENDOR)适配源文件描述
[打印本页]
作者:
wangyeyu
时间:
2023-12-7 12:58
标题:
【源文件说明】(DEVICE-VENDOR)适配源文件描述
[md]## 阅读提示
* 我在阅读开发板适配开源系统时,详细整理了device,vendor和kernal等目录下需要增加或者修改的文件,并将其文件功能列出,期望对开发板、SoC 适配的同学有所帮助。文件基于2022年初的主线版本。
* 开发板适配前,为了较大程度上降低适配的工作量和难度,避免重复踩坑,可参考《【SOC适配】(BOARD-SoC)所有开发板支持的系统》文档,其中详细整理了<b>品牌、开发板、支持的系统、适配内容、典型SoC以及应用场景说明</b>
---
| 序 号 | 路径、文件名称 | 功能描述 |
| ------ | ---------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | Kconfig | Kconfig是配置项的描述文件,支持设置配置项及其默认值,依赖关系等等,比如kernel/liteos_a/Kconfig,该文件还会继续依赖各个模块的Kconfig文件 |
| 2 | Kconfig.liteos_m.board | 具体开发板宏定义; |
| 3 | Kconfig.liteos_m.boards | 所有开发板宏定义; |
| 4 | Kconfig.liteos_m.defconfig | SoC默认配置; |
| 5 | Kconfig.liteos_m.defconfig.boards | 提供指定公司的开发板的默认配置项信息 |
| 6 | Kconfig.liteos_m.defconfig.series | 系列开发板的默认配置,xxx系列默认配置; |
| 7 | Kconfig.liteos_m.series | SoC系列产品定义, xxx系列配置,包含arch架构,公司名称,cpu类型; |
| 8 | Kconfig.liteos_m.shields | 用于配置扩展板信息,使用*通配符匹配所有的扩展板,可以将所有扩展板配置信息都加载进来。 |
| 9 | Kconfig.liteos_m.soc | xxx芯片配置,Soc宏定义,公司名称宏定义;每个厂家的SoC均要定义; |
| 10 | LICENSE | 在board,soc和vendor中oat.xml,LICENSE成对出现 |
| 11 | oat.xml | 在board,soc和vendor中oat.xml,LICENSE成对出现 |
| 12 | Kconfig.liteos_m.defconfig.shield | 扩展版默认配置; |
| 13 | Kconfig.board.applications | 开发板自带的应用程序配置; |
| 14 | Kconfig.liteos_m.applications | 系统自带的应用程序配置; |
| 15 | Kconfig.projbuild | 应用程序管理器; |
| 16 | EULA | 最终用户许可协议(End User Licence Agreement,EULA),指的是一家公司的软件与软件的使用者所达成的协议 |
| 17 | kernel_configs/debug.config | 编译宏开启设置; |
| 18 | init_configs/init_xxos_xxsoc.cfg | 系统初始化时创建的目录文件及权限配置; |
| 19 | init_configs/init_xxos_xxsoc_mksh.cfg | 系统初始化时创建的目录文件及权限配置; |
| 20 | target_config.h | 各个板卡os目标参数配置; |
| 21 | device/ | 设备驱动目录 |
| 22 | device/board/ | 单板厂商目录 |
| 23 | device/board/ bearpi/ | 单板厂商名字:小熊派 |
| 24 | device/board/ bearpi/ bearpi_hm_micro | 单板名:bearpi_hm_micro |
| 25 | device/soc/ | SoC厂商目录 |
| 26 | device/soc/common | 存放公共HDF驱动 |
| 27 | device/soc/st/ | SoC厂商名字:ST意法半导体 |
| 28 | device/soc/st/stm32mp1xx | SoC Series名:stm32mp1xx系列芯片 |
| 29 | vendor/ | 厂商目录; |
| 30 | vendor/bearpi/ | 开发产品样例厂商目录,小熊派的产品样例 |
| 31 | vendor/bearpi/bearpi_hm_micro | 产品名字:bearpi_hm_micro开发板 |
| 32 | vendor/bearpi/bearpi_hm_micro/config.json | 预编译适配,产品名称,开发板名称,ohos版本,公司名称,os内核等;由 hb set命令显示菜单,选择后输出ohos_config.json, 通过 hb env查看; |
| 33 | device/board/bearpi/bearpi_hm_micro/liteos_a/config.gni | 用于描述这个产品样例所使用的单板、内核等信息,属开发板描述信息 |
| 34 | device/board/bearpi/bearpi_hm_micro/hal | Board adapter dir for OHOS components. |
| 35 | device/board/bearpi/bearpi_hm_micro/liteos_a/board/target_config.h | 内存地址映射及os中断定义; |
| 36 | device/qemu/arm_virt/liteos_a/board/os_adapt/os_adapt.c | 调用 SystemInit 对系统初始化,然后调用DeviceManagerStart对hdf初始化,最后调用hcs,drivers; |
| 37 | device/board/bearpi/bearpi_hm_micro/liteos_a/drivers/Kconfig | 中添加芯片、产品名称、厂商名称相关配置。 |
| 38 | device/soc/st/common/platform/Kconfig | 中添加驱动相关配置。 |
| 39 | vendor/bearpi/bearpi_hm_micro/kernel_configs/debug_tee.config | 中使能Kconfig相关配置。 |
| 40 | device/board/bearpi/bearpi_hm_micro/liteos_a/BUILD.gn | 添加此模块依赖board、drivers、hdf_config |
| 41 | device/board/bearpi/bearpi_hm_micro/liteos_a/board/BUILD.gn | 将os_adapt.c内核启动相关代码编译进系统。 |
| 42 | device/board/bearpi/bearpi_hm_micro/liteos_a/drivers/BUILD.gn | 将device/soc/st/common/platform路径下的HDF驱动编译进系统。 |
| 43 | vendor/bearpi/bearpi_hm_micro/hdf_config/BUILD.gn | 将HCS配置文件编译进系统。 |
| 44 | device/board/bearpi/bearpi_hm_micro/liteos_a/board/os_adapt.c | 添加以下内核启动相关代码 |
| 45 | device/soc/st/common/platform/gpio/BUILD.gn | 描述了stm32mp1xx gpio驱动的编译适配 |
| 46 | device/soc/st/common/platform/gpio/stm32mp1_gpio.c | 描述了stm32mp1xx gpio驱动的源码适配。 首先,按照OpenHarmony的HDF驱动框架加载驱动基本适配框架 |
| 47 | device/soc/st/stm32mp1xx/sdk_liteos/hdf_config/gpio/gpio_config.hcs | 添加gpio硬件描述信息文件在该文件中添加驱动私有配置信息。 |
| 48 | vendor/bearpi/bearpi_hm_micro/hdf_config/device_info/device_info.hcs | 配置产品加载驱动,产品的所有设备信息被定义在源码文件中,平台驱动请添加到platform的host中。 |
| 49 | device/soc/st/common/platform/gpio/stm32mp1_gpio.c | 完善驱动代码,gpio_config.hcs的配置信息会在GpioDriverInit中加载。 |
| 50 | vendor/bearpi/bearpi_hm_micro/config.json | OpenHarmony子系统适配只需要在config.json中增加对应子系统和部件,这样编译系统会将该部件纳入编译目标中。启动恢复子系统需要适配bootstrap_lite、syspara_lite、appspawn_lite、init_lite四个部件。请在中新增对应的配置选项。 系统启动时会根据//vendor/bearpi/bearpi_hm_micro/init_configs中的启动配置来启动系统。 包含如下子系统:subsystem: startup,subsystem: hiviewdfx, subsystem: distributed_schedule,subsystem: security,subsystem: utils,subsystem: graphic,subsystem: ace,subsystem: aafwk, subsystem: appexecfwk, |
| 51 | vendor/bearpi/bearpi_hm_micro/init_configs | 配置启动系统。 |
| 52 | vendor/bearpi/bearpi_hm_micro/graphic_config/product_graphic_lite_config.h | 图形子系统适配 |
| 53 | vendor/bearpi/bearpi_hm_micro/ace_lite_config/product_acelite_config.h | ACE开发框架子系统适配 |
| 54 | vendor/bestechnic | 开发产品样例厂商目录,恒玄开发的带屏样例,因此以bestechnic命名 |
| 55 | vendor/bestechnic/display_demo | 产品名字:以智能开关面板的带屏显示样例 |
| 56 | vendor/bestechnic/display_demo/config.json | 描述这个产品样例所使用的单板、内核等信息; |
| 57 | device/board/fnlink/v200zr/liteos_m/config.gni | 描述这个产品样例所使用的单板、内核等信息; |
| 58 | kernel/liteos_m/Kconfig | 文件中使用这些导出的环境变量,Kconfiglib采用ulfalizer开发基于python的版本,源码地址,功能介绍连接参考,里面用到了orsource关键字,其中o表示optional,表示这个文件是否存在可选,r表示relative,表示这个文件相对当前文件的相对路径。 |
| 59 | device/board/fnlink/v200zr/ | v200zr单板配置目录 |
| 60 | device/board/fnlink/v200zr/Kconfig.liteos_m.board | 提供v200zr单板的配置选项 |
| 61 | device/board/fnlink/v200zr/Kconfig.liteos_m.defconfig.board | 提供v200zr单板的默认配置项 |
| 62 | device/board/fnlink/v200zr/Kconfig.liteos_m.boards | 提供fnlink单板厂商下Boards配置信息 |
| 63 | device/board/fnlink/v200zr/Kconfig.liteos_m.defconfig.boards | 提供fnlink单板厂商下Boards默认配置信息 |
| 64 | device/board/fnlink/v200zr/Kconfig.liteos_m.shields | 提供fnlink单板厂商下扩展板配置信息 |
| 65 | device/board/fnlink/v200zr/shields/ | fnlink单板厂商的扩展板目录 |
| 66 | device/board/fnlink/v200zr/shields/v200zr-t0/ | fnlink单板厂商的扩展板v200zr-t0 |
| 67 | device/board/fnlink/v200zr/shields/v200zr-t0/Kconfig.liteos_m.defconfig.shield | 扩展板v200zr-t0默认配置 |
| 68 | device/board/fnlink/v200zr/shields/v200zr-t0/Kconfig.liteos_m.shield | 扩展板v200zr-t0配置信息 |
| 69 | device/soc/bestechnic/bes2600/ | bes2600 SoC系列 |
| 70 | device/soc/bestechnic/bes2600/Kconfig.liteos_m.defconfig.bes2600w | bestechnic芯片厂商bes2600w SoC Series配置 |
| 71 | device/soc/bestechnic/bes2600/Kconfig.liteos_m.defconfig.series | bestechnic芯片厂商bes2600默认配置 |
| 72 | device/soc/bestechnic/bes2600/Kconfig.liteos_m.series | bestechnic芯片厂商bes2600 SoC Series配置 |
| 73 | device/soc/bestechnic/bes2600/Kconfig.liteos_m.soc | bestechnic芯片厂商bes2600 SoC配置 |
| 74 | device/soc/bestechnic/Kconfig.liteos_m.defconfig | bestechnic芯片厂商SoC默认配置 |
| 75 | device/soc/bestechnic/Kconfig.liteos_m.series | bestechnic芯片厂商SoC Series配置 |
| 76 | device/soc/bestechnic/Kconfig.liteos_m.soc | bestechnic芯片厂商 SoC配置 |
| 77 | kernel/liteos_m/Makefile | 在Kconfig中配置完成后,在 kernel/liteos_m/Makefile 使用make menuconfig将参数保存到kernel_configs/debug.config或者kernel_configs/release.config; Kconfig的图形化配置后,将其生成的配置结果可以作为gn编译的输入,以控制不同模块是否编译 |
| 78 | kernel/liteos_m/BUILD.gn | 指定了Board和SoC的编译入口为//device/board/fnlink和//device/soc/bestechnic。 |
| 79 | device/board/fnlink/BUILD.gn | 新增指定内核下的模块编译; |
| 80 | device/soc/bestechnic/bes2600/liteos_m/sdk/bsp/rtos/liteos/liteos_m/board.c | 在第三阶段内核启动中,内核启动适配总体思路如下: 中断向量的初始化os_vector_init ,初始化中断的处理函数。 内核初始化osKernelInitialize 。创建线程board_main,进行芯片平台初始化。内核启动,开始调度线程osKernelStart 。 |
| 81 | device/soc/bestechnic/bes2600/liteos_m/components/utils/src/hm_sys.c | OhosSystemAdapterHooks函数在文件中trace初始化,hdf初始化; |
| 82 | vendor/bestechnic/display_demo/fs | 放置两部分内容: wifi_Download_cfg.yaml:镜像的烧录配置文件,可以根据实际情况调整分区。 /data/data:第一个/data是挂载的根目录;第二个data是根目录里面的data目录,里面可以存放预置文件,或者在第二个data的同级目录再创建一个目录,打包的时候只认第一个data挂载根目录。 |
| 83 | vendor/bestechnic/display_demo/fs/wifi_Download_cfg.yaml | 镜像的烧录配置文件,可以根据实际情况调整分区。 |
| 84 | vendor/bestechnic/display_demo/fs/data/data | 第一个/data是挂载的根目录;第二个data是根目录里面的data目录,里面可以存放预置文件,或者在第二个data的同级目录再创建一个目录,打包的时候只认第一个data挂载根目录。 |
| 85 | device/soc/bestechnic/bes2600/liteos_m/components/hdf_config/hdf.hcs | 配置文件系统的烧录的起始地址、文件系统的大小以及读数据块的大小block_size等信息 |
| 86 | device/soc/bestechnic/bes2600/liteos_m/components/fs/fs_init.c | 通过hdf加载数据,进行读写flash; |
| 87 | device/board/fnlink/v200zr/liteos_m/config.gni | 新增这些函数的wrap链接编译选项;主要包括内存分配,打印,文件读写; |
| 88 | device/board/fnlink/drivers/liteos_m/display/BUILD.gn | 根据hdf_driver模板加载,编译驱动模块 |
| 89 | build/lite/components/communication.json | wifi_lite部件编译目标的定义; |
| 90 | foundation/communication/wifi_lite/BUILD.gn | 描述需要适配软总线的接口文件路径; |
| 91 | foundation/communication/wifi_lite/BUILD.gn | 描述需要适配的接口头文件路径 |
| 92 | device/soc/bestechnic/hals/communication/wifi_lite/wifiservice | wifi属于SoC提供的功能,所以适配源码放在SoC的目录下,包含wifi_device.c和wifi_hotspot.c分别适配wifi_device.h和wifi_hotspot.h |
| 93 | device/soc/bestechnic/bes2600/liteos_m/components/net/lwip-2.1/BUILD.gn | LWIP部件适配,LiteOS-M kernel目录下默认配置了lwip,因而具有编译功能,可以在kernel组件中指定lwip编译的目录。描述了lwip的编译 |
| 94 | device/soc/bestechnic/bes2600/liteos_m/components/net/lwip-2.1/porting/include/lwip/lwipopts.h | 原有lwip配置选项保持不变,软总线会依赖这些配置选项,并且新增硬件适配的配置项 |
| 95 | device/soc/bestechnic/bes2600/liteos_m/components/net/lwip-2.1/porting/src/ethernetif.c | 对ethernet网卡初始化的适配 |
| 96 | foundation/communication/dsoftbus/dsoftbus.gni | dsoftbus部件在文件中提供了softbus_adapter_config配置选项可供移植过程进行配置,该配置设定了软总线移植适配的路径。 |
| 97 | vendor/bestechnic/mini_distributed_music_player/dsoftbus_lite_config | softbus_adapter_config配置为路径,该路径下的内容为: 软总线功能特性配置,例如是否开启自发现功能等, 软总线规格特性配置,例如设置软总线日志级别设置 |
| 98 | vendor/company/product/init_configs/etc | 该文件夹中包含rcS脚本,Sxxx脚本和fstab脚本。init进程在启动系统服务之前执行这些脚本。执行的流程为“rcS->fstab->S00-xxx“。Sxxx脚本中的内容与开发板和产品需要有关,主要包括设备节点的创建、创建目录、扫描设备节点、修改文件权限等等。这些文件在产品编译的BUILD.gn中按需拷贝到产品out目录中,最终打包到rootfs镜像中。 |
| 99 | vendor/company/product/init_configs/init.cfg | init进程启动服务的配置文件,当前支持解析的命令有: start: 启动某个服务 mkdir: 创建文件夹 chmod: 修改指定路径/文件的权限 chown: 修改指定路径/文件的属组 mount: 挂载命令 |
| 100 | vendor/company/product/init_configs/hals | 解决方案厂商对OS的适配,需要实现的接口请见各个组件的readme说明文档。 |
| 101 | vendor/company/product/config.json | config.json为编译构建的主入口,包含了开发板、OS组件和内核等配置信息。 |
| 102 | vendor/company/product/fs.yml | 该文件用于配置文件系统镜像制作过程,将编译产物打包成文件系统镜像,比如用户态根文件系统rootfs.img和可读写的userfs.img。它由多个列表组成,每个列表对应一个文件系统 |
| 103 | device/soc/bestechnic/bes2600/liteos_m/sdk/bsp/out/best2600w_liteos/_best2001.lds | 适配bootstrap_lite部件时,添加连接脚本文件 |
| 104 | drivers/adapter/platform/gpio/gpio_bes.c | 恒玄gpio驱动的源码适配 |
| 105 | kernel/liteos_m/kal/libc/newlib/porting/src/fs.c | 适配了newlib的_read、_write等函数 |
| 106 | device/board/fnlink/drivers/liteos_m/display/zzw395.c | 加载显示驱动 |
| 107 | vendor/asrmicro/wifi_demo/tests/dsoftbus/dsoftbus_app.c | dsoftbus组件的启动接口 |
| 108 | device/board/fnlink/drivers/liteos_m/display/BUILD.gn | 同SoC驱动适配,根据hdf_driver模板加载显示驱动模块 |
| 109 | device/board/talkweb/niobe407/liteos_m/hdf_config/device_info.hcs | 使用TIM2、TIM3和TIM7定时器输出PWM信号 |
| 110 | device/board/talkweb/niobe407/liteos_m/hdf_config/hdf.hcs | 配置TIM定时器具体信息 |
| 111 | hdf_core/adapter/platform/pwm/pwm_stm32f4xx.c | 是st关于pwm的驱动适配; |
| 112 | foundation/communication/dsoftbus/core/authentication/src/auth_manager.c | 软总线的组网需要通过设备认证,在研发阶段,可以把认证跳过,先行调试组网以及传输能力 |
| 113 | kernel_liteos_m/blob/master/components/net/lwip-2.1/porting/include/lwip/lwipopts.h | dsoftbus组件的运行需至少预留80KB RAM。如资源不够,可对其它地方进行剪裁。 |
| 114 | device/soc/asrmicro/asr582x/liteos_m/sdk/hal/src/wifi_adapter.c | Wi-Fi有关的实现在 |
| 115 | vendor/asrmicro/wifi_demo/tests/wifi/wifi_app.c | 提供了两个连接的测试指令,wifi_open, wifi_close: |
| 116 | device/soc/asrmicro/asr582x/liteos_m/components/mbedtls | 第三方加密算法目录; |
| 117 | foundation/communication/dsoftbus/adapter/common/mbedtls/softbus_adapter_crypto.c | 有使用 |
| 118 | third_party/lwip | 是lwIP开源代码,是轻重量级tcpip网络协议,适合arm,里面只做了少量的侵入式修改,为了适配增强功能。 |
| 119 | kernel/liteos_m/components/net/lwip-2.1 | 是lwIP适配和功能增强代码,里面提供了lwIP的默认配置文件。 |
| 120 | device/soc/asrmicro/asr582x/liteos_m/sdk/startup/board.c | 单板进入到main函数后,首先会进行单板初始化,然后需要注册中断,之后再进行内核的初始化和调度,注册中断。 |
| 121 | vendor/asrmicro/wifi_demo/kernel_configs/debug.config | 为了方便调试,本方案集成了内核的shell组件,可以在make menuconfig中的Debug中选中 Enable Shell,或者在debug.config文件中填入LOSCFG_SHELL=y shell组件需要进行初始化 |
| 122 | device/soc/asrmicro/asr582x/liteos_m/sdk/startup/board.c | 进行初始化 |
| 123 | vendor/asrmicro/wifi_demo/tests/wifi/wifi_app.c | 每个shell命令需要进行注册,例如:wifi_open, wifi_close; |
| 124 | kernel/liteos_m/kal/libc/musl/porting/src/malloc.c | kernel对malloc相应的code进行了改造适配 |
| 125 | device/soc/asrmicro/asr582x/liteos_m/sdk/drivers/platform/system/printf-stdarg.c | printf相关的接口使用开源代码实现 |
| 126 | device/board/lango/dev_wifi_a/liteos_m/config.gni | 为了满足printf相关接口的链接调用,新增这些函数的wrap链接 |
| 127 | device/board/hihope/neptune100/liteos_m/config.gni | 配置文件用于描述该单板信息,包括CPU型号、交叉编译工具链及全局编译、链接参数等重要信息 |
| 128 | vendor/hihope/neptune_iotlink_demo/kernel_configs | HDF驱动框架提供了一套应用访问硬件的统一接口,可以简化应用开发,添加 LOSCFG_DRIVERS_HDF=y LOSCFG_DRIVERS_HDF_PLATFORM=y |
| 129 | drivers/adapter/platform/uart/uart_wm.c | 芯片uart驱动适配 |
| 130 | device/board/hihope/shields/neptune100/neptune100.hcs | 添加uart硬件描述信息 |
[/md]
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5