⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hw_config.txt

📁 stm32.rar
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 942] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Int_Flash\hw_config.o --depend=.\Int_Flash\hw_config.d --device=DARMSTM --apcs=interwork -O3 -I..\include -I..\..\..\..\..\INC\ST\STM32F10x\USB -Id:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB --omf_browse=.\Int_Flash\hw_config.crf ..\source\hw_config.c]
                          THUMB

                          AREA ||i.MAL_Config||, CODE, READONLY, ALIGN=1

                  MAL_Config PROC
000000  b510              PUSH     {r4,lr}
000002  2000              MOVS     r0,#0
000004  f7fffffe          BL       MAL_Init
000008  2101              MOVS     r1,#1
00000a  0208              LSLS     r0,r1,#8
00000c  f7fffffe          BL       RCC_AHBPeriphClockCmd
000010  e8bd4010          POP      {r4,lr}
000014  2001              MOVS     r0,#1
000016  f7ffbffe          B.W      MAL_Init
                          ENDP


                          AREA ||i.USB_Disconnect_Config||, CODE, READONLY, ALIGN=2

                  USB_Disconnect_Config PROC
000000  b508              PUSH     {r3,lr}
000002  2101              MOVS     r1,#1
000004  2008              MOVS     r0,#8
000006  f7fffffe          BL       RCC_APB2PeriphClockCmd
00000a  f44f4080          MOV      r0,#0x4000
00000e  f8ad0000          STRH     r0,[sp,#0]
000012  2003              MOVS     r0,#3
000014  f88d0002          STRB     r0,[sp,#2]
000018  2014              MOVS     r0,#0x14
00001a  f88d0003          STRB     r0,[sp,#3]
00001e  4669              MOV      r1,sp
000020  4801              LDR      r0,|L2.40|
000022  f7fffffe          BL       GPIO_Init
000026  bd08              POP      {r3,pc}
                          ENDP

                  |L2.40|
000028  40010c00          DCD      0x40010c00

                          AREA ||i.Set_System||, CODE, READONLY, ALIGN=1

                  Set_System PROC
;;;42     void Set_System(void)
;;;43     {
000000  b510              PUSH     {r4,lr}
;;;44       /* RCC configuration */
;;;45       RCC_Config();
000002  f7fffffe          BL       RCC_Config
;;;46     
;;;47       /* Enable and GPIOD clock */
;;;48       USB_Disconnect_Config();
000006  f7fffffe          BL       USB_Disconnect_Config
;;;49     
;;;50       /* MAL configuration */
;;;51       MAL_Config();
00000a  e8bd4010          POP      {r4,lr}
00000e  f7ffbffe          B.W      MAL_Config
;;;52     }
;;;53     
                          ENDP


                          AREA ||i.Set_USBClock||, CODE, READONLY, ALIGN=1

                  Set_USBClock PROC
;;;60     void Set_USBClock(void)
;;;61     {
000000  b510              PUSH     {r4,lr}
;;;62       /* USBCLK = PLLCLK */
;;;63       RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);
000002  2000              MOVS     r0,#0
000004  f7fffffe          BL       RCC_USBCLKConfig
;;;64     
;;;65       /* Enable USB clock */
;;;66       RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE);
000008  2101              MOVS     r1,#1
00000a  e8bd4010          POP      {r4,lr}
00000e  05c8              LSLS     r0,r1,#23
000010  f7ffbffe          B.W      RCC_APB1PeriphClockCmd
;;;67     }
;;;68     
                          ENDP


                          AREA ||i.Enter_LowPowerMode||, CODE, READONLY, ALIGN=2

                  Enter_LowPowerMode PROC
;;;77       /* Set the device state to suspend */
;;;78       bDeviceState = SUSPENDED;
000000  4901              LDR      r1,|L5.8|
000002  2003              MOVS     r0,#3
000004  6008              STR      r0,[r1,#0]  ; bDeviceState
;;;79     }
000006  4770              BX       lr
;;;80     
                          ENDP

                  |L5.8|
000008  00000000          DCD      bDeviceState

                          AREA ||i.Leave_LowPowerMode||, CODE, READONLY, ALIGN=2

                  Leave_LowPowerMode PROC
;;;88     {
;;;89       DEVICE_INFO *pInfo = &Device_Info;
000000  4804              LDR      r0,|L6.20|
;;;90     
;;;91       /* Set the device state to the correct state */
;;;92       if (pInfo->Current_Configuration != 0)
000002  7a81              LDRB     r1,[r0,#0xa]
000004  4804              LDR      r0,|L6.24|
000006  b109              CBZ      r1,|L6.12|
;;;93       {
;;;94         /* Device configured */
;;;95         bDeviceState = CONFIGURED;
000008  2105              MOVS     r1,#5
00000a  e000              B        |L6.14|
                  |L6.12|
;;;96       }
;;;97       else
;;;98       {
;;;99         bDeviceState = ATTACHED;
00000c  2101              MOVS     r1,#1
                  |L6.14|
00000e  6001              STR      r1,[r0,#0]            ;95  ; bDeviceState
;;;100      }
;;;101    
;;;102    }
000010  4770              BX       lr
;;;103    
                          ENDP

000012  0000              DCW      0x0000
                  |L6.20|
000014  00000000          DCD      Device_Info
                  |L6.24|
000018  00000000          DCD      bDeviceState

                          AREA ||i.USB_Interrupts_Config||, CODE, READONLY, ALIGN=1

                  USB_Interrupts_Config PROC
;;;110    void USB_Interrupts_Config(void)
;;;111    {
000000  b538              PUSH     {r3-r5,lr}
;;;112      NVIC_InitTypeDef NVIC_InitStructure;
;;;113    
;;;114    #ifdef  VECT_TAB_RAM
;;;115      /* Set the Vector Table base location at 0x20000000 */
;;;116      NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
;;;117    #else  /* VECT_TAB_FLASH */
;;;118      /* Set the Vector Table base location at 0x08000000 */
;;;119      NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
000002  2100              MOVS     r1,#0
000004  f04f6000          MOV      r0,#0x8000000
000008  f7fffffe          BL       NVIC_SetVectorTable
;;;120    #endif
;;;121    
;;;122      NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
00000c  f44f60c0          MOV      r0,#0x600
000010  f7fffffe          BL       NVIC_PriorityGroupConfig
;;;123    
;;;124      NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN_RX0_IRQChannel;
000014  2014              MOVS     r0,#0x14
000016  f88d0000          STRB     r0,[sp,#0]
;;;125      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
00001a  2401              MOVS     r4,#1
00001c  f88d4001          STRB     r4,[sp,#1]
;;;126      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
000020  f88d4002          STRB     r4,[sp,#2]
;;;127      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
000024  f88d4003          STRB     r4,[sp,#3]
;;;128      NVIC_Init(&NVIC_InitStructure);
000028  4668              MOV      r0,sp
00002a  f7fffffe          BL       NVIC_Init
;;;129    
;;;130      NVIC_InitStructure.NVIC_IRQChannel = USB_HP_CAN_TX_IRQChannel;
00002e  2013              MOVS     r0,#0x13
000030  f88d0000          STRB     r0,[sp,#0]
;;;131      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
000034  f88d4001          STRB     r4,[sp,#1]
;;;132      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
000038  2500              MOVS     r5,#0
00003a  f88d5002          STRB     r5,[sp,#2]
;;;133      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
00003e  f88d4003          STRB     r4,[sp,#3]
;;;134      NVIC_Init(&NVIC_InitStructure);
000042  4668              MOV      r0,sp
000044  f7fffffe          BL       NVIC_Init
;;;135      
;;;136      NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQChannel;
000048  2031              MOVS     r0,#0x31
00004a  f88d0000          STRB     r0,[sp,#0]
;;;137      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
00004e  f88d5001          STRB     r5,[sp,#1]
;;;138      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
000052  f88d5002          STRB     r5,[sp,#2]
;;;139      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
000056  f88d4003          STRB     r4,[sp,#3]
;;;140      NVIC_Init(&NVIC_InitStructure);
00005a  4668              MOV      r0,sp
00005c  f7fffffe          BL       NVIC_Init
;;;141    
;;;142    }
000060  bd38              POP      {r3-r5,pc}
;;;143    
                          ENDP


                          AREA ||i.Led_Config||, CODE, READONLY, ALIGN=2

                  Led_Config PROC
;;;151    void Led_Config(void)
;;;152    {
000000  b508              PUSH     {r3,lr}
;;;153      GPIO_InitTypeDef GPIO_InitStructure;
;;;154    
;;;155      /* Enable USB_LED_PORT clock */
;;;156      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO_LED, ENABLE);
000002  2101              MOVS     r1,#1
000004  2008              MOVS     r0,#8
000006  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;157    
;;;158      /* Configure USB_LED_PORT pin6, pin7, pin8 and pin9 as output push-pull */
;;;159      GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8;
00000a  f44f70e0          MOV      r0,#0x1c0
00000e  f8ad0000          STRH     r0,[sp,#0]
;;;160      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
000012  2010              MOVS     r0,#0x10

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -