当前位置: 首页 > news >正文

wap网站建设方案 pdf网站资源建设方案

wap网站建设方案 pdf,网站资源建设方案,wordpress是用什么开发的,贵州省赤水市代码往期知识点记录#xff1a; 鸿蒙#xff08;HarmonyOS#xff09;应用层开发#xff08;北向#xff09;知识点汇总 鸿蒙#xff08;OpenHarmony#xff09;南向开发保姆级知识点汇总~ OpenHarmony#xff08;鸿蒙南向开发#xff09;——轻量系统芯片移植指南(一) Op…往期知识点记录 鸿蒙HarmonyOS应用层开发北向知识点汇总 鸿蒙OpenHarmony南向开发保姆级知识点汇总~ OpenHarmony鸿蒙南向开发——轻量系统芯片移植指南(一) OpenHarmony鸿蒙南向开发——轻量系统芯片移植指南(二) OpenHarmony鸿蒙南向开发——轻量系统芯片移植指南(三) OpenHarmony鸿蒙南向开发——轻量系统芯片内核移植 OpenHarmony鸿蒙南向开发——小型系统芯片移植指南一 OpenHarmony鸿蒙南向开发——小型系统芯片移植指南二 持续更新中…… LiteOS-A内核 移植概述 移植场景 LiteOS-A当前支持ARMv7-a指令集架构如果三方芯片为ARMv7-a架构可以进行内核基础适配否则还需要先根据芯片的架构来新增内核对该芯片架构的支持这个工作较为复杂不在这篇文章范围内。 目录规范 LiteOS-A目录规范参考 LiteOS-A 简介。 基础适配 LiteOS-A提供系统运行所需的系统初始化流程和定制化配置选项。移植过程中需要关注初始化流程中跟硬件配置相关的函数。 如下图所示LiteOS-A的初始化流程主要包含以下七步 新增target_config.h文件并且编写单板内存相关的配置宏DDR_MEM_ADDR和DDR_MEM_SIZE分别表示内存起始地址和内存的长度预链接脚本board.ld.S会根据这两个宏进行展开生成链接脚本board.ld。 新增定义MMU映射全局数组(g_archMmuInitMapping)指定各个内存段属性及虚实映射关系内核启动阶段根据该表建立内存映射关系。 如果是多核需要新增定义从核操作函数句柄(struct SmpOps)其中SmpOps-SmpCpuOn函数需要实现唤醒从核的功能接着定义SmpRegFunc函数调用LOS_SmpOpsSet接口进行句柄注册最后通过启动框架完成注册过程即LOS_MODULE_INIT(SmpRegFunc, LOS_INIT_LEVEL_EARLIEST)。 链接阶段根据链接脚本board.ld生成内核镜像。 单核CPU镜像运行入口为汇编文件reset_vector_up.S多核CPU的入口为reset_vector_mp.S在汇编文件中进行中断向量表初始化、MMU页表初始化等操作。 reset_vector.S汇编代码最终会跳转到C语言的main函数进行硬件时钟、软件定时器、内存和任务等初始化这个过程会依赖target_config.h的特性宏配置最后会创建SystemInit任务并且开启任务调度OsSchedStart()。 SystemInit任务在单板代码中实现其中调用DeviceManagerStart函数进行HDF驱动初始化这个过程会调用单板代码中的驱动配置文件hdf.hcs以及drivers源码实现 整体启动流程如下图所示 图1 整体启动流程 从图1中可以看到内核基础适配需要单板进行适配的代码包含三部分 新增target_config.h文件其中新增单板硬件配置参数和特性开关的配置参数具体说明如下 表1 target_config.h配置项说明 配置项说明OS_SYS_CLOCK系统cycle的频率DDR_MEM_ADDR系统内存的起始地址DDR_MEM_SIZE系统内存的大小PERIPH_PMM_BASE外设寄存器的起始地址PERIPH_PMM_SIZE外设寄存器的长度大小OS_HWI_MIN系统中断最小值OS_HWI_MAX系统中断最大值NUM_HAL_INTERRUPT_UART0UART0中断号UART0_REG_BASEUART0寄存器基址GIC_BASE_ADDRGIC中断寄存器基址GICD_OFFSETGICD相对GIC基址的偏移地址GICC_OFFSETGICC相对GIC基址的偏移地址 SystemInit函数用于单板用户态业务初始化典型的初始化场景如图2所示 图2 业务启动流程 main函数用于内核基础初始化和单板内核态业务初始化流程如下图3所示整体由内核启动框架主导初始化流程图中浅蓝色部分为启动框架中可接受外部模块注册启动的阶段。 注意 同一层级内的模块不能有依赖关系。 图3 内核启动框架 表2 启动框架层级 层级说明LOS_INIT_LEVEL_EARLIEST最早期初始化 说明不依赖架构单板以及后续模块会对其有依赖的纯软件模块初始化例如Trace模块LOS_INIT_LEVEL_ARCH_EARLY架构早期初始化说明架构相关后续模块会对其有依赖的模块初始化如启动过程中非必需的功能建议放到LOS_INIT_LEVEL_ARCH层LOS_INIT_LEVEL_PLATFORM_EARLY平台早期初始化说明单板平台、驱动相关后续模块会对其有依赖的模块初始化如启动过程中必需的功能建议放到LOS_INIT_LEVEL_PLATFORM层例如uart模块LOS_INIT_LEVEL_KMOD_PREVM内存初始化前的内核模块初始化说明在内存初始化之前需要使能的模块初始化LOS_INIT_LEVEL_VM_COMPLETE基础内存就绪后的初始化说明此时内存初始化完毕需要进行使能且不依赖进程间通讯机制与系统进程的模块初始化例如共享内存功能LOS_INIT_LEVEL_ARCH架构后期初始化说明架构拓展功能相关后续模块会对其有依赖的模块初始化LOS_INIT_LEVEL_PLATFORM平台后期初始化说明单板平台、驱动相关后续模块会对其有依赖的模块初始化例如驱动内核抽象层初始化mmc、mtdLOS_INIT_LEVEL_KMOD_BASIC内核基础模块初始化说明内核可拆卸的基础模块初始化例如VFS初始化LOS_INIT_LEVEL_KMOD_EXTENDED内核扩展模块初始化说明内核可拆卸的扩展模块初始化例如系统调用初始化、ProcFS初始化、Futex初始化、HiLog初始化、HiEvent初始化、LiteIPC初始化LOS_INIT_LEVEL_KMOD_TASK内核任务创建说明进行内核任务的创建内核线程软件定时器任务例如资源回收系统常驻任务的创建、SystemInit任务创建、CPU占用率统计任务创建 进行单板移植适配推荐关注LOS_INIT_LEVEL_ARCH至LOS_INIT_LEVEL_KMOD_TASK之间的层级且尽可能拆分初始化行为进行细化阶段注册。 说明 启动框架中同一层级内的注册模块不能有依赖关系建议新增模块按照上述启动阶段进行模块初始化的拆分按需注册启动。 可通过查看系统编译生成文件OHOS_Image.map中.rodata.init.kernel.*段内的符号表来了解当前已注册进内核启动框架中的各个模块初始化入口以及检查新注册的模块初始化入口是否生效。 编程样例 在单板SDK文件中 /* 内核启动框架头文件 */ #include los_init.h ....../* 新增模块的初始化函数 */ unsigned int OsSampleModInit(void) {PRINTK(OsSampleModInit SUCCESS!\n);...... } ...... /* 在启动框架的目标层级中注册新增模块 */ LOS_MODULE_INIT(OsSampleModInit, LOS_INIT_LEVEL_KMOD_EXTENDED);验证 main core booting up... OsSampleModInit SUCCESS! releasing 1 secondary cores cpu 1 entering scheduler cpu 0 entering scheduler根据上述系统启动阶段的打印可知内核在启动时进行了该注册模块的初始化函数调用完成该模块的初始化操作。 系统启动完毕后进入内核态shell能够运行task命令能够正常显示即可。 OHOS # help ***shell commands:*arp cat cd chgrp chmod chown cp cpup date dhclient dmesg dns format free help hwi ifconfig ipdebug kill log ls lsfd memcheck mkdir mount netstat oom partinfo partition ping ping6 pmm pwd reset rm rmdir sem shm stack statfs su swtmr sync systeminfo task telnet touch umount uname v2p virstatfs vmm watch writeproc Linux内核 移植概述 Linux内核移植主要涉及基于linux内核基线合入三方芯片补丁后进行基础的内核编译构建及验证。 基本信息 当前Linux内核基线是基于Linux社区 4.19 LTS版本演进合入CVE及bugfix补丁。具体信息参考 代码库对应repo工程代码路径为kernel/linux-4.19。 Bootloader 可以使用芯片厂商自带的Bootloader或者是开源Uboot等加载内核镜像。比如为支持Hi3516DV300开发板OpenHarmony引入的开源 Uboot。 适配编译和烧录启动 1.准备内核config特别是芯片相关的config。 config文件所在源码目录kernel/linux/config/ 以hi3516dv300芯片为例可在对应的linux-4.19/arch/arm/configs/目录下新建YOUR_CHIP_small_defconfig如hi3516dv300_small_defconfig表示针对hi3516dv300小型系统的defconfig。该config文件可以由基础defconfig文件small_common_defconfig与该芯片相关的config组合生成。 2.准备芯片补丁。 补丁文件所在源码目录kernel/linux/patches/linux-4.19 以hi3516dv300芯片为例参考已有的patch目录hi3516dv300_small_patch目录新建YOUR_CHIP_patch目录放置相关芯片补丁注意hdf.patch等驱动补丁。 3.编译。 具体内核编译入口脚本位于工程目录kernel/linux/patches/下面版本级整编命令会通过BUILD.gn进入kernel_module_build.sh和kernel.mk需要在这2个文件中针对性进行patch及defconfig文件路径、编译器、芯片架构、内核Image格式等的适配。 通过编译错误日志调整补丁典型错误场景 1补丁合入失败出现冲突需要进行上下文适配修改。 2编译失败内核版本差异函数实现调整等需要针对性进行内核适配。 注意 参考kernel.mk在OpenHarmony工程的编译构建流程中会拷贝kernel/linux-4.19的代码环境后进行打补丁动作在使用版本级编译命令前需要kernel/linux-4.19保持原代码环境。 对应拷贝后的目录位于out/***/kernel/linux-4.19可以在该目录下进行补丁的修改适配。 4.烧录启动。 由于不同芯片的开发板的烧录方式不一样此处不表述具体的烧录方式。需要注意烧录的各镜像的大小及启动参数的配置参考hi3516dv300采用uboot启动参数 setenv bootargs mem128M consolettyAMA0,115200 root/dev/mmcblk0p3 ro rootfstypeext4 rootwait blkdevpartsmmcblk0:1M(boot),9M(kernel),50M(rootfs),50M(userfs)验证 调试init进程、启动shell和运行简单的用户态程序验证内核移植是否成功。OpenHarmony小型系统的OS镜像结构以及linux用户态的启动流程如下图1所示 图1 基于linux内核的OS镜像结构和用户态程序启动流程 基于上述流程推荐按以下步骤完成验证 1.制作根文件系统镜像。 请参考 新建芯片解决方案和产品解决方案 生成根文件系统镜像rootfs.img。从上图可以看到启动过程与产品配置强相关在制作rootfs.img过程中请完成如下四种配置 组件配置 产品组件配置文件vendor/{company}/{product}/config.json需配置启动恢复子系统(startup)的init_lite组件和内核子系统的linux_4_1_9组件。 系统服务配置 系统服务配置文件vendor/{company}/{product}/init_configs/init_xxx.cfg需要启动shell服务。 文件系统配置 文件系统配置vendor/{company}/{product}/fs.yml中需要创建/bin/sh - mksh和/lib/ld-musl-arm.so.1 - libc.so软连接这两个文件分别是shell可执行程序和可执行程序依赖的c库。 启动配置 启动配置在vendor/{company}/{product}/init_configs/etc目录下包括fstab、rsS和Sxxx文件请按开发板实际情况配置。 编译完成后可通过检查产品编译输出目录下的rootfs内容确认rootfs.img文件生成是否符合预期。 2.调试init进程和shell。 烧录rootfs.img并调试init进程和shell不同厂商的开发板的烧录工具和流程可能不同请按芯片解决方案提供的流程进行烧录。烧录rootfs.img前请确认bootloader和linux内核启动正常。如果rootfs.img被内核正常挂载接着将运行/bin/init程序init进程为用户态的第一个应用程序它的运行意味着用户态的开始。 init程序首先会调用/etc/init.d/rcS脚本rcS脚本执行第一条命令为/bin/mount -a该命令会加载fstab文件在fstab中的命令执行完后rcS将顺序调用Sxxx脚本完成设备节点创建和扫描、文件权限配置等操作。 最后init程序会读取init.cfg系统服务配置文件。根据步骤1中的设置init程序将会启动shell。如果上述流程运行正常系统则会进入shell。 若串口有如下版本号日志打印则表示init程序启动正常 图2 init启动正常日志 正常进入shell后执行ls命令串口打印信息如下图 图3 正常进入shell后输入ls命令串口打印 3.配置NFS。 init进程和shell正常启动后以服务端IP为192.168.1.22、客户端IP为192.168.1.4为例可在根目录执行如下命令开启NFS: ifconfig eth0 192.168.1.4 netmask 255.255.255.0mkdir -p /storgage/nfsmount -t nfs -o nolock,addr192.168.1.22 192.168.1.22:/nfs /storage/nfs经常有很多小伙伴抱怨说不知道学习鸿蒙开发哪些技术不知道需要重点掌握哪些鸿蒙应用开发知识点 为了能够帮助到大家能够有规划的学习这里特别整理了一套纯血版鸿蒙HarmonyOS Next全栈开发技术的学习路线包含了鸿蒙开发必掌握的核心知识要点内容有ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、WebGL、元服务、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、系统定制移植等等鸿蒙HarmonyOS NEXT技术知识点。 《鸿蒙 (Harmony OS)开发学习手册》共计892页:https://gitcode.com/HarmonyOS_MN/733GH/overview 如何快速入门 1.基本概念 2.构建第一个ArkTS应用 3.…… 开发基础知识: 1.应用基础知识 2.配置文件 3.应用数据管理 4.应用安全管理 5.应用隐私保护 6.三方应用调用管控机制 7.资源分类与访问 8.学习ArkTS语言 9.…… 基于ArkTS 开发 1.Ability开发 2.UI开发 3.公共事件与通知 4.窗口管理 5.媒体 6.安全 7.网络与链接 8.电话服务 9.数据管理 10.后台任务(Background Task)管理 11.设备管理 12.设备使用信息统计 13.DFX 14.国际化开发 15.折叠屏系列 16.…… 鸿蒙开发面试真题含参考答案:https://gitcode.com/HarmonyOS_MN/733GH/overview OpenHarmony 开发环境搭建 《OpenHarmony源码解析》:https://gitcode.com/HarmonyOS_MN/733GH/overview 搭建开发环境Windows 开发环境的搭建Ubuntu 开发环境搭建Linux 与 Windows 之间的文件共享……系统架构分析构建子系统启动流程子系统分布式任务调度子系统分布式通信子系统驱动子系统…… OpenHarmony 设备开发学习手册:https://gitcode.com/HarmonyOS_MN/733GH/overview
http://www.dnsts.com.cn/news/180280.html

相关文章:

  • 163免费邮箱注册seo软文推广
  • 在线直播网站开发实战项目企业营销型网站建设方案
  • 网站seo的推广计划娱乐网站建设
  • 服装鞋帽 网站建设wordpress 精彩
  • 宠物网站建设进度表商务网站建设试题
  • 百度站长电脑版幼儿网站源代码
  • 8免费建站网站免费php网站系统
  • 茂民网站建设哪个网站做ppt模板赚钱
  • 湘潭企业网站建设农业推广作业
  • 网站logo制作教程招商外包
  • 管理系统和网站哪个好做安卓做视频网站
  • 做行业网站如何采集信息优化是企业通过网站来做吗
  • 广东网站建设案例wordpress不能实现静态化
  • 做商城网站哪里行业网站cms
  • 芜湖门户网站建设多少钱东莞品牌网站建设服务
  • 网站建设优化项目wordpress列表翻页有page
  • 全网网站推广网站做零售
  • 目前主流的网站开发语言模板网站有后台么
  • wordpress站点地址修改推广
  • python 网站建设山东平台网站建设平台
  • 海报自动设计网站创意设计思维
  • 茶艺馆网站中建八局第二建设有限公司
  • 性病医院网站优化服务商央企门户网站哪家做的最好
  • 宁夏枸杞网站建设方案上海网站营销怎么样
  • 深圳网站建设黄浦网络-骗钱加强纪检监察网站建设
  • 河北中冶润丰建设股份有限公司网站商标购买网商标
  • 被他人备案后做违法网站山西网站开发二次开发
  • 拓者设计吧邀请码免费网页设计就是做网站优化的吗
  • 3d在线设计网站做黑彩网站能赚钱吗
  • 阿里云如何添加新网站卖文具做网站好还是做电商好