获取硬件资源
来源:互联网 发布:生猪体重简易计算法 编辑:程序博客网 时间:2024/04/27 14:34
0> 环境:
硬件:Tiny4412
软件:linux-3.5内核源码包
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1> 将物理地址动态映射---- > 虚拟地址:
_ _arm_ioremap(unsigned long phys_addr, // 物理起始地址
size_t size, //映射虚拟空间大小,以字节为单位
unsigned int mtype //映射空间权限
);
/linux-3.5/include/asm-generic/sizes.h 中定义了size_t 宏值:
例:#define SZ_1 0x00000001
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
使用:以led为例:
#define GPM4BASE 0x11000000
#define GPM4CON 0x02e0
#define GPM4DAT 0x02e4
unsigned longvir = ioremap(GPM4BASE, SZ_4K); //调用到_ _arm_ioremap( );
tmp = ioread32(vir+GPM4CON); //读数据
iowrite32(tmp, vir+GPM4CON); //写数据
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2> 静态映射:struct map_desc
待解决??????
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3> gpio:参考/linux-3.5/Documentation/gpio.txt
1》/linux-3.5/arch/arm/mach-exynos/include/mach/gpio.h 为Exynos4412的GPIO编了号:
int led1_n = EXYNOS4X12_GPM4(0); //得到编号
2》gpio_is_valid(int number); //判断gpio编号是否合法
3》 gpio_request(led1_n, "led1"); //注册GPIO编号
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
使用:
int gpio_direction_input(unsigned gpio); //设为输入功能
int gpio_direction_output(unsigned gpio, int value); //设为输出功能,并写入值。
int gpio_get_value(unsigned gpio); //读值
void gpio_set_value(unsigned gpio, int value) ; //写值
note:
void gpio_free(unsigned gpio) ; //用完必须释放GPIO资源
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4> 获得中断资源:以key1为例:
1》 int key1_n = EXYNOS4_GPX3(2); //获得GPIO编号
2》 gpio_to_irq(key1_n); //将GPIO号转换为中断号
3》request_irq( ); //注册中断
4》free_irq( ); //释放中断资源
- c#获取硬件资源
- 获取硬件资源
- 获取主机硬件资源 函数
- 第七篇 硬件内存资源的获取,解析
- 获取硬件
- 木牛流马PLC 硬件资源
- s5pv210 cpu硬件资源
- 开源硬件资源
- 查看Windows硬件资源分配
- 裸奔 TQ2440 硬件资源分析
- 学习好资源 ---- 硬件基础
- MySQL硬件资源利用特点
- Jstorm 调度硬件资源cgroups
- 获取硬件信息
- 获取硬件的ID
- 获取硬件信息
- C#获取硬件信息
- C#获取硬件信息
- 研究HttpClient的使用(黏贴复制的,仅作学习记录)
- 日经社説 20150618 安保法案の修正協議をためらうな
- Android 代码性能优化小技巧
- 期末实验单下载
- 升级到OpenCms 9.5.1后原来的xmlpage类型文档不能操作解决
- 获取硬件资源
- 社説 20150618 党首討論 岡田氏は米艦防護を拒むのか
- 报错 No resource identifier found for attribute '****' in package '***.***'解决办法
- c++ builder 拖控件到GroupBox和PageControl上面,控件不见了。
- 角色编程与设计模式
- 社説 20150618 18歳選挙権 若者の政治参加を促進したい
- 在Ubuntu Scope的模版中利用attributes来显示额外的信息
- SVN老是清理失败,显示清理乱码
- linux ddns client ddclient