
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
inux 内核庞大而复杂。内核代码阅读的时候,有没有遇到因为宏定义或者inline层次太深而不知道到底代码是什么样子。代码预处理可以解决这个难题。 平台:linux 3.4.5 ARM,PC linux上类似,更简单些。加V=1重新编译内核make内核增加V=1选项,会详细打印编译过程,-B是要求重新编译内核所有模块。cd linux-3.4.5 && mak...
ARMv8 Linux内核源码分析:__flush_dcache_all()
首先明确:linux下,线程即进程这种纠结的问题,必须读内核源码才能找到答案,ok,let's go!armv8 内核中上下文切换代码:1、linaro-aarch64/kernel/sched/core.c line 1852context_switch==>该函数调用两个主要函数:switch_mm(),switch_to()如下所示2、arch/arm6
Linux内核升级全过程 手把手教你一次成功(2.4.20-8到2.6.18) ============================= 时间:2007-01-08作者:飘扬首发:http://www.piaoyang.org/blog Q Q: 47720194邮箱:piaoyang168#163.com=============================
1.1 Linux支持的终端设备类型可以大致分为5种:串行端口终端、伪终端、控制终端、控制台、其他类型,如下图所示;1.1.1 串行端口终端(/dev/ttySn)顾名思义,串行端口终端指的是终端,终端是什么?是具体的设备!所以串行端口终端指的是使用计算机串行端口连接的终端设备,这些串行端口对应的设备文件名在Linux /dev/目录下是ttyS0 ttyS1.1.
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
先看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
看了Linaro提供的开源ARMv8 Linux内核源码,发现ARMv8异常处理与ARMv7及之前的架构有所不同,详细分析之。
/* * __flush_dcache_all()* Flush the wholeD-cache. * Corrupted registers: x0-x7, x9-x11 */ENTRY(__flush_dcache_all)//保证之前的访存指令的顺序 dsb sy //读cache level id regi
ARMv8 Linue 内核Head.S主要工作内容:1、 从el2特权级退回到el12、 确认处理器类型3、 计算内核镜像的起始物理地址及物理地址与虚拟地址之间的偏移4、 验证设备树的地址是否有效5、 创建页表,用于启动内核6、 设置CPU(cpu_setup),用于使能MMU7、 使能MMU8、 交换数据段9、 跳转到start_kernel函数继续运行。 /*







