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

📄 hw_config.s79

📁 用于监视I2C通信总线
💻 S79
📖 第 1 页 / 共 4 页
字号:
        MOVS     R0,#+1024
        _BLF     RCC_PCLK1Config,??RCC_PCLK1Config??rT
//   75 
//   76     /* ADCCLK = PCLK2/6 */
//   77     RCC_ADCCLKConfig(RCC_PCLK2_Div6);
        MOVS     R0,#+32768
        _BLF     RCC_ADCCLKConfig,??RCC_ADCCLKConfig??rT
//   78 
//   79     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
        MOVS     R1,#+1835008
        MOVS     R0,#+65536
        _BLF     RCC_PLLConfig,??RCC_PLLConfig??rT
//   80 
//   81     /* Enable PLL */
//   82     RCC_PLLCmd(ENABLE);
        MOVS     R0,#+1
        _BLF     RCC_PLLCmd,??RCC_PLLCmd??rT
//   83 
//   84     /* Wait till PLL is ready */
//   85     while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
??Set_System_2:
        MOVS     R0,#+57
        _BLF     RCC_GetFlagStatus,??RCC_GetFlagStatus??rT
        CMP      R0,#+0
        BEQ.N    ??Set_System_2
//   86     {}
//   87 
//   88     /* Select PLL as system clock source */
//   89     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
        MOVS     R0,#+2
        _BLF     RCC_SYSCLKConfig,??RCC_SYSCLKConfig??rT
//   90 
//   91     /* Wait till PLL is used as system clock source */
//   92     while (RCC_GetSYSCLKSource() != 0x08)
??Set_System_3:
        _BLF     RCC_GetSYSCLKSource,??RCC_GetSYSCLKSource??rT
        CMP      R0,#+8
        BNE.N    ??Set_System_3
//   93     {}
//   94   }
//   95 
//   96   /* Enable GPIOA, GPIOD and USART1 clock */
//   97   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD
//   98                          | RCC_APB2Periph_USART1, ENABLE);
??Set_System_1:
        LDR.N    R0,??Set_System_0+0x4  ;; 0x4024
//   99   
//  100   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
//  101 
//  102   /* Enable USB_DISCONNECT GPIO clock */
//  103   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO_DISCONNECT, ENABLE);
//  104 
//  105   /* Configure USB pull-up pin */
//  106   GPIO_InitStructure.GPIO_Pin = USB_DISCONNECT_PIN;
//  107   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//  108   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
//  109   GPIO_Init(USB_DISCONNECT, &GPIO_InitStructure);
        LDR.N    R5,??DataTable3  ;; 0x40010c00
//  110 
//  111   /* Configure USART1 Rx (PA.10) as input floating */
//  112   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
//  113   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
//  114   GPIO_Init(GPIOA, &GPIO_InitStructure);
        LDR.N    R6,??Set_System_0+0x8  ;; 0x40010800
        MOVS     R1,#+1
        _BLF     RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
        MOVS     R1,#+1
        MOVS     R0,#+2
        _BLF     RCC_APB1PeriphClockCmd,??RCC_APB1PeriphClockCmd??rT
        MOVS     R1,#+1
        MOVS     R0,#+8
        _BLF     RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
        MOVS     R0,#+16384
        STRH     R0,[SP, #+0]
        MOVS     R0,#+3
        STRB     R0,[SP, #+2]
        MOVS     R0,#+20
        STRB     R0,[SP, #+3]
        MOV      R1,SP
        MOVS     R0,R5
        _BLF     GPIO_Init,??GPIO_Init??rT
        LSRS     R0,R5,#+20
        STRH     R0,[SP, #+0]
        MOVS     R0,#+4
        STRB     R0,[SP, #+3]
        MOV      R1,SP
        MOVS     R0,R6
        _BLF     GPIO_Init,??GPIO_Init??rT
        MOVS     R4,#+3
//  115 
//  116   /* Configure USART1 Tx (PA.09) as alternate function push-pull */
//  117   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        LSRS     R7,R5,#+21
        STRH     R7,[SP, #+0]
//  118   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        MOV      R0,R4
        STRB     R0,[SP, #+2]
//  119   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        MOVS     R0,#+24
        STRB     R0,[SP, #+3]
//  120   GPIO_Init(GPIOA, &GPIO_InitStructure);
        MOV      R1,SP
        MOVS     R0,R6
        _BLF     GPIO_Init,??GPIO_Init??rT
//  121   
//  122   /* Configure GPIO channe1 output pin */
//  123   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_9;
//  124   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//  125   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        MOVS     R0,#+16
        STRH     R7,[SP, #+0]
        STRB     R4,[SP, #+2]
        STRB     R0,[SP, #+3]
//  126   GPIO_Init(GPIOB, &GPIO_InitStructure);
        MOV      R1,SP
        MOVS     R0,R5
        _BLF     GPIO_Init,??GPIO_Init??rT
//  127 }
        POP      {R0,R4-R7,PC}    ;; return
        DATA
??Set_System_0:
        DC32     HSEStartUpStatus
        DC32     0x4024
        DC32     0x40010800
        CFI EndBlock cfiBlock0
//  128 
//  129 /*******************************************************************************
//  130 * Function Name  : Set_USBClock
//  131 * Description    : Configures USB Clock input (48MHz)
//  132 * Input          : None.
//  133 * Return         : None.
//  134 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function Set_USBClock
        THUMB
//  135 void Set_USBClock(void)
//  136 {
Set_USBClock:
        PUSH     {LR}
        CFI ?RET Frame(CFA, -4)
        CFI CFA R13+4
//  137   /* USBCLK = PLLCLK / 1.5 */
//  138   RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);
        MOVS     R0,#+0
        _BLF     RCC_USBCLKConfig,??RCC_USBCLKConfig??rT
//  139   /* Enable USB clock */
//  140   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE);
        MOVS     R1,#+1
        LSLS     R0,R1,#+23
        POP      {LR}             ;; Pop
        CFI ?RET R14
        CFI CFA R13+0
        _BF.W    RCC_APB1PeriphClockCmd,??RCC_APB1PeriphClockCmd??rT
        CFI EndBlock cfiBlock1
//  141 }
//  142 
//  143 /*******************************************************************************
//  144 * Function Name  : Enter_LowPowerMode
//  145 * Description    : Power-off system clocks and power while entering suspend mode
//  146 * Input          : None.
//  147 * Return         : None.
//  148 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function Enter_LowPowerMode
        THUMB
//  149 void Enter_LowPowerMode(void)
//  150 {
//  151   /* Set the device state to suspend */
//  152   bDeviceState = SUSPENDED;
Enter_LowPowerMode:
        LDR.N    R0,??DataTable2  ;; bDeviceState
        MOVS     R1,#+3
        STR      R1,[R0, #+0]
//  153 }
        BX       LR               ;; return
        CFI EndBlock cfiBlock2
//  154 
//  155 /*******************************************************************************
//  156 * Function Name  : Leave_LowPowerMode
//  157 * Description    : Restores system clocks and power while exiting suspend mode
//  158 * Input          : None.
//  159 * Return         : None.
//  160 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function Leave_LowPowerMode
        THUMB
//  161 void Leave_LowPowerMode(void)
//  162 {
//  163   DEVICE_INFO *pInfo = &Device_Info;
//  164 
//  165   /* Set the device state to the correct state */
//  166   if (pInfo->Current_Configuration != 0)
Leave_LowPowerMode:
        LDR.N    R1,??Leave_LowPowerMode_0  ;; Device_Info + 10
        LDR.N    R0,??DataTable2  ;; bDeviceState
        LDRB     R1,[R1, #+0]
        CBZ      R1,??Leave_LowPowerMode_1
//  167   {
//  168     /* Device configured */
//  169     bDeviceState = CONFIGURED;
        MOVS     R1,#+5
        B.N      ??Leave_LowPowerMode_2
//  170   }
//  171   else
//  172   {
//  173     bDeviceState = ATTACHED;
??Leave_LowPowerMode_1:
        MOVS     R1,#+1
??Leave_LowPowerMode_2:
        STR      R1,[R0, #+0]
//  174   }
//  175 }
        BX       LR               ;; return
        Nop      
        DATA
??Leave_LowPowerMode_0:
        DC32     Device_Info + 10
        CFI EndBlock cfiBlock3

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable2:
        DC32     bDeviceState
//  176 
//  177 /*******************************************************************************
//  178 * Function Name  : USB_Interrupts_Config
//  179 * Description    : Configures the USB interrupts
//  180 * Input          : None.
//  181 * Return         : None.
//  182 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function USB_Interrupts_Config
        THUMB
//  183 void USB_Interrupts_Config(void)
//  184 {
USB_Interrupts_Config:
        PUSH     {R0,R4,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R4 Frame(CFA, -8)
        CFI CFA R13+12
//  185   NVIC_InitTypeDef NVIC_InitStructure;
//  186 
//  187 #ifdef  VECT_TAB_RAM
//  188   /* Set the Vector Table base location at 0x20000000 */
//  189   NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
//  190 #else  /* VECT_TAB_FLASH */
//  191   /* Set the Vector Table base location at 0x08000000 */
//  192   NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
        MOVS     R1,#+0
        MOVS     R0,#+134217728
        _BLF     NVIC_SetVectorTable,??NVIC_SetVectorTable??rT
//  193 #endif
//  194 
//  195   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
        MOVS     R0,#+1536
        _BLF     NVIC_PriorityGroupConfig,??NVIC_PriorityGroupConfig??rT
//  196 
//  197   NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN_RX0_IRQChannel;
        MOVS     R0,#+20
        STRB     R0,[SP, #+0]
//  198   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
        MOVS     R4,#+1
        MOVS     R0,#+1
        STRB     R0,[SP, #+1]
//  199   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
        MOVS     R0,#+3
        STRB     R0,[SP, #+2]
//  200   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        MOV      R0,R4
        STRB     R0,[SP, #+3]
//  201   NVIC_Init(&NVIC_InitStructure);
        MOV      R0,SP
        _BLF     NVIC_Init,??NVIC_Init??rT
//  202 
//  203   /* Enable USART1 Interrupt */
//  204   NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;
        MOVS     R0,#+37
        STRB     R0,[SP, #+0]
//  205   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
        MOVS     R0,R4
        STRB     R0,[SP, #+1]
//  206   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4;
        MOVS     R0,#+4
        STRB     R0,[SP, #+2]
//  207   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        MOVS     R0,R4
        STRB     R0,[SP, #+3]
//  208   NVIC_Init(&NVIC_InitStructure);
        MOV      R0,SP
        _BLF     NVIC_Init,??NVIC_Init??rT
//  209   
//  210   /* Enable the TIM3 gloabal Interrupt */
//  211   NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;
        MOVS     R0,#+29
        STRB     R0,[SP, #+0]
//  212   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
        MOVS     R0,R4
        STRB     R0,[SP, #+1]
//  213   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 5;
        MOVS     R0,#+5
        STRB     R0,[SP, #+2]
//  214   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        STRB     R4,[SP, #+3]
//  215 
//  216   NVIC_Init(&NVIC_InitStructure);
        MOV      R0,SP
        _BLF     NVIC_Init,??NVIC_Init??rT
//  217 }
        POP      {R0,R4,PC}       ;; return
        CFI EndBlock cfiBlock4
//  218 
//  219 /*******************************************************************************
//  220 * Function Name  : USB_Cable_Config
//  221 * Description    : Software Connection/Disconnection of USB Cable
//  222 * Input          : None.
//  223 * Return         : Status
//  224 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function USB_Cable_Config
        THUMB
//  225 void USB_Cable_Config (FunctionalState NewState)
//  226 {
//  227   if (NewState != DISABLE)
USB_Cable_Config:
        LDR.N    R2,??DataTable3  ;; 0x40010c00
        CBZ      R0,??USB_Cable_Config_0
//  228   {
//  229     GPIO_ResetBits(USB_DISCONNECT, USB_DISCONNECT_PIN);
        MOVS     R1,#+16384
        MOVS     R0,R2
        _BF.W    GPIO_ResetBits,??GPIO_ResetBits??rT
//  230   }
//  231   else
//  232   {
//  233     GPIO_SetBits(USB_DISCONNECT, USB_DISCONNECT_PIN);
??USB_Cable_Config_0:
        MOVS     R1,#+16384
        MOVS     R0,R2
        _BF.W    GPIO_SetBits,??GPIO_SetBits??rT
        CFI EndBlock cfiBlock5
//  234   }
//  235 }

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable3:
        DC32     0x40010c00
//  236 
//  237 /*******************************************************************************
//  238 * Function Name  :  UART0_Config_Default.
//  239 * Description    :  configure the UART 0 with default values.
//  240 * Input          :  None.
//  241 * Return         :  None.
//  242 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock6 Using cfiCommon0
        CFI Function USART_Config_Default
        THUMB
//  243 void USART_Config_Default(void)
//  244 {
//  245   /* USART1 default configuration */
//  246   /* USART1 configured as follow:
//  247         - BaudRate = 9600 baud  
//  248         - Word Length = 8 Bits
//  249         - One Stop Bit
//  250         - Parity Odd
//  251         - Hardware flow control desabled
//  252         - Receive and transmit enabled
//  253   */
//  254   USART_InitStructure.USART_BaudRate = 9600;
USART_Config_Default:
        LDR.N    R1,??DataTable6  ;; USART_InitStructure
        PUSH     {R4,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R4 Frame(CFA, -8)
        CFI CFA R13+8
//  255   USART_InitStructure.USART_WordLength = USART_WordLength_8b;
//  256   USART_InitStructure.USART_StopBits = USART_StopBits_1;
//  257   USART_InitStructure.USART_Parity = USART_Parity_Odd;
//  258   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
//  259   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
//  260 
//  261   /* Configure the USART1 */

⌨️ 快捷键说明

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