想了解更多关于开源的内容,请访问:51CTO 开源基础软件社区https://ost.51cto.com一、背景OpenHarmony系统移植最核心的步骤是内核的移植,内核的稳定是一切子系统稳定的基础,上一篇我们讲述了内核启动原理,以及vendor、board的开发配置,本文将介绍SoC层级的移植适配流程。二、SoC适配SoC配置芯片层级编译依赖库,包括CMSIS、HAL(硬件抽象层)等,这里包含操作总线、串口、时钟、寄存等库函数。1、创建对应的文件目录结构目录名称按照芯片厂家、芯片型号来创建,比如st公司下的stm32f4xx系列芯片。配置文件内容如下:device/soc/st/stm32
MDL内存读写是最常用的一种读写模式,通常需要附加到指定进程空间内然后调用内存拷贝得到对端内存中的数据,在调用结束后再将其空间释放掉,通过这种方式实现内存读写操作,此种模式的读写操作也是最推荐使用的相比于CR3切换来说,此方式更稳定并不会受寄存器的影响。MDL读取内存步骤1.调用PsLookupProcessByProcessId得到进程Process结构2.调用KeStackAttachProcess附加到对端进程内3.调用ProbeForRead检查内存是否可读写4.拷贝内存空间中的数据到自己的缓冲区内5.调用KeUnstackDetachProcess接触绑定6.调用ObDerefere
在由轻流主办的第二届「无代码未来趋势论坛」上,上海交通大学沈备军老师发表了主题演讲。她从学术角度为大家讲述了无代码开发的技术内核。以下为沈备军的演讲全文:大家好,我是沈备军,来自上海交通大学软件学院。我在这分享的主题是:无代码开发技术的“内核”。无代码开发的本质在讲这个技术内核之前,我先简单介绍一下自己。我一直从事软件自动化研究,至今已经有30年的时间。在上个世纪90年代的时候,我们开发了第一款低代码工具叫Formnet,做的是企业信息化、面向程序员的低代码开发平台,取得了很大成功。我们成功开发了亚运会的系统,并获得了国家技术创新二等奖。这个工具我们也推向了全世界:在日本,特别是美国,在美国一
一、基本概念1.卷积(Convolution)卷积是一个物理和数学的概念,可以理解为,系统某一时刻的输出是由多个输入共同作用(叠加)的结果。卷积公式如下:详细讲解可以看【从“卷积”、到“图像卷积操作”、再到“卷积神经网络”,“卷积”意义的3次改变】https://www.bilibili.com/video/BV1VV411478E?vd_source=6f69eb2b361d7f319fa5f5250e9a5d4a实质上,卷积就是对信息(信号)进行“过滤”(滤波),它能够“过滤出”我们感兴趣、对我们有用的信息。在这里的卷积和物理数学上的概念不一同,在图像的卷积操作中,f(x)可以理解为原始像
本章将介绍LiteOS内核中的任务管理模块1.基本概念从系统上来说,任务是资源竞争的最小单元,可以使用或等待CPU的系统资源,独立运行。HUWEILITEOS可以给用户提供多个任务,实现任务通信和切换。任务管理是LiteOS不可裁剪极小内核的一部分功能,主要支持任务的创建,删除,延迟,挂起,恢复等功能,同时支持锁定和解锁任务调度。支持抢占式调度和时间片轮转。2.相关属性任务状态:一般来说,一个任务可以具有为几种不同的状态,即就绪态,阻塞态,运行态和结束态,这四种状态之间的转换关系如图所示。 状态之间的转换一般是在以下条件下进行就绪态→运行态任务创建后进入就绪态,发生
子曰:“苟正其身矣,于从政乎何有?不能正其身,如正人何?”《论语》:子路篇百篇博客分析.本篇为:(Shell解析篇)|应用窥视内核的窗口进程管理相关篇为:v02.06鸿蒙内核源码分析(进程管理)|谁在管理内核资源v24.03鸿蒙内核源码分析(进程概念)|如何更好的理解进程v45.05鸿蒙内核源码分析(Fork)|一次调用两次返回v46.05鸿蒙内核源码分析(特殊进程)|老鼠生儿会打洞v47.02鸿蒙内核源码分析(进程回收)|临终托孤的短命娃v48.05鸿蒙内核源码分析(信号生产)|年过半百活力十足
文章目录概述具体步骤准备fireflysdk准备rk官方Linux4.19开始移植概述对于Linux4.19版本,rockchip提供了官方4.19内核,由于rk官方对于4.19内核版本有支持,但是仅限于少数rk的板子,所以要支持firefly的rk3399-roc-pc-plus(后称为roc-plus),需要进行板级适配/移植。具体步骤准备fireflysdk一.按照firefly官方文档介绍——介绍—FireflyWiki(t-firefly.com),相关工具链和环境配置可按照firefly文档配置,下载4.4内核版本的sdk,其中(sdk)/kernel/下的文件为Linux4.4版
在开始学习内核内存读写篇之前,我们先来实现一个简单的内存分配销毁堆的功能,在内核空间内用户依然可以动态的申请与销毁一段可控的堆空间,一般而言内核中提供了ZwAllocateVirtualMemory这个函数用于专门分配虚拟空间,而与之相对应的则是ZwFreeVirtualMemory此函数则用于销毁堆内存,当我们需要分配内核空间时往往需要切换到对端进程栈上再进行操作,接下来LyShark将从API开始介绍如何运用这两个函数实现内存分配与使用,并以此来作为驱动读写篇的入门知识。首先以内存分配为例ZwAllocateVirtualMemory()函数,该系列函数在ntifs.h头文件内,且如果需要
在现代计算机系统中,块设备驱动程序是操作系统内核中一个重要的组成部分,它用于管理硬盘、闪存等存储设备。Linux内核是一个开源、自由的操作系统内核,驱动程序源代码公开可用,可以帮助开发人员更好地了解Linux内核块设备驱动的工作原理。一、块设备驱动程序的基础概念1、块设备驱动程序的作用块设备驱动程序是一种负责管理块设备(如硬盘、NVMe快闪存储器等)的软件组件,它负责实现块设备的读写操作、磁盘缓存的管理等。块设备驱动程序使得操作系统内核和各种应用程序都可以通过标准的接口访问块设备。2、Linux内核块设备驱动程序中的主要数据结构在Linux内核中,块设备驱动程序主要包含以下数据结构:(1)bi
作者:jikecheng,miaoxie,HarmonyOS内核技术专家HarmonyOS整体框架分为四个层级,如图1所示。从上到下,依次为:第一层是应用层,主要涵盖系统应用、Launcher、设置,以及三方应用。第二层是框架层,提供基础UI框架、用户程序框架以及能力模块框架。第三层是系统服务层,让HarmonyOS具有分布式流转负载的能力。大家看到的高速多设备协同能力就是由该层级提供。而承载整个操作系统,同时发挥芯片算力的基石就沉淀在第四层——内核层。宏观来说,内核的主要工作包含芯片资源管理、软件任务调度,以及衔接用户空间与系统调用能力。图1HarmonyOS整体框架本期,我们要重点给大家