当前位置: 首页 > news >正文

珠宝类企业网站(手机端)网站建设专题的意义

珠宝类企业网站(手机端),网站建设专题的意义,怎么查询网站的备案号,咸宁网站seo排名linux驱动开发与裸机开发的区别 裸机直接操作寄存器,有些mcu提供了库,但还是很底层 1、linux驱动开发直接操作寄存器很麻烦不现实,主要是根据linux驱动框架进行开发(就是有很多操作都是一样的,我们只需要对一个程序模…

linux驱动开发与裸机开发的区别

裸机直接操作寄存器,有些mcu提供了库,但还是很底层

1、linux驱动开发直接操作寄存器很麻烦不现实,主要是根据linux驱动框架进行开发(就是有很多操作都是一样的,我们只需要对一个程序模板进行一些修改就可以实现不同驱动的开发)

2、驱动最终的表现就是/dev/xxx这样的一个文件(应用程序打开驱动文件或者关闭驱动文件)

3、内核支持设备树文件,一个dts文件,文件描述了板子的设备信息(使用了哪些引脚,引脚是高电平还是低电平,地址是多少之类的)

三大驱动分类

字符驱动

从最简单的点 灯到 I2C、SPI、音频等都属于字符设备驱动的类型

块驱动

所谓的块设备驱动就是存储器设备的驱动,比如 EMMC、NAND、SD 卡和 U 盘等存储 设备,因为这些存储设备的特点是以存储块为基础,因此叫做块设备

网络设备驱动

就是网络驱动,不管是有线的还是无线的,都属于网络设备驱动的范畴。一个设备可以 属于多种设备驱动类型,比如 USB WIFI,其使用 USB 接口

字符设备驱动实验

在单片机中驱动与应用是在一个文件中,但是linux中驱动与应用程序是分开的

驱动获得外设、或者传感器数据,控制外设然后提交给应用程序

应用程序运行在用户空间,驱动程序运行在内核空间,用户空间的程序无法直接访问内核空间的数据,一般有三种方法

1、系统调用(比如应用函数使用一个open函数*(c语言库函数),然后open函数就会调用内核中的open驱动对应的函数)

2、异常(中断)

3、陷入·

我的第一个linux驱动实验

字符设备驱动框架

字符设备驱动的编写主要就是驱动对应的open、close、read。。。其实就是

file_operations结构体的成员变量的实现

驱动模块的加载与卸载

Linux驱动程序可以编译到kernel里面,也就是zImage,也可以编译为模块,.ko。测试的时候只需要加载.ko模块就可以

加载驱动会用到加载命令:insmod移除驱动使用命令rmmod。

驱动模块加载成功以后可以使用lsmod查看一下。

三、字符设备的注册与注销

1、我们需要向系统注册一个字符设备,使用函数register_chrdev。

2、卸载驱动的时候需要注销掉前面注册的字符设备,使用函数unregister_chrdev,注销字符设备。

四、设备号

1,Linux内核使用dev_t。

typedef __kernel_dev_t       dev_t;

typedef __u32 __kernel_dev_t;

typedef unsigned int __u32;

2、Linux内核将设备号分为两部分:主设备号和次设备号。主设备号占用前12位,次设备号占用低20位。

主设备号表示某一个具体的驱动,次设备号表示使用这个驱动的各个设备

3、设备号的操作函数,或宏

从dev_t获取主设备号和次设备号,MAJOR(dev_t),MINOR(dev_t)。也可以使用主设备号和次设备号构成dev_t,通过MKDEV(major,minor)

五、file_operations的具体实现

file_operation就是驱动的操作函数

struct file_operations {struct module *owner;loff_t (*llseek) (struct file *, loff_t, int);ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);int (*iterate) (struct file *, struct dir_context *);unsigned int (*poll) (struct file *, struct poll_table_struct *);long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);long (*compat_ioctl) (struct file *, unsigned int, unsigned long);int (*mmap) (struct file *, struct vm_area_struct *);int (*mremap)(struct file *, struct vm_area_struct *);int (*open) (struct inode *, struct file *);int (*flush) (struct file *, fl_owner_t id);int (*release) (struct inode *, struct file *);int (*fsync) (struct file *, loff_t, loff_t, int datasync);int (*aio_fsync) (struct kiocb *, int datasync);int (*fasync) (int, struct file *, int);int (*lock) (struct file *, int, struct file_lock *);ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);int (*check_flags)(int);int (*flock) (struct file *, int, struct file_lock *);
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);int (*setlease)(struct file *, long, struct file_lock **, void **);long (*fallocate)(struct file *file, int mode, loff_t offset,loff_t len);void (*show_fdinfo)(struct seq_file *m, struct file *f);
#ifndef CONFIG_MMUunsigned (*mmap_capabilities)(struct file *);
#endif
};

六、字符设备驱动框架的搭建

七、chrdevbase虚拟设备驱动的完善

http://www.yayakq.cn/news/528563/

相关文章:

  • 自己可以做网站生意好做吗ui设计做网站
  • 制作触屏版网站开发百度网站做pc自适应
  • 2015网站设计风格上海网站建设seo
  • 小猫mip网站建设公司名称大全及最新
  • 局域网站点建设方案网站开发总体设计
  • 新沂建设网站wordpress 友言
  • 安康市城乡建设规划局 网站青岛公司网站建设
  • 哪个网站 可以做快递单录入设计制作小车二教学视频
  • 深圳福田网站建设公司哪家好做细分领域的同城网站
  • 河北省廊坊市建设网站网页设计制作学校网页
  • 成都网站建设的公司哪家好南昌seo网站推广
  • 在本地做的网站怎么修改域名网站制作好学吗
  • 天长市做网站免费视频网站推广软件
  • vue 网站开发五星级酒店网站建设
  • 成都网站建设方案推广贵阳网络推广公司
  • 为什么网站打不开网站备案撤销
  • 美食网站建设总结一键生成原创动漫
  • app和网站趋势遵义市和城乡建设局网站
  • 站长平台网站cms 网站群
  • 做网站推广邢台网站站内关键词优化
  • 广州市外贸网站建设腾讯网qq网站
  • 山东建设监理协会网站无法登录宁波正规站内优化seo
  • 怎么做视频网站教程最新域名解析网站
  • 做网站su杭州清风室内设计学院
  • 老网站绑定新网站如何做怎样做网站和网站的友情链接
  • 医院网站建设的好处seo查询什么意思
  • 吴江区建设局网站打不开wordpress悬浮广告
  • 织梦网站安装视频教程wordpress内页显示副标题
  • 天津网站建设制作品牌公司网新科技集团有限公司
  • 网站做长连接做网站什么框架方便