首页 > 其他分享 >OpenHarmony移植小型系统exynos4412(二)

OpenHarmony移植小型系统exynos4412(二)

时间:2024-07-03 22:57:19浏览次数:18  
标签:OpenHarmony 启动 解决方案 storage init exynos4412 产品 data 移植

产品配置规则

1、概述

产品解决方案为基于开发板的完整产品,主要包含产品对OS的适配、部件拼装配置、启动配置和文件系统配置等。产品解决方案的源码路径规则为:vendor/{产品解决方案厂商}/{产品名称}_。

产品解决方案的目录树规则如下:

vendor

└── company # 产品解决方案厂商

├── product # 产品名称

│ ├── init_configs

│ │ ├── etc # init进程启动配置(可选,仅linux内核需要)

│ │ └── init.cfg # 系统服务启动配置

│ ├── hals # 产品解决方案OS适配

│ ├── BUILD.gn # 产品编译脚本

│ └── config.json # 产品配置文件

│ └── fs.yml # 文件系统打包配置

└── ......

注意:新增产品须按如上的规则创建目录和文件,编译构建系统将按该规则扫描已配置的产品。

关键的目录和文件详细介绍如下:

1. vendor/company/product/init_configs/etc

该文件夹中包含rcS脚本,Sxxx脚本和fstab脚本。init进程在启动系统服务之前执行这些脚本。执行的流程为“rcS->fstab->S00-xxx“。Sxxx脚本中的内容与开发板和产品需要有关,主要包括设备节点的创建、创建目录、扫描设备节点、修改文件权限等等。这些文件在产品编译的BUILD.gn中按需拷贝到产品out目录中,最终打包到rootfs镜像中。

2. vendor/company/product/init_configs/init.cfg

init进程启动服务的配置文件,当前支持解析的命令有:

  • start: 启动某个服务
  • mkdir: 创建文件夹
  • chmod: 修改指定路径/文件的权限
  • chown: 修改指定路径/文件的属组
  • mount: 挂载命令

该文件中的各个字段的解释如下:

{

"jobs" : [{ # job数组,一个job对应一个命令集合。job的执行顺序:pre-init -> init -> post-init。

"name" : "pre-init",

"cmds" : [

"mkdir /storage/data", # 创建目录

"chmod 0755 /storage/data", # 修改权限,权限值的格式为0xxx, 如0755

"mkdir /storage/data/log",

"chmod 0755 /storage/data/log",

"chown 4 4 /storage/data/log", # 修改属组,第一个数字为uid, 第二个数字为gid

......

"mount vfat /dev/mmcblock0 /sdcard rw,umask=000" # 挂载,格式为: mount [文件系统类型] [source] [target] [flags] [data]

# 其中flags仅支持:nodev、noexec、nosuid和rdonly

]

}, {

"name" : "init",

"cmds" : [ # 按cmds数组顺序启动启动服务

"start shell", # 注意:start与服务名称之间有且只有一个空格

......

"start service1"

]

}, {

"name" : "post-init", # 最后执行的job, init进程启动完成后的处理(如驱动初始化后再mount设备)

"cmds" :

标签:OpenHarmony,启动,解决方案,storage,init,exynos4412,产品,data,移植
From: https://blog.csdn.net/longyuzi/article/details/140163999

相关文章

  • FreeRTOS移植到STM32
    本内容主要是讲解关于如果把FreeRTOS移植到STM32中去的操作。明白各部分的作用以及打通思路,具体操作按照下列进行相应的操作。第一:早一个STM32的裸机程序我们这里用的是STM32F103的芯片为例。 二、去官网上下载FreeRTOSV9.0.0源码在移植之前,我们首先要获取到......
  • esp32-s3+GC9A01基于vs code+PlatformIO+ardunio框架+Squareline UI 移植
    文章目录前言一、SquarelineStudio是什么?二、使用步骤1.创建测试的UI2.工程导出3.工程移植总结前言本节描述了使用SquarelineStudio创建简单UI,导出文件后如何与LVGL集成并在PlatformIO环境中进行编译和下载过程。环境如下:platform=espressif32board=esp32-s......
  • 040【GD32F470】 灰度传感器移植成功示例
    【1TB嵌入式学习资料免费领取:https://link3.cc/sgzy】2.40灰度传感器2.40.1模块来源2.40.2规格参数工作电压:3.3V-5V工作电流:<20mA输出格式:模拟信号输出控制接口:ADC管脚数量:3Pin(2.54mm间距排针)2.40.3移植过程我们的目标是在梁山派GD32F470上能够判断当前环境......
  • C++面向对象多级菜单向Arduino的移植
    前段时间写了一篇文章《C++面向对象语言自制多级菜单》,文中指出了可以将HeleMenu库进行移植,现已完成技术思路,特此记录。一、特性基本与上一篇文章指出的一致,只是将菜单显示和响应函数合二为一二、代码实现基本与上一篇文章指出的一致,只是考虑到右值和左值的问题,将形参改为了co......
  • 【原创】EtherCAT主站IgH解析(二)-- Linux/Windows/RTOS等多操作系统IgH EtherCAT主站
    版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/前言目前,EtherCAT商用主站有:Acontis、TwinCAT3、KPA、Codesys等,开源EtherCAT主站则主要有两大方案:igh与SOEM,两者设计天差地别,SOEM开源于2008年底1.1.2版本,具备良好......
  • 移植案例与原理 - HDF驱动框架-OSAL
    为了提升驱动代码在不同内核子系统间的可复用能力,OpenHarmonyHDF(HardwareDriverFoundation)驱动框架提供了OSAL(OperatingSystemAbstractionLayer)操作系统抽象层接口。OSAL为驱动程序提供了任务、定时器、互斥锁、信号量等基础库相关接口,使驱动相关的实现不再依赖于具......
  • 移植案例与原理 - startup子系统之bootstrap_lite服务启动引导部件(1)
    bootstrap_lite服务启动引导组件提供了各服务和功能的启动入口标识。在SAMGR(Systemabilitymanager,系统服务管理)启动时,会调用bootstrap_lite标识的入口函数,并启动系统服务。本文介绍下移植开发板时如何适配服务启动引导部件bootstrap_lite,并介绍下相关的运行机制原理。bo......
  • 【Ubuntu开发入门之“悟空派wukongpi/香橙派orangepi H3 linux开发②u-boot移植“】
    Ubuntu开发入门之"orangepiH3linux开发@u-boot移植"问题描述解决方法获取u-boot源码编译配置u-boot制作并烧录TF卡结束语郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的转载请标明出处:攻城狮2015Platform:AllwinnerH3OS:Linuxubunt......
  • 移植lvgl
    板子:stm32f407zgt6屏幕:浦阳1.69触摸屏(该款触摸屏幕显示芯片为:ST7789。触摸芯片为:CST816)教程:正点原子移植教程。一、踩坑点启动文件的stack_size要由0x400改为0x800,否则demo会白屏lv_task_tc()可以放在一个定时器中断函数中,每5ms进入一次中断。关键是修改lv_port_d......
  • 海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(23)SS928/SD3403推理y
    今天抽空测试了一下3403跑yolov8的速度,源码还没改完,后处理还是先用CPU来跑了,这样速度会拖慢一点,先看看效果。实际用的是4T算力的,里面是有两个NPU,一个叫SVP_NNN,一个叫NNN,用的方式还不一样,分别用SVP_ACL接口和ACL接口。我是没有时间去研究ACL,用的SVP_ACL的方式。下面是对比。......