随笔分类 -  linux-驱动

转:gpio_direction_output 与 gpio_set_value
摘要:gpio_set_value(port_num,0/1) 一般只是在这个GPIO口的寄存器上写上某个值,至于这个端口是否设置为输出,它就管不了! 而gpio_direction_output (port_num,0/1),在某个GPIO口写上某个值之后,还会把这个端口设置为输出模式。 因此,有人也许 阅读全文
posted @ 2016-11-23 20:52 care2014 阅读(2748) 评论(0) 推荐(0)
转:gpio_request
摘要:今天再次学习SD卡驱动,遇到pgio_request这个函数,始终不知道其什么意思,看了几遍源代码才有了点感觉。现将其关键部分再此说明一下,以备自己以后复习,或是路客参考。 一般gpio_request封装了mem_request(),起保护作用,最后要调用mem_free之类的。主要是告诉内核这地 阅读全文
posted @ 2016-11-23 20:47 care2014 阅读(1135) 评论(0) 推荐(0)
转:misc_register、 register_chrdev 的区别总结
摘要:杂项设备(misc device) 杂项设备也是在嵌入式系统中用得比较多的一种设备驱动。在 Linux 内核的include/linux目录下有Miscdevice.h文件,要把自己定义的misc device从设备定义在这里。其实是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编 阅读全文
posted @ 2016-11-23 19:28 care2014 阅读(1471) 评论(0) 推荐(0)
转:Linux内存管理之mmap详解
摘要:一. mmap系统调用 1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。 当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进 阅读全文
posted @ 2016-08-29 15:17 care2014 阅读(205) 评论(0) 推荐(0)
转:内核空间与用户空间数据交换的方式之一 --ioctl(通过字符设备演示)
摘要:对于linux而言,内核程序和用户程序分别运行在内核空间和用户空间,要实现两者的数据交换,主要有以下几种方式:系统调用,读写系统文件(procfs,sysfs, seq_file,debugfs等), Netlink, 内核模块加载参数,内核启动参数,以及设备驱动实现的设备读、写、控制(ioctl) 阅读全文
posted @ 2016-08-29 15:15 care2014 阅读(787) 评论(0) 推荐(0)
转:关于copy_to_user()和copy_from_user()的一些用法
摘要:一、Copy_to_user( to, &from, sizeof(from)) To:用户空间函数 (可以是数组) From:内核空间函数(可以是数组) sizeof(from):内核空间要传递的数组的长度 二、Copy_from_user(&from , to , sizeof(to) ) To 阅读全文
posted @ 2016-08-25 15:15 care2014 阅读(16305) 评论(1) 推荐(0)
转:pthread_create()
摘要:http://blog.csdn.net/youbang321/article/details/7815707 原型:int pthread_create((pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *) 阅读全文
posted @ 2016-08-23 18:08 care2014 阅读(194) 评论(0) 推荐(0)
转: ubuntu配置NFS,挂载开发板
摘要:命令: 1. $sudo apt-get install nfs-kernel-server (安装NFS,Ubuntn上默认没有安装) 2. $showmount -e <Server Address> (查看list)3. $sudo mount <Server Address>:/<Path1 阅读全文
posted @ 2016-08-23 16:37 care2014 阅读(664) 评论(0) 推荐(0)
转:Linux 内核中的 cdev_alloc和cdev_add
摘要:内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义:linux-2.6.22/include/linux/cdev.hstruct cdev {struct kobject kobj; // 每个 cdev 都是一个 kobjectstruct module *owner; // 指 阅读全文
posted @ 2016-08-20 10:52 care2014 阅读(766) 评论(0) 推荐(0)
转:1.1 cdev_init cdev_alloc 使用说明
摘要:对 “从globalmem学习linux字符设备驱动” 的 cdev_init 和 cdev_alloc中一些不清楚的地方进行说明: cdev_init 和 cdev_alloc函数定义如下: 1.1 cdev_init 函数用于初始化cdev的成员,并建立生cdev和file_operations 阅读全文
posted @ 2016-08-20 10:47 care2014 阅读(856) 评论(0) 推荐(0)
转:用 git 下载 uboot 源码
摘要:1. 起因: 想下载 uboot 源码,原先的方法都是下载压缩包,然后放到虚拟机上的 Ubuntu ,再解压。 在看 uboot 源码的时候,发现 v2016.01 版本的uboot中关于 board_init_f_mem 函数有问题,想要查看其它版本的相关内容,就犯愁了,我想到了 uboot 是用 阅读全文
posted @ 2016-08-11 18:25 care2014 阅读(561) 评论(0) 推荐(0)
S3C2440 驱动程序开发
摘要:转载:http://www.cnblogs.com/lishixian/articles/2999923.html 阅读全文
posted @ 2015-08-22 11:20 care2014 阅读(149) 评论(0) 推荐(0)
FLASH驱动之-块设备驱动系统构架
摘要:一. 块设备是只能以块为单位进行访问的设备,块的大小一般是512个字节的整数倍,常见的块设备包括硬件,SD卡,光盘,flash等。驱动程序是块的整数倍从设备读写得到数据。块设备的最小访单位为块,不同系统之上,对块的大小是不一样的,linux一般定义为512个字节。我们每次访问一个块设备是最小访问单... 阅读全文
posted @ 2015-06-11 20:35 care2014 阅读(407) 评论(0) 推荐(0)