logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

linux内核代码预处理后便于阅读

inux 内核庞大而复杂。内核代码阅读的时候,有没有遇到因为宏定义或者inline层次太深而不知道到底代码是什么样子。代码预处理可以解决这个难题。 平台:linux 3.4.5 ARM,PC linux上类似,更简单些。加V=1重新编译内核make内核增加V=1选项,会详细打印编译过程,-B是要求重新编译内核所有模块。cd linux-3.4.5 && mak...

#linux
ARMv8 Linux内核源码分析:__flush_dcache_all()

ARMv8 Linux内核源码分析:__flush_dcache_all()

【解答】arm架构的linux内核,软件线程切换的时候,TLB作废吗,cache作废吗?

首先明确:linux下,线程即进程这种纠结的问题,必须读内核源码才能找到答案,ok,let's go!armv8 内核中上下文切换代码:1、linaro-aarch64/kernel/sched/core.c line 1852context_switch==>该函数调用两个主要函数:switch_mm(),switch_to()如下所示2、arch/arm6

#arm#linux
Linux内核升级全过程 手把手教你一次成功(2.4.20-8到2.6.18)

Linux内核升级全过程 手把手教你一次成功(2.4.20-8到2.6.18) ============================= 时间:2007-01-08作者:飘扬首发:http://www.piaoyang.org/blog Q Q: 47720194邮箱:piaoyang168#163.com=============================

#linux#虚拟机
【linux内核剖析笔记】linux支持的终端设备类型及终端、控制台、串口、UART、RS232、RS485的联系和区别

1.1 Linux支持的终端设备类型可以大致分为5种:串行端口终端、伪终端、控制终端、控制台、其他类型,如下图所示;1.1.1 串行端口终端(/dev/ttySn)顾名思义,串行端口终端指的是终端,终端是什么?是具体的设备!所以串行端口终端指的是使用计算机串行端口连接的终端设备,这些串行端口对应的设备文件名在Linux /dev/目录下是ttyS0 ttyS1.1.

ARM linux内核在内存中的布局

Kernel Memory Layout on ARM LinuxRussell KingNovember 17, 2005 (2.6.15)This document describes the virtual memory layout which the Linuxkernel uses for ARM processors.It indicates wh

【解答】arm架构的linux内核中,clrex指令的作用是什么,内核中什么时候才会用到?

先看clrex指令的作用:《arm architecture reference manual》B2-1292以下简称arm arm手册The ClearExclusiveLocal() procedure takes as arguments the processor identifier processorid . The procedure clears the local rec

#linux
ARMv8 Linux内核异常处理过程分析

看了Linaro提供的开源ARMv8 Linux内核源码,发现ARMv8异常处理与ARMv7及之前的架构有所不同,详细分析之。

armv8(aarch64)linux内核中flush_dcache_all函数详细分析

/* *  __flush_dcache_all()*  Flush the wholeD-cache. * Corrupted registers: x0-x7, x9-x11 */ENTRY(__flush_dcache_all)//保证之前的访存指令的顺序    dsb sy                  //读cache level id regi

ARMv8 Linux内核head.S源码分析

ARMv8 Linue 内核Head.S主要工作内容:1、 从el2特权级退回到el12、 确认处理器类型3、 计算内核镜像的起始物理地址及物理地址与虚拟地址之间的偏移4、 验证设备树的地址是否有效5、 创建页表,用于启动内核6、 设置CPU(cpu_setup),用于使能MMU7、 使能MMU8、 交换数据段9、 跳转到start_kernel函数继续运行。   /*

    共 25 条
  • 1
  • 2
  • 3
  • 请选择