Chinaunix首页 | 论坛 | 博客
  • 博客访问: 254936
  • 博文数量: 37
  • 博客积分: 480
  • 博客等级: 下士
  • 技术积分: 443
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-13 12:36
文章分类
文章存档

2013年(8)

2012年(29)

分类: 嵌入式

2013-06-30 22:18:25

拿到2440单板,首先把串口调通了,但是在调中断的时候一直有问题,主要是串口中断。不过最后还是调通了。下面是一些经验还有调试中遇到的问题,懂得其中的道理,2440其他中断都可调通
1、keil的__irq声明的作用
    使用__irq声明后,编译器生成的代码首先保证R0-R3,R14至堆栈空间,在返回的时候使用subs pc,r14,#4完成返回值原程序运行处
    subs的后缀s,表示完成计算后恢复spsr寄存器至cpsr,恢复普通模式,与LDMIA 的^后缀有着相同的效果。

2、清除中断顺序问题
    依次为SUBSRCPND->SRCPND->INTPND


3、不使用__irq声明的中断函数,一定要保证STM与LDM 的栈增长方式向对应   

阅读(1995) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~