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

📄 stm32f10x_gpio.lst

📁 STM32 "kickstart" program with newlib/stdio like sprintf&printf
💻 LST
📖 第 1 页 / 共 5 页
字号:
 169:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   assert_param(IS_GPIO_MODE(GPIO_InitStruct->GPIO_Mode));
 170:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   assert_param(IS_GPIO_PIN(GPIO_InitStruct->GPIO_Pin));  
 171:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   
 172:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c **** /*---------------------------- GPIO Mode Configuration -----------------------*/
 173:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x0F);
  37              		.loc 1 173 0
  38 0002 CB78     		ldrb	r3, [r1, #3]	@ zero_extendqisi2
  39              		.loc 1 164 0
  40 0004 0446     		mov	r4, r0
 174:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   if ((((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x10)) != 0x00)
  41              		.loc 1 174 0
  42 0006 13F0100F 		tst	r3, #16
  43              		.loc 1 173 0
  44 000a 03F00F06 		and	r6, r3, #15
  45              	.LVL1:
 175:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   { 
 176:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     /* Check the parameters */
 177:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     assert_param(IS_GPIO_SPEED(GPIO_InitStruct->GPIO_Speed));
 178:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     /* Output mode */
 179:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     currentmode |= (uint32_t)GPIO_InitStruct->GPIO_Speed;
  46              		.loc 1 179 0
  47 000e 18BF     		it	ne
  48 0010 8B78     		ldrbne	r3, [r1, #2]	@ zero_extendqisi2
  49              		.loc 1 164 0
  50 0012 0846     		mov	r0, r1
  51              	.LVL2:
  52              		.loc 1 179 0
  53 0014 18BF     		it	ne
  54 0016 1E43     		orrne	r6, r6, r3
 180:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   }
 181:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c **** /*---------------------------- GPIO CRL Configuration ------------------------*/
 182:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   /* Configure the eight low port pins */
 183:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   if (((uint32_t)GPIO_InitStruct->GPIO_Pin & ((uint32_t)0x00FF)) != 0x00)
  55              		.loc 1 183 0
  56 0018 0B78     		ldrb	r3, [r1, #0]	@ zero_extendqisi2
  57 001a 13B3     		cbz	r3, .L3
 184:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   {
 185:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     tmpreg = GPIOx->CRL;
  58              		.loc 1 185 0
  59 001c 2568     		ldr	r5, [r4, #0]
  60              	.LVL3:
  61 001e 4FF0000C 		mov	ip, #0
  62              	.LVL4:
  63              	.L6:
 186:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     for (pinpos = 0x00; pinpos < 0x08; pinpos++)
 187:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     {
 188:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       pos = ((uint32_t)0x01) << pinpos;
  64              		.loc 1 188 0
  65 0022 0123     		movs	r3, #1
  66              	.LVL5:
  67 0024 03FA0CF3 		lsl	r3, r3, ip
  68              	.LVL6:
 189:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       /* Get the port pins position */
 190:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       currentpin = (GPIO_InitStruct->GPIO_Pin) & pos;
  69              		.loc 1 190 0
  70 0028 0288     		ldrh	r2, [r0, #0]
  71 002a 03EA0201 		and	r1, r3, r2
 191:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       if (currentpin == pos)
  72              		.loc 1 191 0
  73 002e 9942     		cmp	r1, r3
  74 0030 11D1     		bne	.L4
 192:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       {
 193:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         pos = pinpos << 2;
 194:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         /* Clear the corresponding low control register bits */
 195:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         pinmask = ((uint32_t)0x0F) << pos;
  75              		.loc 1 195 0
  76 0032 4FEA8C02 		lsl	r2, ip, #2
 196:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         tmpreg &= ~pinmask;
  77              		.loc 1 196 0
  78 0036 0F23     		movs	r3, #15
  79              	.LVL7:
  80 0038 9340     		lsls	r3, r3, r2
 197:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         /* Write the mode configuration in the corresponding bits */
 198:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         tmpreg |= (currentmode << pos);
  81              		.loc 1 198 0
  82 003a 16FA02F2 		lsls	r2, r6, r2
  83              		.loc 1 196 0
  84 003e 25EA0303 		bic	r3, r5, r3
  85              	.LVL8:
  86              		.loc 1 198 0
  87 0042 43EA0205 		orr	r5, r3, r2
  88              	.LVL9:
 199:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         /* Reset the corresponding ODR bit */
 200:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD)
  89              		.loc 1 200 0
  90 0046 C378     		ldrb	r3, [r0, #3]	@ zero_extendqisi2
  91 0048 282B     		cmp	r3, #40
  92 004a 01D1     		bne	.L5
 201:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         {
 202:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****           GPIOx->BRR = (((uint32_t)0x01) << pinpos);
  93              		.loc 1 202 0
  94 004c 6161     		str	r1, [r4, #20]
  95 004e 02E0     		b	.L4
  96              	.L5:
 203:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         }
 204:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         else
 205:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         {
 206:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****           /* Set the corresponding ODR bit */
 207:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****           if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU)
  97              		.loc 1 207 0
  98 0050 482B     		cmp	r3, #72
 208:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****           {
 209:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****             GPIOx->BSRR = (((uint32_t)0x01) << pinpos);
  99              		.loc 1 209 0
 100 0052 08BF     		it	eq
 101 0054 2161     		streq	r1, [r4, #16]
 102              	.LVL10:
 103              	.L4:
 104              		.loc 1 186 0
 105 0056 0CF1010C 		add	ip, ip, #1
 106 005a BCF1080F 		cmp	ip, #8
 107 005e E0D1     		bne	.L6
 210:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****           }
 211:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         }
 212:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       }
 213:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     }
 214:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     GPIOx->CRL = tmpreg;
 108              		.loc 1 214 0
 109 0060 2560     		str	r5, [r4, #0]
 110              	.LVL11:
 111              	.L3:
 215:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   }
 216:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c **** /*---------------------------- GPIO CRH Configuration ------------------------*/
 217:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   /* Configure the eight high port pins */
 218:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   if (GPIO_InitStruct->GPIO_Pin > 0x00FF)
 112              		.loc 1 218 0
 113 0062 0388     		ldrh	r3, [r0, #0]
 114              	.LVL12:
 115 0064 FF2B     		cmp	r3, #255
 116 0066 24D9     		bls	.L11
 219:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****   {
 220:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     tmpreg = GPIOx->CRH;
 117              		.loc 1 220 0
 118 0068 6568     		ldr	r5, [r4, #4]
 119              	.LVL13:
 120 006a 4FF0000C 		mov	ip, #0
 121              	.LVL14:
 122              	.L10:
 221:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     for (pinpos = 0x00; pinpos < 0x08; pinpos++)
 222:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****     {
 223:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       pos = (((uint32_t)0x01) << (pinpos + 0x08));
 123              		.loc 1 223 0
 124 006e 0123     		movs	r3, #1
 125              	.LVL15:
 126 0070 0CF10802 		add	r2, ip, #8
 127 0074 13FA02F1 		lsls	r1, r3, r2
 128              	.LVL16:
 224:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       /* Get the port pins position */
 225:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       currentpin = ((GPIO_InitStruct->GPIO_Pin) & pos);
 129              		.loc 1 225 0
 130 0078 0388     		ldrh	r3, [r0, #0]
 131 007a 01EA0303 		and	r3, r1, r3
 132              	.LVL17:
 226:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       if (currentpin == pos)
 133              		.loc 1 226 0
 134 007e 8B42     		cmp	r3, r1
 135 0080 11D1     		bne	.L8
 227:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****       {
 228:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         pos = pinpos << 2;
 229:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         /* Clear the corresponding high control register bits */
 230:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         pinmask = ((uint32_t)0x0F) << pos;
 136              		.loc 1 230 0
 137 0082 4FEA8C03 		lsl	r3, ip, #2
 138              	.LVL18:
 231:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         tmpreg &= ~pinmask;
 139              		.loc 1 231 0
 140 0086 0F22     		movs	r2, #15
 141 0088 9A40     		lsls	r2, r2, r3
 232:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         /* Write the mode configuration in the corresponding bits */
 233:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         tmpreg |= (currentmode << pos);
 142              		.loc 1 233 0
 143 008a 16FA03F3 		lsls	r3, r6, r3
 144              		.loc 1 231 0
 145 008e 25EA0202 		bic	r2, r5, r2
 146              	.LVL19:
 147              		.loc 1 233 0
 148 0092 42EA0305 		orr	r5, r2, r3
 149              	.LVL20:
 234:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         /* Reset the corresponding ODR bit */
 235:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD)
 150              		.loc 1 235 0
 151 0096 C378     		ldrb	r3, [r0, #3]	@ zero_extendqisi2
 152 0098 282B     		cmp	r3, #40
 236:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         {
 237:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****           GPIOx->BRR = (((uint32_t)0x01) << (pinpos + 0x08));
 153              		.loc 1 237 0
 154 009a 08BF     		it	eq
 155 009c 6161     		streq	r1, [r4, #20]
 238:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         }
 239:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         /* Set the corresponding ODR bit */
 240:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU)
 156              		.loc 1 240 0
 157 009e C378     		ldrb	r3, [r0, #3]	@ zero_extendqisi2
 158 00a0 482B     		cmp	r3, #72
 241:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****         {
 242:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c ****           GPIOx->BSRR = (((uint32_t)0x01) << (pinpos + 0x08));

⌨️ 快捷键说明

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