文档详情

ARM嵌入式系统结构与编程:第9章 S3C44B0_2410硬件结构与关键技术分析.ppt

发布:2025-03-24约6.8千字共68页下载文档
文本预览下载声明

9.5.3通用I/O接口设计实例控制编程要求:根据LED的硬件电路图,编程实现LED的循环闪烁:{LED1亮延时,LED4灭}-{LED2亮延时,LED1灭}-{LED3亮延时,LED2灭}-{LED4亮延时,LED3灭}-{蜂鸣器开延时,蜂鸣器关},如此无限循环,实现LED霓虹灯式的循环闪烁。9.5.3通用I/O接口设计实例端口配置:#definerPCONA(*(volatileunsigned*)0x1d20000)#definerPDATA(*(volatileunsigned*)0x1d20004)#definerPCONE(*(volatileunsigned*)0x1d20028)#definerPDATE(*(volatileunsigned*)0x1d2002c)rPCONA=rPCONA0xFFFFFFF0;rPCONE=rPCONE0xFFFFFFFD;rPCONE=rPCONE|0x01;9.5.3通用I/O接口设计实例延时函数:voidDelay(inttime){ unsignedinti; for(i=0;itime;i++);}LED1控制函数:voidLED1_Delay(charx){ if(x==1) rPDATA=rPDATA0xFFFFFFFE; elseif(x==0) rPDATA=rPDATA|0x01; Delay(500);}9.5.3通用I/O接口设计实例主函数:voidMain(){ while(1) { LED1_Delay(1); LED4_Delay(0); LED2_Delay(1); LED1_Delay(0); …… Beep_Delay(1); Beep_Delay(0); }}9.6S3C44B0/S3C2410中断机制中断是CPU在程序运行过程中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序,中断服务程序执行完毕后,又返回原来的断点,继续执行原来的程序。对于微控制器来说,中断源可能有很多,这就需要一个中断源的管理者,这个中断管理者在微控制器里由“中断控制器”来充当。S3C44B0/S3C2410内部集成了中断控制器,能够管理多个中断源。9.6.1S3C44B0中断控制器1.中断源S3C44B0中断控制器可以管理30个中断源,其中4个外部中断4、5、6、7通过“或”逻辑门共用一根中断请求线,2个UART错误中断通过“或”逻辑门共用一根中断请求线。共计26个独立的中断源。9.6.1S3C44B0中断控制器2.中断优先级产生模块9.6.1S3C44B0中断控制器优先级约定在从优先级产生单元中,sGA、sGB、sGC、sGD的优先级总是高于sGKA和sGKB,sGN的优先级可以通过编程来配置。sGKN中,sGKA的优先级高于sGKB。在主优先级产生单元中,mGA、mGB、mGC、mGD的优先级总是高于mGKA和mGKB,所以mGKA和mGKB的优先级是最低的。mGKN的优先级可以通过编程来配置。S3C44B0的IRQ中断分为向量中断和非向量中断(通过设置中断控制寄存器INTCON来配置)。中断发生时,对于两类中断程序执行情况不同:非向量中断方式中断源产生中断后,从0x18处取指、译码、执行。0x18中断服务入口3.S3C44B0向量中断与非向量中断9.6.1S3C44B0中断控制器向量中断方式中断源产生中断后,跳转到0x18处,并忽略0x18处指令,中断控制器自动产生分支指令并加载到总线上,这些分支指令使程序计数器能够对应到每一个中断源的向量地址。在各个中断源对应的中断向量地址中,存放着跳转到相应中断服务程序的指令代码。0x18中断服务入口3.S3C44B0向量中断与非向量中断9.6.1S3C44B0中断控制器中断启动---中断响应IRQs中断非向量中断INTCONV=1向量中断INTCONV=0中断服务入口地址表地址映射中断控制器读取I_ISPR寄存器计算偏移(R8)26个中断源EINT0/1/2……PowerDownEINT0/1/2……PowerDown9.6.1S3C44B0中断控制器9.6.2S3C2410中断控制器S3C2410提供56个中断源,单独的信号线有32个。如表9-50所示。当中断源提出中断服

显示全部
相似文档