4301|7

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

寄存器如何正确映射到虚拟内存里? [复制链接]

我写了一个读写iic的程序.对寄存器进行操作的时候出错了.
程序头
#define rGPECON    (*(volatile unsigned *)0x56000040) //Port E control
#define rGPEDAT    (*(volatile unsigned *)0x56000044) //Port E data
#define rGPEUP     (*(volatile unsigned *)0x56000048) //Pull-up control E
程序中
save_E   = rGPECON;
对rGPECON进行操作就出错.   

最新回复

等待牛人来答.  详情 回复 发表于 2008-4-30 23:40
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
部分内容如下
#include /*标准输入输出定义*/
#include /*标准函数库定义*/
#include /*Unix 标准函数定义*/
//====================================================================

// File Name : 2410IIC.c

// Function  : S3C2410 IIC-bus Master Tx/Rx mode Test Program

//             (Interrupt / Non Interrupt (Polling))

// Program   : Shin, On Pil (SOP)

// Date      : May 21, 2002

// Version   : 0.0

// History

//   0.0 : Programming start (March 11, 2002) -> SOP

//====================================================================

#define U32 unsigned int

#define U16 unsigned short

#define S32 int

#define S16 short int

#define U8  unsigned char

#define         S8  char



#define TRUE         1   

#define FALSE         0


#define WRDATA      (1)

#define POLLACK     (2)

#define RDDATA      (3)

#define SETRDADDR   (4)



#define IICBUFSIZE 0x20
#define FCLK 202800000

#define HCLK (202800000/2)

#define PCLK (202800000/4)

#define UCLK PCLK
// IIC

#define rIICCON  (*(volatile unsigned *)0x54000000) //IIC control

#define rIICSTAT (*(volatile unsigned *)0x54000004) //IIC status

#define rIICADD  (*(volatile unsigned *)0x54000008) //IIC address

#define rIICDS   (*(volatile unsigned *)0x5400000c) //IIC data shift

#define rGPECON    (*(volatile unsigned *)0x56000040) //Port E control

#define rGPEDAT    (*(volatile unsigned *)0x56000044) //Port E data

#define rGPEUP     (*(volatile unsigned *)0x56000048) //Pull-up control E
// WATCH DOG TIMER

#define rWTCON   (*(volatile unsigned *)0x53000000) //Watch-dog timer mode

#define rWTDAT   (*(volatile unsigned *)0x53000004) //Watch-dog timer data

#define rWTCNT   (*(volatile unsigned *)0x53000008) //Eatch-dog timer count



void Delay(int time);

void Test_Iic2(void);

  

void _Wr24C080(U32 slvAddr,U32 addr,U8 data);   

void _Rd24C080(U32 slvAddr,U32 addr,U8 *data);  





void IicPoll(void);

void Run_IicPoll(void);







static U8 _iicData[IICBUFSIZE];

static volatile int _iicDataCount;

static volatile int _iicStatus;

static volatile int _iicMode;

static int _iicPt;

static int delayLoopCount = FCLK/10000/10;



//===================================================================

//       SMDK2410 IIC configuration

//  GPE15=IICSDA, GPE14=IICSCL

//  "Non-Interrupt" mode for IIC block

//===================================================================



//*********************[ Test_Iic2 ]*********************************

void Test_Iic2(void)

{

    unsigned int i,j,save_E,save_PE;

    static U8 data[256];

   

    printf("[ IIC Test(Polling) using KS24C080 ]\n");



    save_E   = rGPECON;

    save_PE  = rGPEUP;



    rGPEUP  |= 0xc000;                  //Pull-up disable

    rGPECON |= 0xa00000;                //GPE15:IICSDA , GPE14:IICSCL   



      //Enable ACK, Prescaler IICCLK=PCLK/16, Enable interrupt, Transmit clock value Tx clock=IICCLK/16

    rIICCON  = (1<<7) | (0<<6) | (1<<5) | (0xf);



   // rIICADD  = 0x10;                    //2410 slave address = [7:1]

    rIICSTAT = 0x10;                    //IIC bus data output enable(Rx/Tx)



    printf("Write test data into KS24C080\n");



    for(i=0;i<256;i++)

        _Wr24C080(0xa0,(U8)i,255-i);

    for(i=0;i<256;i++)

        data = 0;



    printf("Read test data from KS24C080\n");

    for(i=0;i<256;i++)

        _Rd24C080(0xa0,(U8)i,&(data));



    for(i=0;i<16;i++)

    {

        for(j=0;j<16;j++)

            printf("%2x ",data[i*16+j]);

        printf("\n");

    }

   

    rGPEUP  = save_PE;

    rGPECON = save_E;

}

救救我吧

 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
什么单片机都没说清楚,。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
怎么帮啊???
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
arm 2410单片机。不知道是硬件问题还是软件问题。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 
save_E 未定义
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 fycom200 的回复:
save_E 未定义

编译通不过吗?
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

7
 
这一版块,太没人气了,是不是大家都成大侠了

如果成大侠了,也常回家看看嘛,家里太冷清了

据说努力顶帖也是一种美德,但我只想大家常回家看看

毕竟每天都有新手需要帮忙,而我能帮的只能是把帖子顶起来
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

8
 
等待牛人来答.
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表