还是关于RTC的 平台资源的问题~
static struct resource s3c_rtc_resource[] = {
[0] = {
.start = S3C2410_PA_RTC, //IO设备的物理地址
.end = S3C2410_PA_RTC + 0xff,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_RTC,
.end = IRQ_RTC,
.flags = IORESOURCE_IRQ,
},
[2] = {
.start = IRQ_TICK,
.end = IRQ_TICK,
.flags = IORESOURCE_IRQ
}
};
struct resource *platform_get_resource(struct platform_device *dev, unsigned int type,
unsigned int num)
{
int i;
for (i = 0; i < dev->num_resources; i++) { //num_resource 的个数
struct resource *r = &dev->resource[ i ]; //resource[ i ]应该s3c2410_rtc_resource是通过下标来对resource赋值
if ((r->flags & (IORESOURCE_IO|IORESOURCE_MEM|
IORESOURCE_IRQ|IORESOURCE_DMA))
== type)
if (num-- == 0)//控制循环
return r;
}
return NULL;
}
set_irq()传入了个type.
擦了我提的现在挺让我含羞的问题,得到的指导及结果从新编辑回本页了,所有结果都在本页了,感谢rock1972!
[ 本帖最后由 jn200002 于 2008-6-12 17:45 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
>>>上述两个是中断号,初始为-1
你咋知道的是-1?
2410平台的所有中断号都在/include/asm-arm/arch-s3c2410/irqs.h定义,你看了没有?
platform_get_irq(pdev, 0); 表示返回于第一次找到的irq,对应RQ_RTC
platform_get_irq(pdev, 1); 表示返回于第二次次找到的irq,对应IRQ_TICK
擦无用信息,所有结果在首页
[ 本帖最后由 jn200002 于 2008-6-12 17:42 编辑 ]
擦!无用信息,结果在首发.
[ 本帖最后由 jn200002 于 2008-6-12 17:39 编辑 ]
>>>static int s3c2410_rtc_alarmno = NO_IRQ;
static int s3c2410_rtc_tickno = NO_IRQ;
这时变量定义时候初始化的,跟s3c2410_rtc_tickno = platform_get_irq(pdev, 1);有直接关系吗?
不知道你要问什么问题。。。。。。。。。。。
擦无用信息,得到的提示,结果都在第1页了.
[ 本帖最后由 jn200002 于 2008-6-12 17:40 编辑 ]
明白了.....在get_irq()里加了个type...... 1, 0 是控制循环 取中断地址.........
倒... 把get_irq给漏了.............
多谢!
看来我还是能把问题解释清楚的嘛,
啊哈,多谢~!