使用IO映射的方式获取tiny4412板子上的ID号
在以前的文章中,有一篇
基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号
#if 0
. io地址:
. 静态映射:
//这个头文件与平台相关,不同平台对应不同的gpio.h,也就是有不同的配置信息
arch/arm/mach-exynos/include/mach/gpio.h
gpio ==> S3C64XX_GPx(n)
EXYNOS4X12_GPM0()
EXYNOS4_GPD0()
int gpio_request(gpio, "name"); 申请;
void gpio_free(gpio); 撤销;
int gpio_direction_output(gpio, dat); 配置为输出, 输出1/0;
int gpio_direction_input(gpio); 配置为输入, 输入1/0;
int s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(con)); 配置为con;
void gpio_set_value(gpio, dat); 输出1/0;
int gpio_get_value(gpio); 输入1/0;
irqnum = gpio_to_irq(gpio); gpio <==> irqnum
MACH_TYPE_TINY4412
/* Initial IO mappings */
static struct map_desc exynos_iodesc[] __initdata = {
{
.virtual = (unsigned long)S5P_VA_CHIPID,
.pfn = __phys_to_pfn(EXYNOS_PA_CHIPID),
.length = SZ_4K,
.type = MT_DEVICE,
},
};
. 动态映射:
virt = ioremap(phys, size); //vmalloc_area
iounmap(virt);
//将虚拟地址转化为32位整型数
ioread32(virt);
iowrite32(val, virt);
//将虚拟地址转化为16位整型数
ioread16();
iowrite16();
//将虚拟地址转化为8位整型数
ioread8();
iowrite8();
#endif
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/atomic.h>
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/kthread.h>
#include <linux/slab.h>
//和IO相关的头文件
#include <linux/io.h>
//板子ID的物理地址 0x10000000 -----> 通过4412的手册查询到
#define CHIP_ID 0x10000000
int test_init(void)
{
int ret;
unsigned int *virt = NULL;
printk("test init\n");
//将CHIP_ID的物理地址映射成虚拟地址,分配4个字节的大小给它
virt = ioremap(CHIP_ID, 4);
//如果映射完成之后,virt指针为空,返回错误码
if(IS_ERR_OR_NULL(virt))
{
ret = -EIO;
goto ERROR_map;
}
//打印虚拟地址
printk("virt = %p\n", virt);
//打印物理地址
printk("CHIP_ID = %x\n", CHIP_ID);
//将虚拟地址转化为32位整型数
printk("*virt = %x\n", ioread32(virt));
//解除地址映射
iounmap(virt);
return 0;
ERROR_map:
return ret;
}
void test_exit(void)
{
printk("test exit\n");
}
module_init(test_init);
module_exit(test_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("yangyx");
MODULE_VERSION("1.1");
使用IO映射的方式获取tiny4412板子上的ID号的更多相关文章
- 织梦dedecms获取当前内容页栏目id号的方法
一,可在内容模板中直接这样写{dede:field.typeid/} 可显示本栏目的id 二,也可这样写 {dede:type}[field:ID /]{/dede:type} . 三, 如果是在{ ...
- 基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号
每个CPU,都有它固定的ID号,ID号就是这个CPU唯一的标识,它可能隐含着CPU的生产日期,版本号,型号等等,那么,在我们的这款友善之臂Tiny4412的板子上,我的这个CPU的ID又是多少呢?从我 ...
- 如何获取板子上独有的ID号EXYNOS4412/Imx6ul【转】
本文转载自:http://blog.csdn.net/u010871058/article/details/75637175 每个CPU,都有它固定的ID号,ID号就是这个CPU唯一的标识,它可能隐含 ...
- springboot整合mybatis(映射文件方式和注解方式)
springboot作为一个微服务框架,给我们开发人员提供极大的便利,秉着约定大于配置的原则,通过starter包的形式为我们做了许多默认的配置,在进行数据持久化到关系型数据库时,我们一般都会首选sp ...
- 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法
spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...
- linux驱动之中断方式获取键值
linux驱动之中断方式获取键值 ----------------------------------------------------------------------------------- ...
- 基于uFUN开发板的心率计(一)DMA方式获取传感器数据
前言 从3月8号收到板子,到今天算起来,uFUN到手也有两周的时间了,最近利用下班后的时间,做了个心率计,从单片机程序到上位机开发,到现在为止完成的差不多了,实现很简单,uFUN开发板外加一个Puls ...
- java 利用HttpURLConnection方式获取restful格式的服务数据
/** * @Author: * @Description:利用HttpURLConnection方式获取restful格式的服务数据 * @Date: */ private static List& ...
- 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案
1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...
随机推荐
- 自制Linux 终端 锁屏防窃助手
很多时候我们不能一直守护在自己的电脑旁边,而且有些文件并不想让别人知道.那么这时候来个锁屏,是再合适不过的了.今天分享一个自制的锁屏工具,如下. 准备 操作系统 : 我这里是ElementaryOS虚 ...
- JAVA面向对象-----super关键字
JAVA面向对象-–super关键字 1:定义Father(父类)类 1:成员变量int x=1; 2:构造方法无参的和有参的,有输出语句 2:定义Son类extends Father类 1:成员变量 ...
- 无网络环境下安装Dynamics CRM
在安装CRM时会需要很多的组件支持,没有这些组件是没法安装的,一般我们都是选择机器联网后在线安装,但也有特殊情况确实不能联网的,可参考这篇文章 https://blogs.msdn.microsoft ...
- 指令汇C电子市场开发(一) ActionBar的使用
前话: 在学习开发谷歌电子市场的的时候,我换了一款比较高大上的模拟器--genymotion,首先去genymotion的官网注册下载,然后安装.感觉这款模拟器运行挺快的,哈哈,而且可以直接把应用拖进 ...
- 17 一个ContentProvider的例子
服务端(ContentProvider) 目录结构图: MainActivity.java: package com.qf.day17_contentprovider_words_demo2; imp ...
- 剑指Offer——贪心算法
剑指Offer--贪心算法 一.基本概念 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解.虽然贪心算法不能对 ...
- iOS开发之三:常用控件--UILabel的使用
UILabel 一般用来显示文本内容. 常用的属性如下: @property(nonatomic,copy) NSString *text; // 文本的内容,默认为 nil @property(no ...
- Android学习之Animation(三)
今天观看了一个关于android动画的一些知识,就顺便记录下来,以备之后的学习和参考. 在XML文件中使用LayoutAnimationController 第一步: 在res/anim文件夹下创建一 ...
- web多语言url的设计
因为项目要支持国际化,最近跟一个同事在讨论多语言版本下面url如何设计,假如我们需要支持en和cn的版本. 他倾向于支持如下的url格式,后续以格式1指代: /en/group/abc.html /c ...
- 挖掘频繁项集之FP-Growth算法
http://blog.csdn.net/pipisorry/article/details/48918007 FP-Growth频繁项集挖掘算法(Frequent-Pattern Growth, 频 ...