📄 usbhal.lst
字号:
127
128
129
ARM COMPILER V2.53, USBHAL 28/06/07 09:54:11 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** PUBLICS:
PUBLIC USB_InitHareware?T
PUBLIC USB_USBDevIntConfig?T
PUBLIC USB_ConfigPll?T
*** CODE SEGMENT '?PR?USB_ConfigPll?T?USBHAL':
59: PLL1CFG = 0x23; /* P = 2, M = 4 */
00000000 2123 MOV R1,#0x23
00000002 4800 LDR R0,=0xE01FC0A4
00000004 7001 STRB R1,[R0,#0x0]
60: PLL1CON = 0x1; /* Enable PLL1 */
00000006 2101 MOV R1,#0x1
00000008 4800 LDR R0,=0xE01FC0A0
0000000A 7001 STRB R1,[R0,#0x0]
61: PLL1FEED = 0xAA;
0000000C 21AA MOV R1,#0xAA
0000000E 4800 LDR R0,=0xE01FC0AC
00000010 7001 STRB R1,[R0,#0x0]
62: PLL1FEED = 0x55; /* PLL Feed */
00000012 2155 MOV R1,#0x55
00000014 4800 LDR R0,=0xE01FC0AC
00000016 7001 STRB R1,[R0,#0x0]
64: while((PLL1STAT & 0x400) == 0); /* 等待 PLL1 锁定 */
00000018 L_1:
00000018 4800 LDR R0,=0xE01FC0A8
0000001A 8800 LDRH R0,[R0,#0x0]
0000001C 4800 LDR R1,=0x400
0000001E 4208 TST R0,R1
00000020 D0FA BEQ L_1 ; T=0x00000018
66: PLL1CON = 0x3; /* Enable and connect*/
00000022 2103 MOV R1,#0x3
00000024 4800 LDR R0,=0xE01FC0A0
00000026 7001 STRB R1,[R0,#0x0]
67: PLL1FEED = 0xaa;
00000028 21AA MOV R1,#0xAA
0000002A 4800 LDR R0,=0xE01FC0AC
0000002C 7001 STRB R1,[R0,#0x0]
68: PLL1FEED = 0x55; /* PLL Feed part 2 */
0000002E 2155 MOV R1,#0x55
00000030 4800 LDR R0,=0xE01FC0AC
00000032 7001 STRB R1,[R0,#0x0]
69: }
00000034 4770 BX R14
00000036 ENDP ; 'USB_ConfigPll?T'
*** CODE SEGMENT '?PR?USB_InitHareware?T?USBHAL':
76: void USB_InitHareware(void)
00000000 B500 PUSH {LR}
79: PCONP |= 0x80000000; /* 给USB控制器提供电源 power on USB controller */
00000002 4800 LDR R2,=0x80000000
00000004 4800 LDR R0,=0xE01FC0C4
00000006 6801 LDR R1,[R0,#0x0]
00000008 4311 ORR R1,R2
0000000A 6001 STR R1,[R0,#0x0]
80: USB_ConfigPll(); /* 配置USB时钟 config USB clock */
0000000C F7FF BL USB_ConfigPll?T ; T=0x0001 (1)
0000000E FFF8 BL USB_ConfigPll?T ; T=0x0001 (2)
85: PINSEL1 &= ~(0x03U << 14);
00000010 4800 LDR R2,=0xC000
00000012 4800 LDR R0,=0xE002C004
00000014 6801 LDR R1,[R0,#0x0]
00000016 4391 BIC R1,R2
00000018 6001 STR R1,[R0,#0x0]
86: PINSEL1 |= (0x01U << 14); /* P0.23为 Vbus 引脚 P0.23 is Vbus Pin */
ARM COMPILER V2.53, USBHAL 28/06/07 09:54:11 PAGE 5
0000001A 4800 LDR R2,=0x4000
0000001C 4800 LDR R0,=0xE002C004
0000001E 6801 LDR R1,[R0,#0x0]
00000020 4311 ORR R1,R2
00000022 6001 STR R1,[R0,#0x0]
89: }
00000024 BC08 POP {R3}
00000026 4718 BX R3
00000028 ENDP ; 'USB_InitHareware?T'
*** CODE SEGMENT '?PR?USB_USBDevIntConfig?T?USBHAL':
96: void USB_USBDevIntConfig(void)
00000000 B081 SUB R13,#0x4
97: {
00000002 ; SCOPE-START
98: INT32U tmp = EP_SLOW;
00000002 2104 MOV R1,#0x4
00000004 A800 ADD R0,R13,#0x0
00000006 6001 STR R1,[R0,#0x0] ; tmp
101: USBDevIntClr = FRAME; /* 禁止同步传输帧中断 */
00000008 2101 MOV R1,#0x1
0000000A 4800 LDR R0,=0xE0090008
0000000C 6001 STR R1,[R0,#0x0]
104: USBDevIntEn = tmp; /* 使能复位中断, 低速中断 */
0000000E A800 ADD R0,R13,#0x0
00000010 6801 LDR R1,[R0,#0x0] ; tmp
00000012 4800 LDR R0,=0xE0090004
00000014 6001 STR R1,[R0,#0x0]
107: USBDevIntPri = 0; /* 使能端点中断为低优先级中断 */
00000016 2100 MOV R1,#0x0
00000018 4800 LDR R0,=0xE009002C
0000001A 7001 STRB R1,[R0,#0x0]
112: tmp = (0x01 << 0) + (0x01 << 1) + (0x01 << 2) +
0000001C 213F MOV R1,#0x3F
0000001E A800 ADD R0,R13,#0x0
00000020 6001 STR R1,[R0,#0x0] ; tmp
117: USBEpIntEn = tmp; /* 使能物理端点 0 ~ 5中断 */
00000022 A800 ADD R0,R13,#0x0
00000024 6801 LDR R1,[R0,#0x0] ; tmp
00000026 4800 LDR R0,=0xE0090034
00000028 6001 STR R1,[R0,#0x0]
120: USBEpIntPri &= ~tmp; /* 设置物理端点 0 ~ 5为低优先级中断 */
0000002A A800 ADD R0,R13,#0x0
0000002C 6802 LDR R2,[R0,#0x0] ; tmp
0000002E 4800 LDR R0,=0xE0090040
00000030 6801 LDR R1,[R0,#0x0]
00000032 4391 BIC R1,R2
00000034 6001 STR R1,[R0,#0x0]
00000036 ; SCOPE-END
122: }
00000036 B001 ADD R13,#0x4
00000038 4770 BX R14
0000003A ENDP ; 'USB_USBDevIntConfig?T'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = ------
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -