嵌入式Linux中文站

我眼中的Linux设备树(四 中断)

阅读(211)

中断一般包括中断产生设备和中断处理设备。中断控制器负责处理中断,每一个中断都有对应的中断号及触发条件。中断产生设备可能有多个中断源,有时多个中断源对应中断控制器中的一个中断,这种情况中断产生设备的中断源称之为中断控制器中对应中断的子中断。一般情况中断产生设备数量要多于中断控制器,多个中断产生设备的中断都由一个中断控制器处理,这种多对一的关系也很像一个树形结构,所以在设备树中,中断也被描述成树,叫中断树。以下表述的时候为了明确是在说中断树,在父节点和子节点前边我们都加上中断二字,是为了防止和设备

我眼中的Linux设备树(五 根节点)

阅读(193)

一个最简单的设备树必须包含根节点,cpus节点,memory节点。根节点的名字及全路径都是/,至少需要包含model和compatible两个属性。model属性我们在属性那节已经说过是用来描述产品型号的,类型为字符串,推荐的格式为manufacturer,model-number(非强制的)。根节点的model属性描述的是板子的型号或者芯片平台的型号,如: model = Atmel AT91SAM9G20 family SoC model = Samsung SMDK5420 board based

我眼中的Linux设备树(六 memory&chosen节点)

阅读(272)

根节点那一节我们说过,最简单的设备树也必须包含cpus节点和memory节点。memory节点用来描述硬件内存布局的。如果有多块内存,既可以通过多个memory节点表示,也可以通过一个memory节点的reg属性的多个元素支持。举一个例子,假如某个64位的系统有两块内存,分别是 RAM: 起始地址 0x0, 长度 0x80000000 (2GB) RAM: 起始地址 0x100000000, 长度 0x100000000 (4GB) 对于64位的系统,根节点的#address-cells属性和#size-

Linux设备树的用法

阅读(252)

本文通过为一个新machine写一个设备树来介绍设备树相关的概念,以及如何来描述一个machine。 关于设备树的技术细节描述,需要参考ePAPR文档,ePAPR文档中包含了大量的基础语法之外的细节,如果你需要了解更多本文之外的设备树细节,请参考ePAPR文档。 基本数据格式 设备树是一个由节点及属性组成的简单树结构。属性是基于key-value对的,节点则可以包含子节点以及属性。 如,下面这个树就是一个典型结构: / { node1 { a-string-property = A string; a-s

Linux 调试器之处理变量!

阅读(151)

导读 变量是偷偷摸摸的。有时,它们会很高兴地呆在寄存器中,但是一转头就会跑到堆栈中。为了优化,编译器可能会完全将它们从窗口中抛出。无论变量在内存中的如何移动,我们都需要一些方法在调试器中跟踪和操作它们。这篇文章将会教你如何处理调试器中的变量,并使用 libelfin 演示一个简单的实现。 系列文章索引 准备环境 断点 寄存器和内存 ELF 和 DWARF 源码和信号 源码级逐步执行 源码级断点 堆栈展开 处理变量 高级话题 在开始之前,请确保你使用的 libelfin 版本是我分支上的 fbreg。这包含

Linux 调试器之堆栈展开!

阅读(159)

导读 有时你需要知道的最重要的信息是什么,你当前的程序状态是如何到达那里的。有一个 backtrace 命令,它给你提供了程序当前的函数调用链。这篇文章将向你展示如何在 x86_64 上实现堆栈展开以生成这样的回溯。 系列索引 这些链接将会随着其他帖子的发布而上线。 准备环境 断点 寄存器和内存 ELF 和 DWARF 源码和信号 源码级逐步执行 源码级断点 堆栈展开 读取变量 之后步骤 用下面的程序作为例子: void a() {//stopped here}void b() {a();}void c(

Linux 调试器之高级主题!

阅读(182)

导读 我们终于来到这个系列的最后一篇文章!这一次,我将对调试中的一些更高级的概念进行高层的概述:远程调试、共享库支持、表达式计算和多线程支持。这些想法实现起来比较复杂,所以我不会详细说明如何做,但是如果你有问题的话,我很乐意回答有关这些概念的问题。 系列索引 准备环境 断点 寄存器和内存 Elves 和 dwarves 源码和信号 源码层逐步执行 源码层断点 调用栈 处理变量 高级主题 远程调试 远程调试对于嵌入式系统或对不同环境进行调试非常有用。它还在高级调试器操作和与操作系统和硬件的交互之间设置了一个

在嵌入式linux下搭建Boa Webserver

阅读(303)

背景: 1、嵌入式Web的应用。在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的C/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。 2、嵌入式服务器的选择。由于嵌入式设备资源一般都比较有限,并且也不需要能同时处理很多用户的请求,因此不会使用Linux下最常用的如Apache等服务器,而需要使用一些专门为嵌入式设备设计的Web服务器,这些Web