自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 linux内核编译之后还是有问题,与解决

<br />1.经过验证发现是yaffs2的问题,需要重新下载到开发板之后就可以内核搞起了,开心

2011-01-16 23:18:00 241

原创 重新编译内核,去掉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关注的人

提示
确定要删除当前文章?
取消 删除