查看: 14373|回复: 1

[Linux] 驱动代码求解啊!版主

11

主题

27

回帖

97

积分

港式茶餐厅 发表于 2013-9-27 22:14:09 | 显示全部楼层 |阅读模式
6410A的飞凌led驱动代码中的GPMDAT是这样写代码的:
tmp = _raw_readl(S3C64XX_GPMDAT);
    tmp |= 0x10;               
    writel(tmp,S3C64XX_GPMDAT)

我看了6410手册,GPMDAT寄存器是未定义的,我觉得直接赋值就可以了,可飞凌的为什么把这个寄存器的值读出来,与后再写回寄存器?它是没有定义就应该没有值得 啊。读出来的值是多少呢?还有这个_raw_readl(),与readl()这两个函数有什么区别啊?
回复

使用道具 举报

110

主题

264

回帖

2988

积分

A40i\T3\T507\T527通行证

admin 发表于 2013-9-28 08:37:39 | 显示全部楼层
你的问题,我无法解答,寄存器的值需要自己添加printk函数来打印出来看看,其他两个函数你可以百度你下,网上有很多关于这种函数的解释,或者你可以看这个函数的原先代码
点评回复 支持 反对

使用道具 举报

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

本版积分规则