使用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注解,然后, ...
随机推荐
- 一个maven项目打多个可执行Jar文件
使用maven-jar-plugin插件可以将一个maven项目按照需求打出多个可执行的jar文件. pom关键配置如下所示: <plugin> <groupId>org.ap ...
- 【Android 系统开发】使用 Source InSight 阅读 Android 源码
1. 安装 Source Insight (1) Source Insight 相关资源 安装相关资源 : -- 下载地址 : http://www.sourceinsight.com/down35. ...
- 3.关于QT中的MainWindow窗口,MenuBar,ToolBar,QuickTip等方面的知识点
1 新建一个空Qt项目 编写12MainWindow.pro HEADERS += \ MyMainWindow.h \ MyView.h SOURCES += \ MyMainWindow.c ...
- linux下查看Memcached运行状态
查看Memcached运行状态的命令是:echo stats | nc 127.0.0.1 11211 查看memcached状态的基本命令,通过这个命令可以看到如下信息: STAT pid 2245 ...
- android sdutio常用快捷键
快捷键 说明 F2 定位到高亮错误或警告的位置 F4 若选中项目,打开 Project Struture F5 复制文件 Alt+F3 选中文本,逐个往下查找相同文本,并高亮显示 Alt+F1 可以将 ...
- LiveBlox无需代码的开发工具--支持win macos ubuntu等开发环境--
LiveBlox无需代码的开发工具-支持windows macos ubuntu. 强大 灵活 易于使用 视频简介:LiveBlox Develop Technology Without Coding ...
- [GitHub]第六讲:开源项目贡献流程
Github 是目前世界上最大的开源项目的托管交流平台.贡献开源项目的流程也是 Github 全力支持的,也一样是遵循 Github Flow,虽然跟前面团队合作流程会有一点差别.在团队内部,大家都是 ...
- 今日成为CSDN认证专家
认证时写的申请材料: 程序猿一枚毕业于南开工作于上海.喜欢读书,喜欢跑步,激情似火,心静如水. 喜欢编程,喜欢寻根问底各种技术,喜欢在各种新技术中汲取营养. 喜欢分享,因此以一些高质量的博文来回报各位 ...
- Mybatis接口编程原理分析(二)
在上一篇博客中 Mybatis接口编程原理分析(一)中我们介绍了MapperProxyFactory和MapperProxy,接下来我们要介绍的是MapperMethod MapperMethod:它 ...
- 如何让你的web具备权限认证
大多数Web系统都有权限需求,前面已经了解了它的整个认证过程的原理,这节将讲述如何在Tomcat中配置web资源的权限.先以Tomcat默认的认证模式Basic和默认的域UserDatabaseRea ...