- 博客(15)
- 收藏
- 关注
原创 理论的学习。LDD3的学习
<br />转:今天进入《Linux设备驱动程序(第3版)》第三章字符设备驱动程序的学习。<br />这一章主要通过介绍字符设备scull(Simple Character Utility for Loading Localities,区域装载的简单字符工具)的驱动程序编写,来学习Linux设备驱动的基本知识。scull可以为真正的设备驱动程序提供样板。<br /><br />一、主设备号和此设备号<br />主设备号表示设备对应的驱动程序;次设备号由内核使用,用于正确确定设备文件所指的设备。<br />内
2011-01-26 22:54:00 382
原创 写APP
1.继续完善自己的驱动程序,将CDEV要成为全局变量,因为生成的CDEV是需要删除的CHARchar驱动的大致的框架已经理解了,开始调用函数register_chrdev_region注册一些驱动范围,然后生成一个cdev结构,填写好read啊,write等一系列操作函数,然后再注销这些东东2.调用read函数 sizeRead = read(fd,(void *)readBuf , 4); if(sizeRead { perror("can not read led/n")
2011-01-26 22:33:00 447
原创 驱动终于跑起来了,做实验
<br />1.写APP,测试驱动的READ功能<br />2.驱动进一步研究<br />3.重新编写LED的代码,自己搭建驱动结构<br />字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_c... <br />内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下:<br /> static struct char_d
2011-01-24 21:21:00 331
原创 学习的东西
<br />硬件平台:mini2440(友善之臂的开发板)<br />开发环境:在VMware下安装的redhat Linux 9.0.<br />实验目的:点亮一个led灯,亮灭亮灭的变化,间隔为1s<br />1:led 的驱动 my_leds.c<br />#include <linux/config.h> //内核配置<br />#include <linux/module.h> //模块加载<br />#include <linux/kernel.h> //内核<br />#include
2011-01-19 23:03:00 267
原创 在FILE_OP中添加新的操作
1.添加read操作,读取GPIO的状态static ssize_t led_read(struct file *filp,char __user *buf, size_t size,loff_t *ppos){ char pinStat[4]; unsigned long err; int i = 0; for(i = 0 ; i { pinStat[i] = s3c2410_gpio_getpin(led_table[i]); } err = co
2011-01-18 23:09:00 434
原创 现在可以使用LED的驱动了
1.去掉了LED驱动的内核加载到开发板中,去掉LED,重新编译,然后看效果2.现在还是不行,还是有问题,FS又要重新写入,每次重新编译内核,就要重新写FS,要不就会报错
2011-01-17 22:38:00 308
原创 重新编译内核,去掉LED
<br />1.用指令cp config_mini2440_t35 .config ,将配置文件放到合适的地方,再重新编译<br />2.不能去掉LED驱动,会导致系统错误,不知道怎么回事,nable to open an initial console<br />现在重新解压内核,重新编译试试,还有可以是BOOTLOADER出现了问题
2011-01-13 23:07:00 244
原创 测试内核(补周三的)
<br />1.今天没多少时间能学习,加班去了,现在就测试下,将新的内核烧写到flash里面试试。。<br />2.不能用,编译出的内核有问题
2011-01-13 21:30:00 234
原创 继续学习驱动
<br />1.将内核中的LED驱动去掉了,现在想将内核下载到开发板中,然后尝试着看看LED驱动是不是真正的去掉了,然后讲LED的驱动写入
2011-01-11 23:34:00 227
原创 编译LED驱动,在device上测试
<br />1.编译LED驱动<br />在虚拟机上编译驱动,编译的位置,MAKEFILE如何写,编译出来的文件在开发板上如何加载,如何测试??<br /> <br />进入到linux kernel的目录,找到driver的目录,里面的char驱动中就有LED驱动,应该讲系统的LED驱动去掉,才能加载自己的LED驱动<br />,现在进入到内核的目录,用make menuconfig,去掉LED驱动,用make zImage编译,在目录arh/ARM/BOOT目录下有生成ZIMAGE
2011-01-10 23:17:00 329
原创 linux驱动学习
<br />1.在dev目录下用LS -L查看字符设备,输出第一列为C的的标识的设备,其中有主设备号,和次设备号<br />设备文件对应设备驱动,LINUX将每个设备映射成为一个文件,如果访问文件,那么对应的访问就是相应的IO驱动程序,文件和驱动主要是通过主设备号联系起来的,次设备号就是反应了具体是那个设备<br />内核中 dev_t 描述设备号的结构体中,高12位主设备号,低20位是次设备号<br /> <br />linux如果分配主设备号?<br />静态申请和动态申请<br /> int regi
2011-01-07 23:00:00 244
原创 迷宫问题
<br />1.对于迷宫问题很好奇,想用递归的方式解决,但是不知道思路是什么,一直对于递归没有什么想法,想用最简洁的方法解决迷宫找路的问题,本来写了一个算法,是比较简单,但是在一些情况下会出错,但是看网上很多人写的太复杂了,没太大的参考的价值<br /> <br />现在在网上看到了一个算法,希望能成功<br /><br />// maze.cpp : Defines the entry point for the console application.<br />//<br /> <br />#incl
2011-01-06 22:56:00 239
原创 目标执行的第一天
<br />1.分析S3C2440的LED控制<br /> <br />看CPU的芯片中LED有四个PIN控制的,GPB5-GPB8,2440有九组GPIO,要写驱动<br /> <br />GPBA....GPBJ ,有三个寄存器来控制这GPBCON, GPBDAT, GPBUP<br /> <br /><br />Register Address R/W Description Reset Value<br />GPBCON 0x56000010 R/W Configures the pins of p
2011-01-05 22:53:00 328
原创 新的一年,一定要坚持每天都学点linux开发
<br />目标,每天学习两个小时linux开发,找寻兴趣点,可以从LED驱动开始做起,第一个项目LED跑马灯<br />明天开始写学习心得
2011-01-04 22:41:00 352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人