Linux驱动/内核
文章平均质量分 86
xiaohendsc
这个作者很懒,什么都没留下…
展开
-
模块编译成功插入时候 打印 -1 invalid module format
3.执行命令insmod ./hello.ko插入模块,失败,错误信息是insmod: error inserting './hello.ko': -1 Invalid module format。4.执行命令cat /var/log/message | tail,打印信息version magic '2.6.25.14 mod_unload 686' should be '2.6.25-14原创 2013-07-12 07:42:24 · 684 阅读 · 0 评论 -
字符设备驱动中常见的几个 目录
1. cat /pro/devices 是你程序中 注册的设备名称 和该设备号 2. cd /dev/ 下面是 你创建的设备节点 该名字对应用户程序中 open 打开的设备 3. cd /sys/moudle 下面是你 insmod 进内核的 .ko 文件 4. mknod hello c 250 0创建设备节点,是给 /dev 目录下添加 hello原创 2013-07-12 07:47:14 · 631 阅读 · 0 评论 -
-ERESTARTSYS 的意思
关于ERESTARTSYS到底是什么意思 关于 ERESTARTSYS 到底是什么意思 经常我们在睡眠的代码中 会看到这样的例子: if (signal_pending(current)) { ret = -ERESTARTSYS; return ret; } 关于 ERESTARTSYS 到底是什么意思? 通过下面的论坛可原创 2013-07-12 07:57:52 · 2271 阅读 · 0 评论 -
socket 问题
linux socket中关闭连接 2010-11-04 17:22:02分类: C/C++ 关闭socket连接,实际上并不是很见到的事情。这涉及到如下的问题,多个进程共享socket时如何关闭socket;关闭通信链路与socket描述符的回收。 实际上,关闭socket连接,有如下两个函数:close、shutdown。1、 shutdown(终止原创 2013-07-12 00:21:16 · 595 阅读 · 0 评论 -
ioctl 中定义的 _IO
对于系统支持设备的ioctl号,你可以在/usr/include下面的头文件中找到,对于你自己的设备,如果需要使用ioctl接口,则需要定义自己 的ioctl号。以前的2.4中有个问题是,大家都随便定义自己的ioctl号,造成很大可能性的重复性。一个坏处是难以管理,另外一个是容易造成错误, 例如如果用户本来希望打开一个串口设备,结果通过open打开了网口,如果串口的某个ioctl号正好是网口的关闭原创 2013-07-12 07:54:14 · 836 阅读 · 0 评论 -
ARM PL330 DMA控制器开发
一、DMA介绍DMA作为一种CPU与外设传输数据的技术,现在广泛用于各种计算机架构中,它最大的优点就是无需CPU干涉下,完成数据从内存到外设的传递。本文讲解一下S5PC100中的DMA控制器的操作方法。文中例举的代码都是在FS_S5PC100平台上经过验证的。在华清远见的FS_S5PC100平台上通过PL330 DMA控制器实现了内存到内存、内存到串口、串口到串口等多种DMA传输方式。原创 2013-07-12 07:57:26 · 1685 阅读 · 0 评论 -
copy_to_user 与 copy_from_use
copy_to_user内核空间与用户空间数据传递的通道是copy_to_user和copy_from_user,刚开始使用时对他们的返回值非常困惑。按照”常理”,返回值应该是copy成功了多少个Bytes。但是在kernel里面,他们的语义是相反的。今天费神找到源码,通过注释可以看到他们的含义:1.语义是:如果成功返回0;如果失败,返回有多少个Bytes未完成copy。2.这原创 2013-07-12 07:55:15 · 742 阅读 · 0 评论 -
如何让U-boot实现Nand/Nor 双启动
作者:曹忠明,华清远见嵌入式学院讲师。在做u-boot移植的时候,多数人使用的是Nand flash启动或Nar Flash启动。这样u-boot就只能在Nand flash或Nor flash。那么我们如何让我们的u-boot在Nand flash或Nor flash都能使用。首先,我们说说u-boot,u-boot是系统启动的时候执行的一段程序,这段程序一般存放在Nand flash中原创 2013-07-12 07:45:42 · 406 阅读 · 0 评论 -
schedule()
2007-03-08 15:26schedule() -- 调度进程 The goal of the schedule( ) function consists of replacing the currently executing process with another one. Thus, the key outcome of the function is to set原创 2013-07-12 07:40:37 · 491 阅读 · 0 评论 -
container_of 作用
指针ptr指向结构体type中的成员member;通过指针ptr,返回结构体type的起始地址 type |----------| | | | | |----------|ptr-->| member --| |----------| |原创 2013-07-12 07:56:39 · 675 阅读 · 0 评论 -
分享自cole3 《u-boot向linux内核传递启动参数》
(被一个u-boot搞了3、4天,才明白是个宏定义没加,) U-BOOT 在启动内核时,会向内核传递一些参数.而这些参数是通过 struct tag来传递的。U-boot 把要传递给 kernel 的东西保存在 struct tag 数据结构中,启动 kernel 时,把这个结构体的物理地址传给 kernel;Linux kernel 通过这个地址分析出u-boot传递的参数转载 2013-07-12 07:50:00 · 579 阅读 · 0 评论 -
分享自清客 《基于MTD的NAND驱动开发(完) (转)》
url:http://blog.csdn.net/mianyy/article/details/6712631六、NAND驱动中的坏块管理 由 于NAND Flash的现有工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此在NAND芯片出厂的时候,厂家只能保证block 0不是坏块,对于其它block,则均有可能存在坏块,而且NAND芯片在使用的过程中也很转载 2013-07-12 07:49:23 · 506 阅读 · 0 评论 -
驱动中 open()函数里面的两个结构体参数
struct inode 和 struct file 1、struct inode──字符设备驱动相关的重要结构介绍内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下:struct inode {struct hlist_node i_hash;struct list_head原创 2013-07-12 07:44:32 · 1672 阅读 · 0 评论 -
开发板启动和烧写全过程总结-- hegz
开发板启动和烧写全过程总结-- hegz1.借助DNW 工具,通过usb 将 uboot 到SDROM 里面 A.将开发板拨码开关 拨到从usb启动 B.连接好usb线,(第一次连接要装usb驱动) 启动DNW工具 ,在DNW里面设置uboot加载到的目标地址(这个地址是uboot 在SDROM里面的.text_base 段,如我的s5pc100的是 0X27e0 0000); 然后下原创 2013-07-25 01:21:40 · 2399 阅读 · 0 评论