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

📄 bsp_led.txt

📁 stm32-SDIO+FatFS文件系统txt-int-ascii
💻 TXT
字号:
; generated by ARM C/C++ Compiler, 4.1 [Build 561]
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\CpuRAM\Obj\bsp_led.o --depend=.\CpuRAM\Obj\bsp_led.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=870 -I..\..\Libraries\CMSIS\CM3\CoreSupport -I..\..\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\User\bsp -I..\..\User\fatfs -I..\..\User -IC:\Keil\ARM\INC -IC:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_SRAM ..\..\User\bsp\bsp_led.c]
                          THUMB

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

                  bsp_InitLed PROC
;;;52     */
;;;53     void bsp_InitLed(void)
000000  b508              PUSH     {r3,lr}
;;;54     {
;;;55     	GPIO_InitTypeDef GPIO_InitStructure;
;;;56     
;;;57     #if 1	/* 采用宏定义的方式初始化GPIO,以便于修改GPIO口线 */
;;;58     	/* 打开GPIOF的时钟 */
;;;59     	RCC_APB2PeriphClockCmd(GPIO_CLK_LED1 | GPIO_CLK_LED2 | GPIO_CLK_LED3 | GPIO_CLK_LED4, ENABLE);
000002  2101              MOVS     r1,#1
000004  2080              MOVS     r0,#0x80
000006  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;60     
;;;61     	/* 配置所有的LED指示灯GPIO为推挽输出模式 */
;;;62     	/* 由于将GPIO设置为输出时,GPIO输出寄存器的值缺省是0,因此会驱动LED点亮
;;;63     		这是我不希望的,因此在改变GPIO为输出前,先修改输出寄存器的值为1 */
;;;64     	GPIO_SetBits(GPIO_PORT_LED1,  GPIO_PIN_LED1);
00000a  2140              MOVS     r1,#0x40
00000c  481a              LDR      r0,|L1.120|
00000e  f7fffffe          BL       GPIO_SetBits
;;;65     	GPIO_SetBits(GPIO_PORT_LED2,  GPIO_PIN_LED2);
000012  2180              MOVS     r1,#0x80
000014  4818              LDR      r0,|L1.120|
000016  f7fffffe          BL       GPIO_SetBits
;;;66     	GPIO_SetBits(GPIO_PORT_LED3,  GPIO_PIN_LED3);
00001a  f44f7180          MOV      r1,#0x100
00001e  4816              LDR      r0,|L1.120|
000020  f7fffffe          BL       GPIO_SetBits
;;;67     	GPIO_SetBits(GPIO_PORT_LED4,  GPIO_PIN_LED4);
000024  f44f7100          MOV      r1,#0x200
000028  4813              LDR      r0,|L1.120|
00002a  f7fffffe          BL       GPIO_SetBits
;;;68     
;;;69     	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
00002e  2010              MOVS     r0,#0x10
000030  f88d0003          STRB     r0,[sp,#3]
;;;70     	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	
000034  2003              MOVS     r0,#3
000036  f88d0002          STRB     r0,[sp,#2]
;;;71     
;;;72     	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED1;
00003a  2040              MOVS     r0,#0x40
00003c  f8ad0000          STRH     r0,[sp,#0]
;;;73     	GPIO_Init(GPIO_PORT_LED1, &GPIO_InitStructure);
000040  4669              MOV      r1,sp
000042  480d              LDR      r0,|L1.120|
000044  f7fffffe          BL       GPIO_Init
;;;74     
;;;75     	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED2;
000048  2080              MOVS     r0,#0x80
00004a  f8ad0000          STRH     r0,[sp,#0]
;;;76     	GPIO_Init(GPIO_PORT_LED2, &GPIO_InitStructure);
00004e  4669              MOV      r1,sp
000050  4809              LDR      r0,|L1.120|
000052  f7fffffe          BL       GPIO_Init
;;;77     
;;;78     	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED3;
000056  f44f7080          MOV      r0,#0x100
00005a  f8ad0000          STRH     r0,[sp,#0]
;;;79     	GPIO_Init(GPIO_PORT_LED3, &GPIO_InitStructure);
00005e  4669              MOV      r1,sp
000060  4805              LDR      r0,|L1.120|
000062  f7fffffe          BL       GPIO_Init
;;;80     
;;;81     	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED4;
000066  f44f7000          MOV      r0,#0x200
00006a  f8ad0000          STRH     r0,[sp,#0]
;;;82     	GPIO_Init(GPIO_PORT_LED4, &GPIO_InitStructure);
00006e  4669              MOV      r1,sp
000070  4801              LDR      r0,|L1.120|
000072  f7fffffe          BL       GPIO_Init
;;;83     #else
;;;84     	/* 打开GPIOF的时钟 */
;;;85     	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);
;;;86     
;;;87     	/* 配置所有的LED指示灯GPIO为推挽输出模式 */
;;;88     	/* 由于将GPIO设置为输出时,GPIO输出寄存器的值缺省是0,因此会驱动LED点亮
;;;89     		这是我不希望的,因此在改变GPIO为输出前,先修改输出寄存器的值为1 */
;;;90     	GPIO_SetBits(GPIOF,  GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9);
;;;91     	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
;;;92     	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
;;;93     	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
;;;94     	GPIO_Init(GPIOF, &GPIO_InitStructure);
;;;95     #endif
;;;96     }
000076  bd08              POP      {r3,pc}
;;;97     
                          ENDP

                  |L1.120|
                          DCD      0x40011c00

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

                  bsp_LedOff PROC
;;;135    */
;;;136    void bsp_LedOff(uint8_t _no)
000000  1e41              SUBS     r1,r0,#1
;;;137    {
;;;138    	_no--;
000002  b2c8              UXTB     r0,r1
;;;139    	
;;;140    	if (_no == 0)
000004  b918              CBNZ     r0,|L2.14|
;;;141    	{
;;;142    		GPIO_PORT_LED1->BSRR = GPIO_PIN_LED1;
000006  2140              MOVS     r1,#0x40
000008  4a0a              LDR      r2,|L2.52|
00000a  6011              STR      r1,[r2,#0]
00000c  e011              B        |L2.50|
                  |L2.14|
;;;143    	}
;;;144    	else if (_no == 1)
00000e  2801              CMP      r0,#1
000010  d103              BNE      |L2.26|
;;;145    	{
;;;146    		GPIO_PORT_LED2->BSRR = GPIO_PIN_LED2;
000012  2180              MOVS     r1,#0x80
000014  4a07              LDR      r2,|L2.52|
000016  6011              STR      r1,[r2,#0]
000018  e00b              B        |L2.50|
                  |L2.26|
;;;147    	}
;;;148    	else if (_no == 2)
00001a  2802              CMP      r0,#2
00001c  d103              BNE      |L2.38|
;;;149    	{
;;;150    		GPIO_PORT_LED3->BSRR = GPIO_PIN_LED3;
00001e  01c1              LSLS     r1,r0,#7
000020  4a04              LDR      r2,|L2.52|
000022  6011              STR      r1,[r2,#0]
000024  e005              B        |L2.50|
                  |L2.38|
;;;151    	}
;;;152    	else if (_no == 3)
000026  2803              CMP      r0,#3
000028  d103              BNE      |L2.50|
;;;153    	{
;;;154    		GPIO_PORT_LED4->BSRR = GPIO_PIN_LED4;
00002a  f44f7100          MOV      r1,#0x200
00002e  4a01              LDR      r2,|L2.52|
000030  6011              STR      r1,[r2,#0]
                  |L2.50|
;;;155    	}		
;;;156    }
000032  4770              BX       lr
;;;157    
                          ENDP

                  |L2.52|
                          DCD      0x40011c10

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

                  bsp_LedOn PROC
;;;105    */
;;;106    void bsp_LedOn(uint8_t _no)
000000  1e41              SUBS     r1,r0,#1
;;;107    {
;;;108    	_no--;
000002  b2c8              UXTB     r0,r1
;;;109    	
;;;110    	if (_no == 0)
000004  b918              CBNZ     r0,|L3.14|
;;;111    	{
;;;112    		GPIO_PORT_LED1->BRR = GPIO_PIN_LED1;
000006  2140              MOVS     r1,#0x40
000008  4a0a              LDR      r2,|L3.52|
00000a  6011              STR      r1,[r2,#0]
00000c  e011              B        |L3.50|
                  |L3.14|
;;;113    	}
;;;114    	else if (_no == 1)
00000e  2801              CMP      r0,#1
000010  d103              BNE      |L3.26|
;;;115    	{
;;;116    		GPIO_PORT_LED2->BRR = GPIO_PIN_LED2;
000012  2180              MOVS     r1,#0x80
000014  4a07              LDR      r2,|L3.52|
000016  6011              STR      r1,[r2,#0]
000018  e00b              B        |L3.50|
                  |L3.26|
;;;117    	}
;;;118    	else if (_no == 2)
00001a  2802              CMP      r0,#2
00001c  d103              BNE      |L3.38|
;;;119    	{
;;;120    		GPIO_PORT_LED3->BRR = GPIO_PIN_LED3;
00001e  01c1              LSLS     r1,r0,#7
000020  4a04              LDR      r2,|L3.52|
000022  6011              STR      r1,[r2,#0]
000024  e005              B        |L3.50|
                  |L3.38|
;;;121    	}
;;;122    	else if (_no == 3)
000026  2803              CMP      r0,#3
000028  d103              BNE      |L3.50|
;;;123    	{
;;;124    		GPIO_PORT_LED4->BRR = GPIO_PIN_LED4;
00002a  f44f7100          MOV      r1,#0x200
00002e  4a01              LDR      r2,|L3.52|
000030  6011              STR      r1,[r2,#0]
                  |L3.50|
;;;125    	}		
;;;126    }
000032  4770              BX       lr
;;;127    
                          ENDP

                  |L3.52|
                          DCD      0x40011c14

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

                  bsp_LedToggle PROC
;;;165    */
;;;166    void bsp_LedToggle(uint8_t _no)
000000  1e41              SUBS     r1,r0,#1
;;;167    {
;;;168    	_no--;
000002  b2c8              UXTB     r0,r1
;;;169    	
;;;170    	if (_no == 0)
000004  b938              CBNZ     r0,|L4.22|
;;;171    	{
;;;172    		GPIO_PORT_LED1->ODR ^= GPIO_PIN_LED1;
000006  4913              LDR      r1,|L4.84|
000008  6809              LDR      r1,[r1,#0]
00000a  f0810140          EOR      r1,r1,#0x40
00000e  4a12              LDR      r2,|L4.88|
000010  f8c21c0c          STR      r1,[r2,#0xc0c]
000014  e01c              B        |L4.80|
                  |L4.22|
;;;173    	}
;;;174    	else if (_no == 1)
000016  2801              CMP      r0,#1
000018  d107              BNE      |L4.42|
;;;175    	{
;;;176    		GPIO_PORT_LED2->ODR ^= GPIO_PIN_LED2;
00001a  490e              LDR      r1,|L4.84|
00001c  6809              LDR      r1,[r1,#0]
00001e  f0810180          EOR      r1,r1,#0x80
000022  4a0d              LDR      r2,|L4.88|
000024  f8c21c0c          STR      r1,[r2,#0xc0c]
000028  e012              B        |L4.80|
                  |L4.42|
;;;177    	}
;;;178    	else if (_no == 2)
00002a  2802              CMP      r0,#2
00002c  d107              BNE      |L4.62|
;;;179    	{
;;;180    		GPIO_PORT_LED3->ODR ^= GPIO_PIN_LED3;
00002e  4909              LDR      r1,|L4.84|
000030  6809              LDR      r1,[r1,#0]
000032  f4817180          EOR      r1,r1,#0x100
000036  4a08              LDR      r2,|L4.88|
000038  f8c21c0c          STR      r1,[r2,#0xc0c]
00003c  e008              B        |L4.80|
                  |L4.62|
;;;181    	}
;;;182    	else if (_no == 3)
00003e  2803              CMP      r0,#3
000040  d106              BNE      |L4.80|
;;;183    	{
;;;184    		GPIO_PORT_LED4->ODR ^= GPIO_PIN_LED4;
000042  4904              LDR      r1,|L4.84|
000044  6809              LDR      r1,[r1,#0]
000046  f4817100          EOR      r1,r1,#0x200
00004a  4a03              LDR      r2,|L4.88|
00004c  f8c21c0c          STR      r1,[r2,#0xc0c]
                  |L4.80|
;;;185    	}		
;;;186    }
000050  4770              BX       lr
                          ENDP

000052  0000              DCW      0x0000
                  |L4.84|
                          DCD      0x40011c0c
                  |L4.88|
                          DCD      0x40011000

⌨️ 快捷键说明

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