打印

帮我看看这段c语言,怎么理解,谢谢

[复制链接]
2084|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
isbit|  楼主 | 2007-10-3 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define  GPIO_ADAT                   0xB01C0000 + 0x00000008

//-----------------------------------------------
static inline INT32U act_readl(unsigned long port)
{
    return (*(volatile INT32U *)port);
}
//-----------------------------------------------
void static inline act_writel(unsigned long val, int reg)
{
    *(volatile unsigned long *)(reg) = val;
}
//-----------------------------------------------
act_writel(act_readl(GPIO_ADAT) | 0X1<<16, GPIO_ADAT);

相关帖子

沙发
ddb_21ic| | 2007-10-3 12:39 | 只看该作者

不就是个RAM空间的读写么?

看样子是把IO操作映射到存储空间里面了,是ARM的?

使用特权

评论回复
板凳
icecut| | 2007-10-3 12:49 | 只看该作者

把第16位置一吧

把第16位置一吧

使用特权

评论回复
地板
isbit|  楼主 | 2007-10-3 13:54 | 只看该作者

hehe

  1:ddb_21ic 算MIPS吧。
  2:icecut 对,gpio16 置一的操作,帮我分析一下这个写法好吗。

使用特权

评论回复
5
computer00| | 2007-10-3 14:34 | 只看该作者

re

#define  GPIO_ADAT                   0xB01C0000 + 0x00000008  //定义GPIOA DAT的地址

//-----------------------------------------------
static inline INT32U act_readl(unsigned long port)
{
    return (*(volatile INT32U *)port);  //将port强制转换为INT32U型的指针,然后访问该指针的值,并返回
}
//-----------------------------------------------
void static inline act_writel(unsigned long val, int reg)
{
    *(volatile unsigned long *)(reg) = val;  //将reg强制转换为unsigned long型的指针,然后将val按照unsigned long的格式写入该地址
}
//-----------------------------------------------
act_writel(act_readl(GPIO_ADAT) | 0X1<<16, GPIO_ADAT);  //调用前面的函数,先将值读回,再跟(0x1<<16)相或,再写回。

使用特权

评论回复
6
isbit|  楼主 | 2007-10-8 17:42 | 只看该作者

谢谢,oo 明白了

使用特权

评论回复
7
wtfshxkj| | 2007-10-8 17:59 | 只看该作者

谨受教

三人行,必有我师焉。

使用特权

评论回复
8
eraychen| | 2007-10-9 23:05 | 只看该作者

re:

代码的目的就是00说的那样,但我认为定义宏的时候最好加上括号,尤其是表达式
#define  GPIO_ADAT        (0xB01C0000 + 0x00000008)
如果不加括号的话,在2* GPIO_ADAT这个表达式时会得不到自己要得结果。

使用特权

评论回复
9
computer00| | 2007-10-9 23:09 | 只看该作者

恩,宏定义时要特别注意这个. 它是直接替换的。

使用特权

评论回复
10
fsaok| | 2007-10-10 06:32 | 只看该作者

.

1 左移 16 次

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

194

主题

959

帖子

1

粉丝