linux驱动学习笔记4
来源:互联网 发布:换发型软件 编辑:程序博客网 时间:2024/05/21 06:33
LED驱动
1.框架
2.完善硬件驱动:
a.看原理图
b.看2440手册
c.写代码:映射虚拟地址
3.ioremap
void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)void *ioremap(unsigned long phys_addr, unsigned long size)
入口: phys_addr:要映射的起始的IO地址;
size:要映射的空间的大小;
flags:要映射的IO空间的和权限有关的标志;
phys_addr:是要映射的物理地址,
size:是要映射的长度.
4.ioummap(*gpfcon)
5.Copy_to_user( to, &from, sizeof(from))
To:用户空间函数 (可以是数组)
From:内核空间函数(可以是数组)
sizeof(from):内核空间要传递的数组的长度
6.Copy_from_user(&from , to , sizeof(to) )
To:用户空间函数 (可以是数组)
From:内核空间函数(可以是数组)
sizeof(from):内核空间要传递的数组的长度
成功返回0,
失败返回失败数目。
7.运算符优先级:
各种运算符的优先级,至今我都没有记住,也没有打算去记这些繁琐的东西
那么我是怎么解决运算符的优先级问题的呢?
a.让表达式尽量简单,这样在同一个表达式中的运算符就比较少了,我只需要记住小学时候学习的乘除高于加减,基本上就不会遇到运算符的优先级的问题了
b.使用括号明确地表达运算顺序,不依赖于运算符的默认优先级,如果需要调整运算顺序,用括号明确表达。比如,!a&&b,我就不知道到底是先计算!还是先计算&&,但是有了括号,我想让他先先计算!就先计算!——(!a)&&b,想让他先计算&&就先计算&&——!(a&&b),根本用不着去记那些让人头疼的运算符优先级
呃,至少,位运算(bitwise operator)一定要条件反射般加上括号
- linux驱动学习笔记4
- Linux 驱动学习笔记
- linux驱动学习笔记
- Linux驱动学习笔记之触摸屏驱动
- Linux驱动学习笔记之触摸屏驱动
- Linux驱动学习笔记之触摸屏驱动
- Linux驱动学习笔记;字符设备驱动
- Linux驱动学习笔记之触摸屏驱动
- Linux驱动学习笔记----------触摸屏驱动
- Linux驱动开发学习笔记
- Linux驱动开发学习笔记
- Linux网络设备驱动学习笔记(-)
- Linux设备驱动学习笔记
- Linux设备驱动学习笔记
- linux驱动学习笔记1
- linux I2C驱动学习笔记
- Linux设备驱动学习笔记
- linux设备驱动学习笔记
- iOS XMPP研究探索:添加好友
- windows下ffmpeg+eclipse编译
- javascript的16进制字符串还原
- 终于开通博客
- 关于WLAN抓取的是以太网帧的问题
- linux驱动学习笔记4
- 四种途径将HTML5 web应用变成android应用
- Angularjs路由
- 孔浩老师SpringMVC视频总结
- 清空iOS应用程序缓存
- 我的365之1
- 欢迎使用CSDN-markdown编辑器
- Android省电开发 浅析
- github使用总结