完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
现在我发现在从claim/complete 寄存器读出中断号后对应的pending位已经为0(正常),但将处理完成的中断号写入claim/complete 寄存器后对应中断的pending位会立刻变为1,随后PLIC发出外中断,进入了下一轮中断处理程序,虽然在这之中,外中断源并未真正发出中断信号。 我主要测试了UART与RTC,在QEMU中一切正常,使用D1所对应的驱动在D1上跑则会出如上问题。另:此系统为裸机程序,没有使用任何其他内核 代码链接如下: plic.c plic.h sunxi-rtc.c rtc.h trap.c 另:我发现D1的user manual中关于PLIC的部分寄存器位描述有许多错误,且和C906的文档不一致,倒是和F133的一致,不知是不是全志的小编抄错了我就知道 硬件肯定没有问题
|
|
|
|
破案了,alarm0_irq_sta_reg=0不行,要用alarm0_irq_sta_reg=1,alarm0_irq_sta_reg寄存器是W1C,一开始不知道这是啥意思,以为是可写,去查了一下才知道是写1来清零。 问题解决了一个,但是又有一个来了,alarm不按设定的时间发生中断,总是要晚一秒 这个问题也解决了,看起来是因为rtc是在从x秒跳到x+1秒的那一刹那才会触发设置在x秒的闹钟 |
|
|
|
只有小组成员才能发言,加入小组>>
660 浏览 0 评论
2722 浏览 0 评论
为了学习内核开发,大佬手搓了一个轻量级操作系统YiYiYa OS
2665 浏览 0 评论
1252 浏览 0 评论
1396 浏览 0 评论
【开源硬件大赛】基于全志V853设计的全功能BTB学习开发板
3433浏览 8评论
3087浏览 5评论
1860浏览 4评论
全志V85x硬件设计大赛作品精选第二期,快来Pick你心目中的最佳方案
88027浏览 3评论
3596浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-14 17:33 , Processed in 0.580890 second(s), Total 50, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号