主题 : tiny6410裸机串口中断问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 72728
精华: 0
发帖: 15
金钱: 75 两
威望: 15 点
贡献值: 0 点
综合积分: 30 分
注册时间: 2012-06-27
最后登录: 2017-09-13
楼主  发表于: 2012-07-25 19:26

 tiny6410裸机串口中断问题

我写了一个串口1的裸机中断程序,但是一直进不去中断函数里面。。。在网上找了很多资料,但还是没办法解决。。。

启动代码里打开VIC
            mrc p15,0,r0,c1,c0,0
        orr r0,r0,#(1<<24)
        mcr p15,0,r0,c1,c0,0

打开irq中断功能(这是我自己加的)
        mrs r0,cpsr
        bic r0,#(1<<7)
        msr cpsr_c,r0

开始调试,用串口1发送1个数据后,在rvds2.2里查看内存值,发现VIC0ADDRESS和VIC1ADDRESS均为自定义的中断函数地址,但是就是跳不进去啊。。。相关寄存器也没错,如:VIC1INTENABLE,VIC1INTSELECT,VIC1IRQSTATUS这些内存地址里关于串口1的设置值都没有错。。。求指教啊。。。

以下是我的代码。。。 INTR.rar (77 K) 下载次数:29
级别: 新手上路
UID: 70205
精华: 1
发帖: 18
金钱: 140 两
威望: 28 点
贡献值: 1 点
综合积分: 56 分
注册时间: 2012-05-16
最后登录: 2017-09-13
1楼  发表于: 2012-07-25 19:38
初始化用户和irq堆栈空间
级别: 新手上路
UID: 72728
精华: 0
发帖: 15
金钱: 75 两
威望: 15 点
贡献值: 0 点
综合积分: 30 分
注册时间: 2012-06-27
最后登录: 2017-09-13
2楼  发表于: 2012-07-25 20:33

 回 1楼(diandianzd) 的帖子

我代码是在uboot里运行的,堆栈什么的不是已经初始化好了吗??
级别: 新手上路
UID: 72728
精华: 0
发帖: 15
金钱: 75 两
威望: 15 点
贡献值: 0 点
综合积分: 30 分
注册时间: 2012-06-27
最后登录: 2017-09-13
3楼  发表于: 2012-07-26 09:43
都木有人帮忙吗。。。。。。。           
级别: 新手上路
UID: 72728
精华: 0
发帖: 15
金钱: 75 两
威望: 15 点
贡献值: 0 点
综合积分: 30 分
注册时间: 2012-06-27
最后登录: 2017-09-13
4楼  发表于: 2012-07-26 19:28
解决了,确实是堆栈的问题。。。。
在这里感谢diandianzd的帖子http://www.aiothome.net/read.php?tid=21672&page=1#187937
看了代码以后才知道的。。。弄了好久,不过终于弄出来了
级别: 新手上路
UID: 80346
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2012-10-23
最后登录: 2012-10-28
5楼  发表于: 2012-10-23 17:05
我碰到问题了,6410裸板代码,采用中断接收。问题是只能进一次中断接收函数,我怀疑是不是没有清楚中断,打个能把你的代码发给我看看吗
级别: 新手上路
UID: 70454
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
贡献值: 0 点
综合积分: 10 分
注册时间: 2012-05-20
最后登录: 2015-03-11
6楼  发表于: 2015-02-28 14:59

 回 5楼(wgyhl2010) 的帖子

哈 我也是,请问 您解决了没有? 分享下????