链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd=1688提取码:1688//**************************************************#include /*module_init()*/#include /*printk()*/#include /*__init__exit*/#include /*file_operation*/#include /*copy_to_user,copy_from_user*/#include
链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd=1688提取码:1688 驱动程序编写好后,还需要创建设备节点,有两种方式,一是通过mknod命令去手动创建,例如:mknod/dev/helloc2500,/dev/hello为设备节点名字,c代表字符设备,250和0代表它的主次设备号。二是使用udev或mdev来实现自动创建设备节点。使用mknod手动创建设备节点不够灵活,如果是动态分配的设备号怎么办,难道每次加载驱动后去查看/proc/devices文件中查看它的主设备号,要是产品发布时怎么办,显然不太现实利用ude
链接:https://pan.baidu.com/s/1E4x2TX_9SYhxM9sWfnehMg?pwd=1688提取码:1688上午:中断 吕峰老师下午:定时器教学内容:一、中断ARM中断分为二级,分为一级中断和二级中断,二级中断为子中断,对于ARM来说有50个中断源,其中有32+(EINT23-4)23-4+1-2=50子中断源分为二种,一种是内部子中断,另一种是外部子中断源(EINT4_7,EINT8_23)内部子中断:一般是串口的读写,视频的中断,AC中断等等,主要是内部硬件设备外部子中断:一般是EINT4_7,EINT8_23,分别是GPF和GPG的I/O口。中断
链接:https://pan.baidu.com/s/1cd7LOSAvmPgVRPAyuMX7Fg?pwd=1688提取码:1688帧缓冲(framebuffer)设备应用于linux显示技术方面。因为linux的显示平台已经全部基于framebuffer,所以目前在linux环境下开发图形化界面、游戏、影视软件等可视化应用时都必须用到帧缓冲技术,而现在随着消费逐渐娱乐化的大趋势,可视化应用已经在产品开发中越来越重要,因此,对于帧缓冲技术的理解和掌握就非常重要了。1Frambuffer介绍 帧缓冲在linux体系中居于上层应用和底层显示设备之间,如下图所示。它的设计意图是对上层应用屏蔽掉低层
链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd=1688提取码:1688//**************************************************#include /*module_init()*/#include /*printk()*/#include /*__init__exit*/#include /*file_operation*/#include /*copy_to_user,copy_from_user*/#include
链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd=1688提取码:1688 教学内容:1、ADCS3C2440的A/D转换器包含一个8通道的模拟输入转换器,可以将模拟输入信号转换成10位数字编码。在A/D转换时钟频率为2.5MHz时,其最大转换率为500KSPS(5个时钟周期完成一次转换)输入电压范围为0~3.3V。AD转换接口中的AIN[7]-AIN[4]四个通道为触摸屏的模拟信号输入口,低4位通道为普通的AD通道。外AD转换:A[3]-A[0]1)、设置ADCCON寄存器通过ECFLG[15]可以查询是否转换完成,PRSCEN[1
链接:https://pan.baidu.com/s/1E4x2TX_9SYhxM9sWfnehMg?pwd=1688提取码:1688ARM中断寄存器详解 S3C2440的中断寄存器:1.中断分两大类:内部中断和外部中断。2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体参考datesheet数据手册。寄存器:EXTINT0-EXTINT2:三个寄存器设定EINT0-EINT23的触发方式。 EINTFLT0-EINTFLT3:控制滤
链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd=1688提取码:1688structfile_operations{structmodule*owner;//指向拥有该结构的模块的指针,避免正在操作时被卸载,一般为初始化THIS_MODULESloff_t(*llseek)(structfile*,loff_t,int);//llseek用来修改文件当前的读写位置,返回新位置//loff_t为一个"长偏移量"。当此函数指针为空,seek调用将会以不可预期的方式修改file结构中的位置计数器。ssize_t(*read)(struct
链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd=1688提取码:1688教学内容:1、I2C总线:I2C(Inter-IntegratedCircuit),PHILIPS公司开发的两线式半双工同步串行总线;可以用来连接存储器(EEPROM、FLASH)、A/D、D/A转换器、LCD驱动器、传感器等等。I2C总线有两根信号线:双向数据线(SDA)、时钟线(SCL)。均为双向I/O线,通过上拉电阻接正电源;I2C总线可以连接多个设备,各设备的数据和时钟线均连到SDA、SCL信号线上,主机通过设备地址来区分具体的设备,每个设备有唯一的地址
链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd=1688提取码:1688教学内容:1、内核模块的简单框架:__init__exit执行完后就释放空间简单框架:包含三个部分1)模块初始化和模块退出函数2)注册模块函数3)模块许可//***************************************************#include /*module_init()*/#include /*printk()*/#include /*__init__exit*/staticint__in