嵌入式实验
五.实验步骤
(1) 启动ADS 1.2,使用ARM Executable Image for DeviceARM2410工程模板建立一个工程EINT。
(2) 在工程src组中的main.c中编写实验代码。
(3) 选用DebugRel生成目标,然后编译链接工程。
(4) 将MagicARM2410实验箱上的启动方式选择跳线JP8短接,然后按RST键复位系统。
(5) 选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。 (6) 在中断服务程序中设置断点,全速运行程序,按下/释放KEY1按键,使EINT4为低/高电平(产生中断)。
(7) 取消中断服务程序中有断点,全速运行程序,按下/释放KEY1按键,观察LED1灯的变化。
六.实验参考程序(略)
七.实验现象
通过中断程序设置可以控制LED灯的亮灭。按下/释放KEY1按键,使EINT4为低/高电平(产生中断) ,按下/释放KEY1按键,LED1灯的灭了 八.思考题:
EINT4与EINT0的中断设置和中断标志清除有什么异同?
答: 对于外部中断EINT0,它在S3C2410A的中断控制器中是独立中断源,为了使中断控制器能够接收中断请求,只需在在启动代码中将PSR的F位或I位设置为0,同时将中断屏蔽寄存器(INTMASK)中的相应位设置为0;但对于外部中断EINT4,由于它在S3C2410A的中断控制器中不是独立中断源(EINT4~EINT7共用一个中断源),满足上述设置外还需要设置EINTMASK寄存器来使能某一个外部中断(这里是EINT4)。
而在中断标志清除中,二者都要在退出中断之前要清除中断标志,即对SRCPND和INTPND寄存器相应位写1,先清除SRCPND寄存器,再清除INTPND寄存器。对于外部中断EINT4中断,要最先清除EINTPEND寄存器中的中断标志。