![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 78
dahailinan
这个作者很懒,什么都没留下…
展开
-
智慧屏内核崩溃问题分析
后来经过分析,该问题的根因是kmap_atomic和kunmap_atomic函数的调用不匹配导致的,kmap_atomic函数中禁用了抢占但未打开,导致zs_map_object函数内部BUG_ON检查失败,引发panic重启。从图中可以看出,在2021-09-29 18:30:22时发生kernel panic,对应崩溃前的内核日志保存在20210929183022-12999199目录下的last_kmsg文件中。在版本路径中有vmlinux,这个文件就是内核符号表文件。(3)解析函数的实际地址。原创 2022-11-26 10:19:27 · 764 阅读 · 0 评论 -
彻底理解Linux 进程调度所有知识点
其中 x19-x28 是 arm64 架构规定需要调用保存的寄存器,可以看到处理器状态切换的时候将前一个进程(prev)的 x19-x28,fp,sp,pc 保存到了进程描述符的 cpu_contex 中,然后将即将执行的进程 (next) 描述符的 cpu_contex 的 x19-x28,fp,sp,pc 恢复到相应寄存器中,而且将 next 进程的进程描述符 task_struct 地址存放在 sp_el0 中,用于通过 current 找到当前进程,这样就完成了处理器的状态切换。转载 2022-11-03 10:49:16 · 508 阅读 · 0 评论 -
在stm32f103上运行nuttx,添加app和driver的流程
以stm32f103的led(PC13)为例子heyi@ubuntu:~/nuttx/heyi_1_nuttx/nuttx/tools$ ./configure.sh stm32f103-minimum:nshheyi@ubuntu:~/nuttx/heyi_1_nuttx/nuttx:make oldconfig menuconfig进行修改了以后,进行更新配置?这条指令暂时不需要make menuconfigBoard led status support 需要取消掉,这个是ARCH_LE.转载 2021-02-25 18:25:50 · 819 阅读 · 0 评论 -
Linux下I/O资源管理(原理)
下图为示意图,读者可以参考该图来阅读代码。个人认为对Linux下I/O资源的管理如掌握__request_region函数就能掌握其精髓。Linux下对I/O资源主要用结构体resource来管理,管理的方法就是用resource来描述使用的I/O资源的状态,并将这些resource用如下两个resource作为表头按地址大小的顺序链接起来。struct resource ioport_resource = {.name = "PCI IO",.start = 0,.end = .转载 2020-12-25 16:57:42 · 563 阅读 · 0 评论 -
深入PCI与PCIe之二:软件篇
PCI/PCIe软件界面1。配置空间PCI spec规定了PCI设备必须提供的单独地址空间:配置空间(configuration space),前64个字节(其地址范围为0x00~0x3F)是所有PCI设备必须支持的(有不少简单的设备也仅支持这些),此外PCI/PCI-X还扩展了0x40~0xFF这段配置空间,在这段空间主要存放一些与MSI或者MSI-X中断机制和电源管理相关的Capability结构。前文提到过,PCI配置空间和内存空间是分离的,那么如何访问这段空间呢?我们首先要对所有的PCI转载 2020-12-25 11:40:04 · 734 阅读 · 0 评论 -
深入GPU硬件架构及运行机制
目录一、导言 1.1 为何要了解GPU? 1.2 内容要点 1.3 带着问题阅读 二、GPU概述 2.1 GPU是什么? 2.2 GPU历史 2.2.1 NV GPU发展史 2.2.2 NV GPU架构发展史 2.3 GPU的功能 三、GPU物理架构 3.1 GPU宏观物理结构 3.2 GPU微观物理结构 3.2.1 NVidia Tesla架构 3.2.2 NVidia Fermi架构 3.2.3 NVidia Maxwell架构转载 2020-12-24 10:27:24 · 2931 阅读 · 0 评论 -
Linux_GUI加速(2)_Linux中的DRM-KMS分析
在上一小节《Linux GUI加速(1)_GUI系统概述》中,我们从应用层到kernel层大致分析了linux中的图形界面的构成,并在最后给出了kernel中DRM+KMS的软件显示框架以及accelerate logic+framebuffer+displayport的硬件结构。在这一子篇会将这两块内容详细展开。本篇主要以Xilinx的xc7z010 的SOPC(zybo的开发板)为硬件平台,在以下几方面介绍:以zynq 7000的逻辑资源(PL)搭建CRTC/Encoder/Connect.转载 2020-12-17 09:58:16 · 859 阅读 · 0 评论 -
Linux_GUI加速(1)_GUI系统概述
开始前的几点说明:本文会尽量从初学者的角度去描述整个Linux整个图形子系统,但由于其复杂性,涉及到的模块比较多,可能会需要一些相关的先验知识; 对于系统的介绍,分析的着重点可能不会在于为什么该这样设计,而是在于在现有的显示系统下,我们能做些什么来适配我们的目的;1.前言GUI作为人机交互信息量最大的一种方式,无论在消费还是工业级产品上都大行其道。但同时由于它处在整个系统的核心位置,对外需要通过鼠标、键盘 、显示器进行I/O获取和控制,在内需要负责图形的生成,渲染,整个系统复杂度比较高。本文会从转载 2020-12-17 09:57:21 · 335 阅读 · 0 评论 -
Linux内核中断系统处理机制-详细分析
一、中断概述 中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去继续运行被暂时中断的程序。1.1中断类型同步中断由CPU本身产生,又称为内部中断。这里同步是指中断请求信号与代码指令之间的同步执行,在一条指令执行完毕后,CPU才能进行中断,不能在执行期间。所以也称为异常(exception)。异步中断是由外部硬件设备产生,又称为外部中断,与同步中断相反,异步中断可在任..原创 2020-11-17 13:50:45 · 454 阅读 · 0 评论 -
同步 异步 阻塞 非阻塞 区别
https://www.cnblogs.com/Anker/p/5965654.html1、前言 前一段时间出去面试,被问到同步、异步与阻塞、非阻塞的区别。我一时半会没有想出来,作为一个工作三年的人来说,实在很惭愧。我当时理解同步、异步属于两个进程中间的协作关系,例如使用浏览器访问一个网站,需要多次请求服务端,才能加载完整个页面的内容。同步的操作如下:浏览器首先发送第一个请求,等待服务器回复后,再发送第二个请求,依次类推,直到所有请求完成。异步的操作如下:浏览器发送第一个请求,可以不用等待服.转载 2020-09-01 14:50:27 · 125 阅读 · 0 评论 -
Linux内核中各种同步机制
原子操作 原子操作是由编译器来保证的,保证一个线程对数据的操作不会被其他线程打断。 自旋锁 原子操作只能用于临界区只有一个变量的情况,实际应用中,临界区的情况要复杂的多。对于复杂的临界区,Linux 内核提供了多种方法,自旋锁就是其一。自旋锁的特点就是当一个线程获取了锁之后,其他试图获取这个锁的线程一直在循环等待获取这个锁,直至锁重新可用。由于线程一直在循环获取这个锁,所以会造成 CPU 处理时间的浪费,因此最好将自旋锁用于很快能处理完的临界区。自旋锁使用时两点注意:自旋...转载 2020-09-01 11:20:00 · 197 阅读 · 0 评论 -
STM32的优先级NVIC_PriorityGroupConfig的理解及其使用
写作原由:因为之前有对stm32 优先级做过研究,但是没时间把整理的东西发表,最近项目需要2个串口,但是不是两个串口同时使用,只是随机使用其中一个,程序对2个串口的优先级需要配置;此文思路:“中断优先级”思维导图-->关键要点--->结合图和要点相关程序应用例程讲解;我们先来看ST公司的一张图:我自己依据此图理解,应用思维导图画了一张方便理解:(如果看不清可通过ctrl+鼠标滑轮 ...转载 2018-06-14 15:42:11 · 33037 阅读 · 7 评论 -
FT232R USB UART 驱动安装问题
最近做实验的时候正好用到这个设备,网上搜到了这个解决的方案,最后事情得到了圆满的解决,感谢师弟对我的帮助。 我遇到的问题就是在安装FT232R的过程中总是显示驱动不对,安装驱动不成功。如下图所示,USB UART 驱动安装问题" name="image_operate_30171413461472691" alt="FT232R USB UART 驱动安装问题" src="htt转载 2015-08-11 17:57:14 · 20067 阅读 · 0 评论 -
/dev和/sys/devices
/dev,设备文件存储目录,应用程序通过对这些文件的读写和控制,可以访问实际的设备;/sys/devices目录,按照设备挂接的总线类型,组织成层次结构,保存了系统所有的设备;是文件系统管理设备的最重要的目录结构;这是内核设备按总线类型分层放置的目录结构, devices 中的所有设备都是连接于某种总线之下,在这里的每一种具体总线之下可以找到每一个具体设备的符号链接,它也是构成转载 2012-03-16 10:25:35 · 2454 阅读 · 0 评论 -
linux/Unix环境下的make和makefile详解
创建:2005-10-26 16:53:59作者:Unlinux来自: http://www.Unlinux.com 无论是在linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件转载 2012-02-01 11:43:59 · 532 阅读 · 0 评论 -
嵌入式系统文件系统比较
Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。 Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错转载 2012-02-01 09:55:41 · 393 阅读 · 0 评论 -
android linux基础知识总结
1、虚拟内核文件系统(Virtual Kernel File Systems),是指那些是由内核产生但并不存在于硬盘上(存在于内存中)的文件系统,2、虚拟文件系统,虽然它们出现在根文件系统中,但它里面的内容却无法在任何外部存储设备中找到,因为它们都在内存中。3、proc是一个重要虚拟文件系统,通过它里面的一些文件,可以获取系统状态信息并修改某些系统的配置信息。 proc文件系统本身原创 2012-01-31 15:21:13 · 536 阅读 · 0 评论