linux
文章平均质量分 60
ying_seven
这个作者很懒,什么都没留下…
展开
-
关于LINUX某些驱动程序如GPIO编译的时候提示未定义的问题
<br />从网上下载了DS18B20的驱动,在编译的时候总是提示 S3C2410_GPF0,S3C2410_GPF0_INP,S3C2410_GPF0_OUTP未定义问题,在网上找了一些,原来是内核版本问题, 在2.6.29和2.6.32中定义不同,如下: <br />在移植mini2440的驱动到2.6.31的时候,编译提示S3C2410_GPB5、S3C2410_GPB5_OUTPUT等类似的定义缺失。遂在内核中相关的部分arch/arm/mach-2410/include/mach中的头文件寻觅转载 2011-05-10 09:46:00 · 1690 阅读 · 0 评论 -
C语言段错误
当我在linux下写c语言的时候经常会遇到段错误.所以就来细究一下. 段错误或段违规(segmentation violation)查看Expert C Programming(Peter Van Der Linden) Pg.156解释到段错误是由于内存管理单元(MMU)的异常所致,而该异常则通常是由于解除引用一个未初始化或非法的指针引起. 就是指针正在引用一个并原创 2012-03-02 11:13:15 · 1493 阅读 · 0 评论 -
copy_from_user 详解
copy_from_user函数的目的是从用户空间拷贝数据到内核空间,失败返回没有被拷贝的字节数,成功返回0.这么简单的一个函数却含盖了许多关于内核方面的知识,比如内核关于异常出错的处理.从用户空间拷贝数据到内核中时必须很小心,假如用户空间的数据地址是个非法的地址,或是超出用户空间的范围,或是那些地址还没有被映射到,都可能对内核产生很大的影响,如oops,或被造成系统安全的影响.所以转载 2011-11-11 14:34:05 · 50987 阅读 · 0 评论 -
cdev_alloc和cdev_add
转自:http://blog.chinaunix.net/u3/101356/showart_2050054.html内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义:linux-2.6.22/include/linux/cdev.hstruct转载 2011-09-29 10:16:14 · 3072 阅读 · 1 评论 -
TASK_KILLABLE:Linux 中的新进程状态
来源:ibm 作者:Avinesh Kumar Linux® kernel 2.6.25 引入了一种新的进程状态,名为 TASK_KILLABLE,用于将进程置为睡眠状态,它可以替代有效但可能无法终止的 TASK_UNINTERRUPTIBLE 进程状态,以及易转载 2011-09-24 09:01:26 · 1411 阅读 · 0 评论 -
s3c2410_gpio_setpin()
<br />s3c2410_gpio_setpin()在gpio.c中<br />作用:设置相应GPIO口的值,<br />如pin=S3C2410_GPB5 to=0 则:设置S3C2410_GPB5的输出值为0<br />如pin=S3C2410_GPB5 to=1 则:设置S3C2410_GPB5的输出值为1<br />void s3c2410_gpio_setpin(unsigned int pin, unsigned int to)<br />{<br /> void __i转载 2011-05-10 09:10:00 · 2871 阅读 · 0 评论 -
container_of 理解
<br />问题:如何通过结构中的某个变量获取结构本身的指针???<br />关于container_of见kernel.h中:<br />/**<br />* container_of - cast a member of a structure out to the containing structure<br />* @ptr: the pointer to the member.<br />* @type: the type of the container struct this转载 2011-04-06 00:32:00 · 463 阅读 · 0 评论 -
2.4基于虚拟机的Linux内核编译
<br />今天把linux的内核重新编译了一下,周折颇多.<br />我是用vmware虚拟机,linux是redhat9.0.<br />编译的是自带内核2.4.28-8.主要是想把模块加载的选中.<br />再就是体验下linux内核编译.<br /> <br />1、 在/usr/src/linux-2.4.28-8清楚下配置文件make distclean<br />2、 把arch/x86_64/defconfig 拷贝到linux-2.4.28-8的目录下配置内核make menuconf原创 2011-03-31 00:35:00 · 756 阅读 · 1 评论 -
linux-2.6.26内核中ARM中断实现详解(3)
<br />四、中断处理模型 <br />要想弄清楚desc->handle_irq(irq, desc)和我们注册的中断有什么关联,就要了解中断处理模型了。 <br />4.1 中断处理模型结构 <br />中断处理模型如下图所示,<br /> <br />其中NR_IRQS表示最大的中断号,在include/asm/arch/irq.h中定义。 <br />irq_desc[]是一个指向irq_desc_t结构的数组, irq_desc_t结构是各个设备中断服务例程的描述符。Irq_desc_t结构体中转载 2011-05-14 11:12:00 · 454 阅读 · 0 评论 -
linux-2.6.26内核中ARM中断实现详解(2)
<br />三、中断处理过程 <br />这一节将以S3C2410为例,描述linux-2.6.26内核中,从中断开始,中断是如何一步一步执行到我们注册函数的。 <br />3.1 中断向量表 arch/arm/kernel/entry-armv.S<br />__vectors_start:<br /> swi SYS_ERROR0<br /> b vector_und + stubs_offset<br /> ldr pc,转载 2011-05-14 11:11:00 · 517 阅读 · 0 评论 -
linux-2.6.26内核中ARM中断实现详解(1)
<br />看了一些网络上关于linux中断实现的文章,感觉有一些写的非常好,在这里首先感谢他们的无私付出,然后也想再补充自己对一些问题的理解。先从函数注册引出问题吧。<br />一、中断注册方法<br />在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义:<br />int request_irq(unsigned int irq, irq_handler_t handler,<br />转载 2011-05-14 11:10:00 · 594 阅读 · 0 评论 -
linux2.6.28和linux2.6.3xx内核 的struct device 中,bus_id的改变
按照国嵌的代码(LDD那本书上的代码也一样):struct device my_bus = { .bus_id = "my_bus0", .release = my_bus_release,};<br />static int my_match(struct device *dev, struct device_driver *driver){return !strncmp(dev->bus_id, driver->name, strlen(driver->name));}<br />编译时转载 2011-05-12 13:49:00 · 1065 阅读 · 0 评论 -
kobject&kset
简介:关于kobject和kset的介绍 kobjectTable of Contents1 Kobject 1.1 简介 1.2 定义 1.3 相关函数 2 Kobj type 3 kset 3.1 简介 3.2 定义 3.3 相关函数 1 Kobject1.1 简介Kobject 是Linux 2.6 引入的新的设备管理机制,在内核中由struct kobject数据结构 进行描述通过这个数据结构使所有设备在底层都具有统一的接口,kobject提供基本的对象管 理,是构成Linux2.6设备模型的核心结转载 2011-05-12 09:57:00 · 601 阅读 · 0 评论 -
往寄存器的相应位写值的函数
<br />/*s3c2410_gpio_cfgpin()函数*/<br />/*在寄存器的相应位添加功能值的函数*/<br />/*这个函数非常重要*/<br />/*比如,在寄存器GPH的[13:12]位添加10,就要用到此函数*/<br />/*[13:12]两位共有4种状态,10是S3C2410_GPH6_TXD2,00是S3C2410_GPH6_INP,<br />01是S3C2410_GPH6_OUTP,11是S3C2410_GPH6_nRTS1*/<br />/*<br />#define S转载 2011-05-11 19:15:00 · 2115 阅读 · 0 评论 -
nfs服务器的搭建
宿主机:ubuntu9.04目标:fl2440在安装之前 先打开DNW或者超级终端,PC机和FL2440连好网线.确保 ubuntu下的 IP地址与开发板的 IP地址在同一网段。二者皆可以通过 ifconfig查询,以及通过它设置 IP地址。如果不在同一网段,请手动设置为同一网段。先ping一下如果成功则OK如果不行,则有可能是很多问题,特别是虚拟机.原创 2011-06-29 01:43:00 · 1419 阅读 · 0 评论