- 博客(14)
- 资源 (24)
- 收藏
- 关注
转载 ARM linux hard soft irq
今天在ChinaUnix论坛内核源码版上与linuxfellow网友讨论到hardirq和softirq的问题,虽 然在《深入Linux设备驱动程序内核机制》(以下简称“ILDD”)第5章“中断处理”对此已有详细的解读,但是我觉得还是有必要再花点时间深入探讨一 下这两者的区别。因为此前关于ARM上的中断处理我已经在另一篇帖子解密ARM based Linux内核中断处理框架 中讨论过,所以下面
2012-02-25 21:54:22 2371
转载 ARM Linux 外部中断
最近在学习arm linux的整套外部中断的处理过程,在网上汇总了一些资料,整个过程差不多都了解到了。如果没有这些资料我真是没信心从汇编开始读代码,感谢 奔腾年代的jimmy.lee和 linux论坛的bx_bird。 在下面的的注释中有一些我读代码时遇到的问题,要是大家知道是怎么回事,希望多多回复。 ==========================================
2012-02-25 11:18:10 904
转载 2.6的系统调用
下面的代码大家可以在entry-common.S中找到。 在2.6.21中,认真研究大家会发现,你回避不了这样一个概念,EABI是什么东西? 内核里面谈EABI,OABI,其实相对于系统调用的方式,当然我们所说的系统限于arm系统。 EABI (Extended ABI),说的是这样的一种新的系统调用方式 mov r7, #num swi 0x0 原来的系统
2012-02-25 11:13:20 651
转载 oops定位
( 来自Linus Torvalds的讨论: https://groups.google.com/group/linux.kernel/browse_thread/thread/b70bffe9015a8c41/ed9c0a0cfcd31111 又,http://kerneltrap.org/Linux/Further_Oops_Insights ) 例如这样的一个Oops
2012-02-25 11:12:11 971
转载 慢系统调用与信号中断
早期的Unix系统,如果进程在一个‘慢’系统调用中阻塞时,捕获到一个信号,这个系统调用被中断,调用返回错误,设置errno为EINTR。系统调用被分为慢系统调用和其他两大类别。 慢系统调用可以被永久阻塞,包括以下几个类别: (1)读写‘慢’设备(包括pipe,终端设备,网络连接等)。读时,数据不存在,需要等待;写时,缓冲区满或其他原因,需要等待。读写磁盘文件一般不
2012-02-24 17:21:35 3953
转载 解压缩:arch/arm/boot/compressed/head.S分析
这几天因为工作原因,升级 2.6.22.7 的kernel 到 Mavell 的arm 板子上去,遇到一些头疼的问题,不得不分析启动代码, 郁闷阿。 zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从u
2012-02-16 10:01:21 3031
转载 浅析blob到kernel传递tags参数和cmdline处理流程
1.blobblob主程序main.cint main(void){ ... /* initialise status */ blob_status.paramType = fromFlash; blob_status.kernelType = fromFlash; blob_status.ramdiskType = fromFla
2012-02-15 18:24:48 1290
转载 ARM Linux 的启动过程
1. kernel运行的史前时期和内存布局 在arm平台下,zImage.bin压缩镜像是由bootloader加载到物理内存,然后跳到zImage.bin里一段程序,它专门于将被压缩的kernel解压缩到KERNEL_RAM_PADDR开始的一段内存中,接着跳进真正的kernel去执行。该kernel的执行起点是stext函数,定义于arch/arm/kernel/head.S。
2012-02-15 15:09:28 881
转载 Linux 的内核调试
※ 调试工作艰苦,是内核级开发区别于用户级开发的一个显著特点。※ 驾驭内核调试的能力,很大程度上取决于经验和对整个操作系统的把握。 一、调试前的准备 内核级bug具有行为不可靠,定义不清晰或者说很难再现的诸多特定,为内核级的bug跟踪和调试带来了很大的困难。 ※ 对于一些定义不清楚地bug,问题的关键就是找到bug的源头,很多时候,当你精确地重现一个
2012-02-15 11:18:22 694
转载 Linux oops
什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没什么本质的差别,只不过说话的主角变成了Linux。当某些比较致命的问题出现时,我们的Linux
2012-02-15 11:16:37 1760
转载 Linux命令行解析
处理模型Linux kernel 的启动包括很多组件的初始化和相关配置,这些配置参数一般是通过command line 进行配置的。在进行后续分析之前,先来理解一下command line 的处理模型:要处理的对象是一个字符串,其中包含了各种配置信息,通常各个配置之间通过空格进行分离,每个配置的表达形式是如:param=value1,value2或者很简单就是一个rw 。
2012-02-15 11:03:38 1048
转载 内核调试
1.调试技术内核编程带来了它自己的,独特的调试挑战。内核代码不能简单地在调试器中执行,也不能被简单地跟踪,因为它是一组不与特定进程相关的功能。内核代码的错误非常难重现并且可能导致整个系统崩溃,因此破坏很多用来发现它们的证据。本章将介绍在如此恼人的情况下你可以用来监视内核代码和跟踪错误的技术。1.1.内核中的调试支持在第二章中,我们建议你编译和安装你自己的内核,而不是运行你所使用的发
2012-02-14 09:31:32 7505 1
转载 Linux内核调试技术指南
前两天,完成了ucos在2440上的移植,以及boot的修改。今天突然想到,我在linux下,该如何来编写,调试比较复杂的驱动。我想这个问题应该从如何调试内核入手,先转载两个文字,待西西看来。系统搭建过程中,对于系统平台搭建工程师在完成Bootloader 的调试之后就进入Kernel 裁减移植的阶段,其中最重要的一步是Kernel 启动的调试,在调试Kernel过程中通常遇到最常见的问题是启
2012-02-13 20:45:36 2939
转载 内核移植相关
嵌入式Linux内核移植相关代码分析 [转载请注明出处,www.linuxforum.net,作者:张洪耿,patrick_zhg@hotmail.com] 本文通过整理之前研发的一个项目(ARM7TDMI +uCLinux),分析内核启动过程及需要修改的文件,以供内核移植者参考。整理过程中也同时参考了众多网友的帖子,在此谢过。由于整理过程匆忙,难免错误及讲解的不够清楚之处,请各
2012-02-03 19:32:24 1119
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人