; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 924] for uVision
; commandline ArmCC [--thumb -c --asm --interleave -o.\Obj\usbhw.o --depend=.\Obj\usbhw.d --device=DARMP --apcs=interwork -O0 -IC:\Keil\ARM\INC\Philips -D__MICROLIB usbhw.c]
THUMB
AREA ||.text||, CODE, READONLY, ALIGN=2
EPAdr PROC
;;;654
;;;655 void USB_ISR (void) __irq {
000000 0001 MOVS r1,r0
000002 070a LSLS r2,r1,#28
;;;656 DWORD disr, val, n, m;
;;;657
;;;658 disr = DEV_INT_STAT; /* Device Interrupt Status */
000004 0ed0 LSRS r0,r2,#27
000006 2280 MOVS r2,#0x80
000008 4211 TST r1,r2
00000a d000 BEQ |L1.14|
;;;659
;;;660 /* Device Status Interrupt (Reset, Connect change, Suspend/Resume) */
;;;661 if (disr & DEV_STAT_INT) {
00000c 1c40 ADDS r0,r0,#1
|L1.14|
00000e 4770 BX lr
;;;662 WrCmd(CMD_GET_DEV_STAT);
;;;663 val = RdCmdDat(DAT_GET_DEV_STAT); /* Device Status */
;;;664 if (val & DEV_RST) { /* Reset */
;;;665 USB_Reset();
;;;666 #if USB_RESET_EVENT
;;;667 USB_Reset_Event();
;;;668 #endif
;;;669 goto isr_end;
;;;670 }
;;;671 if (val & DEV_CON_CH) { /* Connect change */
;;;672 #if USB_POWER_EVENT
;;;673 USB_Power_Event(val & DEV_CON);
;;;674 #endif
;;;675 goto isr_end;
;;;676 }
;;;677 if (val & DEV_SUS_CH) { /* Suspend/Resume */
;;;678 if (val & DEV_SUS) { /* Suspend */
;;;679 USB_Suspend();
;;;680 #if USB_SUSPEND_EVENT
;;;681 USB_Suspend_Event();
;;;682 #endif
;;;683 } else { /* Resume */
;;;684 USB_Resume();
;;;685 #if USB_RESUME_EVENT
;;;686 USB_Resume_Event();
;;;687 #endif
;;;688 }
;;;689 goto isr_end;
;;;690 }
;;;691 }
;;;692
;;;693 #if USB_SOF_EVENT
;;;694 /* Start of Frame Interrupt */
;;;695 if (disr & FRAME_INT) {
;;;696 USB_SOF_Event();
;;;697 }
;;;698 #endif
;;;699
;;;700 #if USB_ERROR_EVENT
;;;701 /* Error Interrupt */
;;;702 if (disr & ERR_INT) {
;;;703 WrCmd(CMD_RD_ERR_STAT);
;;;704 val = RdCmdDat(DAT_RD_ERR_STAT);
;;;705 USB_Error_Event(val);
;;;706 }
;;;707 #endif
;;;708
;;;709 /* Endpoint's Slow Interrupt */
;;;710 if (disr & EP_SLOW_INT) {
;;;711
;;;712 while (EP_INT_STAT) { /* Endpoint Interrupt Status */
;;;713
;;;714 for (n = 0; n < USB_EP_NUM; n++) { /* Check All Endpoints */
;;;715 if (EP_INT_STAT & (1 << n)) {
;;;716 m = n >> 1;
;;;717
;;;718 EP_INT_CLR = 1 << n;
;;;719 while ((DEV_INT_STAT & CDFULL_INT) == 0);
;;;720 val = CMD_DATA;
;;;721
;;;722 if ((n & 1) == 0) { /* OUT Endpoint */
;;;723 if (n == 0) { /* Control OUT Endpoint */
;;;724 if (val & EP_SEL_STP) { /* Setup Packet */
;;;725 if (USB_P_EP[0]) {
;;;726 USB_P_EP[0](USB_EVT_SETUP);
;;;727 continue;
;;;728 }
;;;729 }
;;;730 }
;;;731 if (USB_P_EP[m]) {
;;;732 USB_P_EP[m](USB_EVT_OUT);
;;;733 }
;;;734 } else { /* IN Endpoint */
;;;735 if (USB_P_EP[m]) {
;;;736 USB_P_EP[m](USB_EVT_IN);
;;;737 }
;;;738 }
;;;739 }
;;;740 }
;;;741 }
;;;742 }
;;;743
;;;744 #if USB_DMA
;;;745
;;;746 if (DMA_INT_STAT & 0x00000001) { /* End of Transfer Interrupt */
;;;747 val = EOT_INT_STAT;
;;;748 for (n = 2; n < USB_EP_NUM; n++) { /* Check All Endpoints */
;;;749 if (val & (1 << n)) {
;;;750 m = n >> 1;
;;;751 if ((n & 1) == 0) { /* OUT Endpoint */
;;;752 if (USB_P_EP[m]) {
;;;753 USB_P_EP[m](USB_EVT_OUT_DMA_EOT);
;;;754 }
;;;755 } else { /* IN Endpoint */
;;;756 if (USB_P_EP[m]) {
;;;757 USB_P_EP[m](USB_EVT_IN_DMA_EOT);
;;;758 }
;;;759 }
;;;760 }
;;;761 }
;;;762 EOT_INT_CLR = val;
;;;763 }
;;;764
;;;765 if (DMA_INT_STAT & 0x00000002) { /* New DD Request Interrupt */
;;;766 val = NDD_REQ_INT_STAT;
;;;767 for (n = 2; n < USB_EP_NUM; n++) { /* Check All Endpoints */
;;;768 if (val & (1 << n)) {
;;;769 m = n >> 1;
;;;770 if ((n & 1) == 0) { /* OUT Endpoint */
;;;771 if (USB_P_EP[m]) {
;;;772 USB_P_EP[m](USB_EVT_OUT_DMA_NDR);
;;;773 }
;;;774 } else { /* IN Endpoint */
;;;775 if (USB_P_EP[m]) {
;;;776 USB_P_EP[m](USB_EVT_IN_DMA_NDR);
;;;777 }
;;;778 }
;;;779 }
;;;780 }
;;;781 NDD_REQ_INT_CLR = val;
;;;782 }
;;;783
;;;784 if (DMA_INT_STAT & 0x00000004) { /* System Error Interrupt */
;;;785 val = SYS_ERR_INT_STAT;
;;;786 for (n = 2; n < USB_EP_NUM; n++) { /* Check All Endpoints */
;;;787 if (val & (1 << n)) {
;;;788 m = n >> 1;
;;;789 if ((n & 1) == 0) { /* OUT Endpoint */
;;;790 if (USB_P_EP[m]) {
;;;791 USB_P_EP[m](USB_EVT_OUT_DMA_ERR);
;;;792 }
;;;793 } else { /* IN Endpoint */
;;;794 if (USB_P_EP[m]) {
;;;795 USB_P_EP[m](USB_EVT_IN_DMA_ERR);
;;;796 }
;;;797 }
;;;798 }
;;;799 }
;;;800 SYS_ERR_INT_CLR = val;
;;;801 }
;;;802
;;;803 #endif /* USB_DMA */
;;;804
;;;805 isr_end:
;;;806 DEV_INT_CLR = disr;
;;;807 VICVectAddr = 0; /* Acknowledge Interrupt */
;;;808 }
ENDP
WrCmd PROC
;;;654
;;;655 void USB_ISR (void) __irq {
;;;656 DWORD disr, val, n, m;
;;;657
;;;658 disr = DEV_INT_STAT; /* Device Interrupt Status */
;;;659
;;;660 /* Device Status Interrupt (Reset, Connect change, Suspend/Resume) */
;;;661 if (disr & DEV_STAT_INT) {
000010 2110 MOVS r1,#0x10
000012 4ae8 LDR r2,|L1.948|
;;;662 WrCmd(CMD_GET_DEV_STAT);
000014 6091 STR r1,[r2,#8]
000016 0011 MOVS r1,r2
000018 6108 STR r0,[r1,#0x10]
00001a 46c0 MOV r8,r8
|L1.28|
;;;663 val = RdCmdDat(DAT_GET_DEV_STAT); /* Device Status */
00001c 49e5 LDR r1,|L1.948|
00001e 6809 LDR r1,[r1,#0]
000020 2210 MOVS r2,#0x10
000022 4211 TST r1,r2
000024 d0fa BEQ |L1.28|
000026 4770 BX lr
;;;664 if (val & DEV_RST) { /* Reset */
;;;665 USB_Reset();
;;;666 #if USB_RESET_EVENT
;;;667 USB_Reset_Event();
;;;668 #endif
;;;669 goto isr_end;
;;;670 }
;;;671 if (val & DEV_CON_CH) { /* Connect cha
LPC2148-Fr.rar_LPC keil
版权申诉
168 浏览量
2022-09-21
07:42:01
上传
评论
收藏 74KB RAR 举报
![avatar](https://profile-avatar.csdnimg.cn/3b38fb294f114a0a8dfd7bc633aed231_weixin_42660494.jpg!1)
alvarocfc
- 粉丝: 112
- 资源: 1万+
最新资源
- 基于Python+Tensorflow实现声纹识别+源代码+文档说明.zip
- java-leetcode题解之第112题路径总和.zip
- java-leetcode题解之第111题二叉树的最小深度.zip
- java-leetcode题解之第110题平衡二叉树.zip
- java-leetcode题解之第109题有序链表转换二叉搜索树.zip
- java-leetcode题解之第108题将有序数组转换为二叉搜索树.zip
- java-leetcode题解之第107题二叉树的层序遍历II.zip
- java-leetcode题解之第102题二叉树的层序遍历.zip
- java-leetcode题解之第103题二叉树的锯齿形层序遍历.zip
- java-leetcode题解之第104题二叉树的最大深度.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
评论0