主题 : 求教:怎么读取2440一些功能寄存器的值,比如rCLKDIVN,rWTCNT 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 11101
精华: 0
发帖: 35
金钱: 205 两
威望: 59 点
综合积分: 70 分
注册时间: 2009-11-27
最后登录: 2018-02-08
楼主  发表于: 2010-01-06 15:42

 求教:怎么读取2440一些功能寄存器的值,比如rCLKDIVN,rWTCNT

谢谢大家帮忙!
我在pc机上写的程序,下载到2440开发板上报错:Segmentation fault.
源代码如下:
#include"2440addr.h"
#include"option.h"
#include<stdio.h>

void main(void)
{
    printf("%d",rCLKDIVN);
}
[ 此帖被smilemaomi在2010-01-06 20:03重新编辑 ]
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2010-01-06 17:27
把程序源代码贴出来,顺便把出错的地方也标出来
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 11101
精华: 0
发帖: 35
金钱: 205 两
威望: 59 点
综合积分: 70 分
注册时间: 2009-11-27
最后登录: 2018-02-08
2楼  发表于: 2010-01-08 15:15
是不是问题太弱了。。。怎么没人解答啊
希望这个问题能早点解决,谢谢了啊,大家帮帮忙啊
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2010-01-08 16:27
开发板上的Linux运行时开启了MMU,CPU所能接受的是虚拟地址。代码中所有#define r寄存器 (unsigned int *)(0x寄存器物理地址)这样的用法都是不能直接使用的。
事实上,在Linux这样的OS环境下,用户空间的程序很少会直接access寄存器这种东西,那是内核空间的设备驱动应该做的事情。设备驱动在访问寄存器的时候也通过虚拟地址经过MMU映射到物理地址的。
关于虚拟地址和物理地址的概念,参考"Linux设备驱动第三版"相关部分
http://www.aiothome.net/read.php?tid-1859.html
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 11101
精华: 0
发帖: 35
金钱: 205 两
威望: 59 点
综合积分: 70 分
注册时间: 2009-11-27
最后登录: 2018-02-08
4楼  发表于: 2010-01-08 16:51
引用第3楼kasim于2010-01-08 16:27发表的  :
开发板上的Linux运行时开启了MMU,CPU所能接受的是虚拟地址。代码中所有#define r寄存器 (unsigned int *)(0x寄存器物理地址)这样的用法都是不能直接使用的。
事实上,在Linux这样的OS环境下,用户空间的程序很少会直接access寄存器这种东西,那是内核空间的设备驱动应该做的事情。设备驱动在访问寄存器的时候也通过虚拟地址经过MMU映射到物理地址的。
关于虚拟地址和物理地址的概念,参考"Linux设备驱动第三版"相关部分
http://www.aiothome.net/read.php?tid-1859.html

谢谢,虽然不是很明白。我用程序测试一下