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

📄 bsp.txt

📁 针对STM32F103的UCOS移植
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 942] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\bsp.o --depend=.\rvmdk\bsp.d --device=DARMSTM --apcs=interwork -O1 -Otime -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\arm-cortex-m3\Generic\RealView -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\CPU\ST\STM32\inc -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\Arm-Cortex-M3\RealView -I..\..\..\..\..\uC-LIB -I..\..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Ports\ST\STM32 -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -IC:\Keil\ARM\INC\ST\STM32F10x ..\BSP\bsp.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  Tmr_TickInit PROC
;;;716    static  void  Tmr_TickInit (void)
;;;717    {
000000  b500              PUSH     {lr}
000002  b085              SUB      sp,sp,#0x14
;;;718        RCC_ClocksTypeDef  rcc_clocks;
;;;719        CPU_INT32U         cnts;
;;;720    
;;;721    
;;;722        RCC_GetClocksFreq(&rcc_clocks);
000004  4668              MOV      r0,sp
000006  f7fffffe          BL       RCC_GetClocksFreq
;;;723    
;;;724        cnts = (CPU_INT32U)rcc_clocks.HCLK_Frequency / OS_TICKS_PER_SEC;
00000a  9801              LDR      r0,[sp,#4]
00000c  2164              MOVS     r1,#0x64
00000e  fbb0f0f1          UDIV     r0,r0,r1
;;;725    
;;;726        SysTick_SetReload(cnts);
000012  f7fffffe          BL       SysTick_SetReload
;;;727        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
000016  2004              MOVS     r0,#4
000018  f7fffffe          BL       SysTick_CLKSourceConfig
;;;728        SysTick_CounterCmd(SysTick_Counter_Enable);
00001c  2001              MOVS     r0,#1
00001e  f7fffffe          BL       SysTick_CounterCmd
;;;729        SysTick_ITConfig(ENABLE);
000022  2001              MOVS     r0,#1
000024  f7fffffe          BL       SysTick_ITConfig
;;;730    }
000028  b005              ADD      sp,sp,#0x14
00002a  bd00              POP      {pc}
;;;731    
                          ENDP

                  Joystick_Init PROC
;;;319    static  void  Joystick_Init (void)
;;;320    {
00002c  b508              PUSH     {r3,lr}
;;;321        GPIO_InitTypeDef  gpio_init;
;;;322    
;;;323    
;;;324        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD , ENABLE);
00002e  2101              MOVS     r1,#1
000030  2020              MOVS     r0,#0x20
000032  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;325    
;;;326                                                                    /* Configure JOY_UP, JOY_SEL, JOY_DOWN                      */
;;;327        gpio_init.GPIO_Pin  = GPIOD_JOY_UP | GPIOD_JOY_SEL | GPIOD_JOY_DOWN|GPIOD_JOY_LEFT | GPIOD_JOY_RIGHT;
000036  f44f4078          MOV      r0,#0xf800
00003a  f8ad0000          STRH     r0,[sp,#0]
;;;328        gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
00003e  2004              MOVS     r0,#4
000040  f88d0003          STRB     r0,[sp,#3]
;;;329        GPIO_Init(GPIOD, &gpio_init);
000044  4669              MOV      r1,sp
000046  48cd              LDR      r0,|L1.892|
000048  f7fffffe          BL       GPIO_Init
;;;330    
;;;331                                                                    /* Configure JOY_LEFT & JOY_RIGHT                           */
;;;332     /*   gpio_init.GPIO_Pin  = GPIOD_JOY_LEFT | GPIOD_JOY_RIGHT;
;;;333        gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
;;;334        GPIO_Init(GPIOE, &gpio_init);*/
;;;335    }
00004c  bd08              POP      {r3,pc}
;;;336    
                          ENDP

                  PB_Init PROC
;;;253    static  void  PB_Init (void)
;;;254    {
00004e  b508              PUSH     {r3,lr}
;;;255        GPIO_InitTypeDef  gpio_init;
;;;256    
;;;257    
;;;258        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
000050  2101              MOVS     r1,#1
000052  2020              MOVS     r0,#0x20
000054  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;259        gpio_init.GPIO_Pin  = GPIOD_PB_KEY2|GPIOD_PB_KEY3;
000058  2018              MOVS     r0,#0x18
00005a  f8ad0000          STRH     r0,[sp,#0]
;;;260        gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
00005e  2004              MOVS     r0,#4
000060  f88d0003          STRB     r0,[sp,#3]
;;;261        GPIO_Init(GPIOD, &gpio_init);
000064  4669              MOV      r1,sp
000066  48c5              LDR      r0,|L1.892|
000068  f7fffffe          BL       GPIO_Init
;;;262    }
00006c  bd08              POP      {r3,pc}
;;;263    
                          ENDP

                  LED_Init PROC
;;;401    static  void  LED_Init (void)
;;;402    {
00006e  b508              PUSH     {r3,lr}
;;;403        GPIO_InitTypeDef  gpio_init;
;;;404    
;;;405    
;;;406        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
000070  2101              MOVS     r1,#1
000072  2010              MOVS     r0,#0x10
000074  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;407    
;;;408        gpio_init.GPIO_Pin   = GPIOC_LED1 | GPIOC_LED2 | GPIOC_LED3 | GPIOC_LED4;
000078  20f0              MOVS     r0,#0xf0
00007a  f8ad0000          STRH     r0,[sp,#0]
;;;409        gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
00007e  2003              MOVS     r0,#3
000080  f88d0002          STRB     r0,[sp,#2]
;;;410        gpio_init.GPIO_Mode  = GPIO_Mode_Out_PP;
000084  2010              MOVS     r0,#0x10
000086  f88d0003          STRB     r0,[sp,#3]
;;;411        GPIO_Init(GPIOC, &gpio_init);
00008a  4669              MOV      r1,sp
00008c  48bc              LDR      r0,|L1.896|
00008e  f7fffffe          BL       GPIO_Init
;;;412    }
000092  bd08              POP      {r3,pc}
;;;413    
                          ENDP

                  BSP_Init PROC
;;;154    void  BSP_Init (void)
;;;155    {
000094  b510              PUSH     {r4,lr}
;;;156        RCC_DeInit();
000096  f7fffffe          BL       RCC_DeInit
;;;157        RCC_HSEConfig(RCC_HSE_ON);
00009a  f44f3080          MOV      r0,#0x10000
00009e  f7fffffe          BL       RCC_HSEConfig
;;;158        RCC_WaitForHSEStartUp();
0000a2  f7fffffe          BL       RCC_WaitForHSEStartUp
;;;159    
;;;160    
;;;161        RCC_HCLKConfig(RCC_SYSCLK_Div1);
0000a6  2000              MOVS     r0,#0
0000a8  f7fffffe          BL       RCC_HCLKConfig
;;;162        RCC_PCLK2Config(RCC_HCLK_Div1);
0000ac  2000              MOVS     r0,#0
0000ae  f7fffffe          BL       RCC_PCLK2Config
;;;163        RCC_PCLK1Config(RCC_HCLK_Div2);
0000b2  f44f6080          MOV      r0,#0x400
0000b6  f7fffffe          BL       RCC_PCLK1Config
;;;164        RCC_ADCCLKConfig(RCC_PCLK2_Div6);
0000ba  f44f4000          MOV      r0,#0x8000
0000be  f7fffffe          BL       RCC_ADCCLKConfig
;;;165        FLASH_SetLatency(FLASH_Latency_2);
0000c2  2002              MOVS     r0,#2
0000c4  f7fffffe          BL       FLASH_SetLatency
;;;166        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
0000c8  2010              MOVS     r0,#0x10
0000ca  f7fffffe          BL       FLASH_PrefetchBufferCmd
;;;167        RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
0000ce  f44f11e0          MOV      r1,#0x1c0000
0000d2  f44f3080          MOV      r0,#0x10000
0000d6  f7fffffe          BL       RCC_PLLConfig
;;;168        RCC_PLLCmd(ENABLE);
0000da  2001              MOVS     r0,#1
0000dc  f7fffffe          BL       RCC_PLLCmd
                  |L1.224|
;;;169    
;;;170        while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {
0000e0  2039              MOVS     r0,#0x39
0000e2  f7fffffe          BL       RCC_GetFlagStatus
0000e6  2800              CMP      r0,#0
0000e8  d0fa              BEQ      |L1.224|
;;;171            ;
;;;172        }
;;;173    
;;;174        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
0000ea  2002              MOVS     r0,#2
0000ec  f7fffffe          BL       RCC_SYSCLKConfig
                  |L1.240|
;;;175    
;;;176        while (RCC_GetSYSCLKSource() != 0x08) {
0000f0  f7fffffe          BL       RCC_GetSYSCLKSource
0000f4  2808              CMP      r0,#8
0000f6  d1fb              BNE      |L1.240|
;;;177            ;
;;;178        }
;;;179    
;;;180        LED_Init();                                                 /* Initialize the I/Os for the LED      controls            */
0000f8  f7fffffe          BL       LED_Init
;;;181        PB_Init();                                                  /* Initialize the I/Os for the PB       control             */
0000fc  f7fffffe          BL       PB_Init
;;;182        Joystick_Init();                                            /* Initialize the I/Os for the Joystick control             */
000100  f7fffffe          BL       Joystick_Init
;;;183    
;;;184        LCD_Init();
000104  f7fffffe          BL       LCD_Init
;;;185        LCD_Clear();
000108  f7fffffe          BL       LCD_Clear
;;;186    
;;;187    
;;;188        Tmr_TickInit();                                             /* Initialize the uC/OS-II tick interrupt                   */
00010c  e8bd4010          POP      {r4,lr}
000110  e7fe              B        Tmr_TickInit
;;;189    }
;;;190    
                          ENDP

                  BSP_IntDisAll PROC
;;;205    {
;;;206        CPU_IntDis();
000112  f7ffbffe          B.W      CPU_IntDis
;;;207    }
;;;208    
                          ENDP

                  BSP_CPU_ClkFreq PROC
;;;222    CPU_INT32U  BSP_CPU_ClkFreq (void)
;;;223    {
000116  b510              PUSH     {r4,lr}
;;;224        static  RCC_ClocksTypeDef  rcc_clocks;
;;;225    
;;;226    
;;;227        RCC_GetClocksFreq(&rcc_clocks);
000118  489a              LDR      r0,|L1.900|
00011a  f7fffffe          BL       RCC_GetClocksFreq
;;;228    
;;;229        return ((CPU_INT32U)rcc_clocks.HCLK_Frequency);
00011e  4899              LDR      r0,|L1.900|
000120  6840              LDR      r0,[r0,#4]  ; rcc_clocks@BSP_CPU_ClkFreq_0
;;;230    }
000122  bd10              POP      {r4,pc}
;;;231    
                          ENDP

                  PB_GetStatus PROC
;;;279    CPU_BOOLEAN  PB_GetStatus (CPU_INT08U pb)
;;;280    {
000124  b510              PUSH     {r4,lr}
;;;281        CPU_BOOLEAN  status;
;;;282        CPU_INT32U   pin;
;;;283    
;;;284    
;;;285        status = DEF_FALSE;
000126  2400              MOVS     r4,#0
;;;286    
;;;287        switch (pb) {
000128  4601              MOV      r1,r0
00012a  4894              LDR      r0,|L1.892|
00012c  2901              CMP      r1,#1
00012e  d008              BEQ      |L1.322|
000130  2902              CMP      r1,#2
000132  d104              BNE      |L1.318|
;;;288            case 1:
;;;289                 pin = GPIO_ReadInputDataBit(GPIOD, GPIOD_PB_KEY2);
;;;290                 if (pin == 0) {

⌨️ 快捷键说明

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