查看: 1845|回复: 3

[其他] PowerPC8309som 读写寄存器值的问题。

[复制链接]

该用户从未签到

9

主题

19

帖子

0

注册会员

Rank: 2

积分
77
最后登录
1970-1-1
发表于 2014-11-14 10:03:19 | 显示全部楼层 |阅读模式
想读取一下开发板I/O配置寄存器的值(SICR 1),该寄存器主要配置I/O引脚复用的。但是读取出来的值和预设的值不一样,那里有问题呢?谢谢大家。
代码如下:

unsigned long phy_add = 0xE0000000 + 0x114;
if (!request_mem_region(phy_add, 0x32, "hell")) {
    printk(KERN_ALERT "mem failed\n");
    return -1;
}
unsigned long virt_add =(ulong) ioremap( phy_add, 0x32 );

printk(KERN_ALERT "value: %lx\n",*(unsigned long*)(virt_add));
iounmap((void __iomem*)virt_add);
我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

9

主题

19

帖子

0

注册会员

Rank: 2

积分
77
最后登录
1970-1-1
 楼主| 发表于 2014-11-17 09:47:01 | 显示全部楼层
0xE0000000 是IMMR的基地址,0x114是SICR 1寄存器的偏移。
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

15

帖子

0

注册会员

Rank: 2

积分
57
最后登录
1970-1-1
发表于 2014-11-18 11:19:18 | 显示全部楼层
IMMR基地址正确吗?
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

19

帖子

0

注册会员

Rank: 2

积分
77
最后登录
1970-1-1
 楼主| 发表于 2014-11-19 09:40:34 | 显示全部楼层
使用硬件仿真看了下数据,这种读取方法是对的。本来上电时SICR 1寄存器的值是0x0000000A,在MMU之后就被修改为0x00280000,这种读写寄存器是对的,只是有地方修改了这个寄存器,不知道在那里修改的。谢谢大家。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-12 05:33 , Processed in 0.091391 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表