操作系统
文章平均质量分 86
咕咚.萌西
这个作者很懒,什么都没留下…
展开
-
【Linux内存管理概述】
x86的CPU实模式下,段基址表示的是内存物理地址。而保护模式下段基地存放在描述符中,通过选择子加上逻辑地址可以访问对应的指令或数据,而在ARM处理器中没有这两个概念,他们都被称为虚拟地址。KSM(Kernel Samepage Merging)用于将两个完全相同的匿名页面进行合并,当进行写操作时候再将其分开,也就是写时复制。内存中的部分页面可以进行迁移(在页面规整和内存热插拔用到了该技术)。用于分配较大的内存,通常大于2M就可以使用它,在服务器中比较常见。OOM用于去查找内存较多的进程结束运行。原创 2023-04-02 14:07:18 · 973 阅读 · 0 评论 -
vim 基础操作
saveas :bn:bp.N NGggGwe%# 和 *ctr+dctr+uctr+fctr+b。原创 2023-04-02 14:00:02 · 1592 阅读 · 0 评论 -
模块自动初始化机制
为了能够让业务层直接获取到实例,可将需要自动注册的函数指针放入一个专用的段中,在段前后放置两个变量,系统初始化时将两个变量中间的函数读出并进行调用,被调用函数中包含了设备注册功能,从而自动将设备注册到设备管理器中,应用层通过设备管理器查找对应的设备并返回实例地址,通过该实例可对硬件进行访问。独立看门狗的驱动利用自动初始化机制将实例注册到设备管理器中。此时独立看门狗的接口不变。原创 2023-03-15 10:15:55 · 108 阅读 · 0 评论 -
【嵌入式操作系统-6】延时队列
操作系统使用变量记录时钟节拍,硬件定时器每产生一次中断便加一,无论是32位还是64位,该变量总有溢出的时候,判断任务是否需要唤醒的依据就是当前时钟节拍计数值大于延时队列中任务的下一次唤醒时间,如果下一次唤醒时间是在溢出之后,这种情况下无法进行判断,如果将溢出前后的任务分别放入两个队列则可以避免该问题。xPendingReadyList 当调度器挂起时,所有就绪状态的任务会移出到该队列中,调度器恢复时再将任务从该队列移出到就绪队列中。xSuspendedTaskList 用于保存被挂起和无限等待的任务。原创 2023-01-18 16:23:24 · 194 阅读 · 0 评论 -
KConfig
KConfig语法原创 2022-06-11 15:00:19 · 379 阅读 · 0 评论 -
【嵌入式操作系统-5】操作系统中的上下文切换
文章目录原创 2022-05-15 17:02:55 · 593 阅读 · 0 评论 -
【嵌入式操作系统-4】操作系统中的异常处理
文章目录操作系统中需要管理的异常SysTickSVCPendSV操作系统中需要管理的异常在操作系统中需要管理的异常通常有以下几种:外部中断为操作系统提供时钟节拍的时钟中断系统调用(SVC)在这三种异常中时钟节拍和系统调用与操作系统运行直接相关,在操作系统实现中需要根据需求在中断服务函数中完成响应的功能。SysTickSysTick中断是系统定时器持续进行递减,当数值减为时将产生中断,在嵌入式操作系统中通常使用该中断来提供对应的时钟节拍,并查找出是否有需要切换的任务,如果有则将PendSV原创 2022-05-08 21:54:00 · 774 阅读 · 0 评论 -
【嵌入式操作系统-3】Cortex-M7异常模型
文章目录异常状态异常类型异常处理程序中断向量表异常和返回抢占异常返回Tail-chainingLate-arriving异常状态在Cortex-M7处理器中有四种异常状态不活跃异常没有被处理和挂起挂起异常发生,等待被CPU处理活跃异常正在被CPU处理活跃和挂起CPU正在处理一个异常,但是还有一个与他相同中断源的异常处于挂起状态异常类型异常类型描述复位异常(Reset)复位异常始终有效,他有一个固定的优先级-3不可屏蔽中断(NMI原创 2022-04-28 23:02:57 · 1968 阅读 · 0 评论 -
【嵌入式操作系统-2】Cortex-M7处理器程序员模型
文章目录Cortex-M7内核外设Cortex-M7处理器软件运行时的处理器模式和特权级两种处理器模式:软件运行时的两种特权等级:非特权级:特权级:栈处理器寄存器Cortex-M7内核外设中断向量控制器NVIC是一种嵌入式的中断控制器,它支持低延迟的中断处理。系统控制模块系统控制模块(SCB)是访问处理器的接口,它提供了包含配置,控制,报告异常信息在内的系统实现和系统控制。系统定时器一个24位的向下计数计数器,可以用作实时操作系统的节拍计时器或者普通计时器。集成指令和数据缓原创 2022-04-25 23:57:50 · 2981 阅读 · 0 评论 -
【嵌入式操作系统-1】系统启动流程
文章目录背景硬件启动流程三、启动汇编文件和链接脚本背景一年前使用bochs虚拟机,在x86系统上实现了一个分时操作系统内核,为了进一步理解ARM体系架构,于是我打算基于Cortex-M7内核来编写一个实时操作系统内核,增强对操作系统的理解。硬件启动流程无论是什么CPU,启动后的第一行代码肯定是汇编,下面对比一下stm32f7系列和x86的启动流程:芯片架构x86Cortex-M7第一段代码bios固化于芯片内部的一段引导程序第二段代码外部存储介质中的MBR (51原创 2022-04-23 18:09:10 · 3686 阅读 · 0 评论