2440中断编程学习:从MDK到Jlink实战总结

需积分: 3 1 下载量 170 浏览量 更新于2024-09-16 收藏 51KB DOC 举报
"这篇文档是作者关于MDK+Jlink平台进行2440中断编程学习的个人总结,主要介绍了如何在MDK环境下基于TQ2440测试程序进行中断处理的学习和实践过程,适合有一定C语言基础但对中断编程不熟悉的读者参考。文档提到了遇到的问题和解决方法,并分享了对中断初始化文件2440INIT.S的理解。" 在2440中断编程中,中断服务程序的设置和管理是关键。MDK(Keil Microcontroller Development Kit)是一个流行的嵌入式系统开发工具,它支持多种微控制器,包括S3C2440。Jlink则是一款通用的调试器,用于连接和调试目标板上的MCU。 首先,中断处理的难点在于理解中断服务例程的入口地址如何被设置到中断向量表中。在2440INIT.S文件中,可以看到中断向量表的初始化过程,这是一个宏定义,用于将中断服务程序的首地址存储到内存的特定位置。中断向量表包含了处理器能够响应的所有中断类型的处理程序地址,当发生中断时,CPU会跳转到相应的地址执行中断处理代码。 作者提到的"HandlerXXX HANDLER"宏定义,是用于创建中断处理函数的标号,每个标号对应一个中断类型。宏展开后,会为每个中断处理程序保存现场(保存寄存器状态,尤其是LR寄存器,因为中断返回时需要用到),然后将中断处理函数的地址加载到PC寄存器,使得处理器能够执行中断服务程序。 在实际操作中,作者遇到了因基础薄弱导致的困难,比如不熟悉外扩的FLASH和SDRAM,以及如何正确处理中断。通过分析和修改TQ2440的测试程序,最终在MICRO2440开发板上成功运行,并能使用JLink进行调试。 这个学习过程中,作者强调了从已有的、兼容的测试程序出发进行学习的价值,以及在遇到问题时,不断尝试和分析的重要性。对于初学者来说,理解中断服务程序的结构,以及如何在汇编语言层面进行中断初始化,是掌握中断编程的基础。 2440中断编程涉及的知识点包括: 1. 中断向量表的概念和构造。 2. 使用汇编语言进行中断初始化。 3. MDK环境下的中断服务程序编写。 4. JLink调试工具的使用。 5. 现场保护和恢复机制,如保存寄存器状态。 6. 如何从已有的代码中学习和移植中断处理代码。 通过对这些知识点的深入理解和实践,可以提高在MDK+Jlink平台上进行中断编程的能力。