摘要:
上一篇我们大概聊了如何写一个简单的字符设备驱动,我们不是神,写代码肯定会出现问题,我们需要在编写代码的过程中不断调试。在普通的c应用程序中,我们经常使用printf来输出信息,或者使用gdb来调试程序,那么驱动程序如何调试呢?我们知道在调试程序时经常遇到的问题就是野指针或者数组越界带来的问题,在应用 阅读全文
posted @ 2017-05-10 18:21
Avatarx
阅读(469)
评论(0)
推荐(0)
摘要:
在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动。本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存。 下面就开始学习如何写一个简单的字符设备驱动。首先我们来分解一下字符设备驱动都有那些结构或者方法组 阅读全文
posted @ 2017-05-10 18:16
Avatarx
阅读(626)
评论(0)
推荐(0)
摘要:
上一篇介绍了Linux驱动的概念,以及linux下设备驱动的基本分类情况及其各个分类的依据和差异,这一篇我们来描述如何写一个类似hello world的简单测试驱动程序。而这个驱动的唯一功能就是输出hello world。 在编写具体的实例之前,我们先来了解下linux内核下调试程序的一个重要函数p 阅读全文
posted @ 2017-05-10 18:01
Avatarx
阅读(698)
评论(0)
推荐(0)
摘要:
知道手机网友 | 浏览 5427 次 知道手机网友 | 浏览 5427 次 推荐于2016-08-30 02:33:10 最佳答案 数字量:在时间上和数量上都是离散的物理量称为数字量。把表示数字量的信号叫数字信号。把工作在数字信号下的电子电路叫数字电路。数字量由多个开关量组成。如三个开关量可以组成表 阅读全文
posted @ 2017-05-10 17:08
Avatarx
阅读(2347)
评论(0)
推荐(0)
摘要:
1,printk类似于用户态的printf函数,但是比printf函数多了一个日志级别,内核中最常见的日志输出都是通过调用printk来实现的,其打印级别有8种可能的记录字串, 在头文件 <Linux/kernel.h> 里定义: [html] view plain copy KERN_EMERG 阅读全文
posted @ 2017-05-10 16:51
Avatarx
阅读(1274)
评论(0)
推荐(0)
摘要:
首先,我们知道驱动是内核的一部分,那么驱动在内核中到底扮演了什么角色呢? 首先,我们知道驱动是内核的一部分,那么驱动在内核中到底扮演了什么角色呢? 设备驱动程序在内核中的角色:他们是一个个独立的“黑盒子”,使某个特定的硬件响应一个定义良好的内部编程接口,这些接口完全隐藏了设备的工作细节。(说白了,驱 阅读全文
posted @ 2017-05-10 16:22
Avatarx
阅读(3966)
评论(0)
推荐(0)
摘要:
驱动程序属于内核的一个部分。准确的说是内核的一个组件。不包含驱动的内核也叫做内核,并且这也是我们常说的内核。内核要干的事情无非5件。 1,内存管理 2,虚拟文件系统 3,进程调度 4,网络接口 5,进程间通信 驱动更像是内核的扩展组件来帮助内核实现硬件的连接和操控。内核通过提供统一的驱动操作接口供用 阅读全文
posted @ 2017-05-10 15:05
Avatarx
阅读(7348)
评论(0)
推荐(1)
摘要:
http://www.linuxidc.com/Linux/2011-03/33863.htm http://www.linuxidc.com/Linux/2011-03/33863.htm Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程 阅读全文
posted @ 2017-05-10 14:51
Avatarx
阅读(5583)
评论(0)
推荐(0)
摘要:
了解了之前的交叉编译器的命名规则后,也就明白了交叉编译,针对不同架构,平台,目标系统等的区别。 而对于嵌入式开发,想要获得,针对我们所需要的,目标的CPU所合适的交叉编译器,就成了接下来,顺其自然要考虑的事情。 想要得到,可用的,针对自己的CPU的交叉编译器,主要有两种方式: 3.2.1. 拿来主义 阅读全文
posted @ 2017-05-10 13:29
Avatarx
阅读(1933)
评论(0)
推荐(0)
摘要:
nboot,eboot和uboot三者均为bootloader。 nboot是samsung系列cpu为了能将前4KB程序复制到SRAM中运行,而在wince写的。nboot很小(4k左右),一般用在从nandflash启动的情况,nandflash不支持xip,所以必须有一个可以执行的程序将烧写在 阅读全文
posted @ 2017-05-10 13:09
Avatarx
阅读(597)
评论(0)
推荐(0)
摘要:
交叉编译器的名字的命名规则 交叉编译器的名字的命名规则 交叉编译器的名字的命名规则 交叉编译器的名字的命名规则 在折腾嵌入式开发,用到交叉编译器的时候,常常会看到这样的名字: arm-xscale-linux-gnueabi-gcc arm-liunx-gnu-gcc 等等 其中,对应的交叉编译器的 阅读全文
posted @ 2017-05-10 13:04
Avatarx
阅读(1846)
评论(0)
推荐(0)
摘要:
目录 阅读全文
posted @ 2017-05-10 11:34
Avatarx
阅读(471)
评论(0)
推荐(0)
摘要:
http://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html http://www.crifan.com/files/doc/docbook/cross_compile/release/ht 阅读全文
posted @ 2017-05-10 11:33
Avatarx
阅读(949)
评论(0)
推荐(0)
摘要:
http://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html http://www.crifan.com/files/doc/docbook/cross_compile/release/ht 阅读全文
posted @ 2017-05-10 11:28
Avatarx
阅读(15579)
评论(0)
推荐(1)
摘要:
之所以要有交叉编译,主要原因是: 嵌入式系统中的资源太少 具体的解释就是: 交叉编译出来的程序,所要运行的目标环境中,各种资源,都相对有限,所以很难进行直接的本地编译 最常见的情况是: 在进行嵌入式开发时,目标平台,即嵌入式开发板,比如是最大主频200MHz的ARM的CPU,加上32M的RAM,加上 阅读全文
posted @ 2017-05-10 11:24
Avatarx
阅读(1297)
评论(0)
推荐(0)
摘要:
解释什么是交叉编译之前,先要明白一个概念:本地编译 我们之前常见的软件开发,都是属于本地编译: 在当前的PC下,x86的CPU下,直接编译出来程序,可以运行的程序(或者库文件),其可以直接在当前的环境,即x86的CPU下,当前电脑中,运行。 此时的编译,可以叫做,本地编译,即在当前目标平台下,编译出 阅读全文
posted @ 2017-05-10 11:20
Avatarx
阅读(1991)
评论(0)
推荐(0)

浙公网安备 33010602011771号