📄 stm32f10x_flash.lst
字号:
161 |----------------------------------------------------------------------------------------------------------------------------------|
162 |FLASH_EraseOptionBytes | Yes | Yes | No change |
163 |----------------------------------------------------------------------------------------------------------------------------------|
164 |FLASH_ProgramWord | Yes | Yes | Updated to program up to 1MByte (depending on the used device) |
165 |----------------------------------------------------------------------------------------------------------------------------------|
166 |FLASH_ProgramHalfWord | Yes | Yes | Updated to program up to 1MByte (depending on the used device) |
167 |----------------------------------------------------------------------------------------------------------------------------------|
168 |FLASH_ProgramOptionByteData | Yes | Yes | No change |
169 |----------------------------------------------------------------------------------------------------------------------------------|
170 |FLASH_EnableWriteProtection | Yes | Yes | No change |
171 |----------------------------------------------------------------------------------------------------------------------------------|
172 |FLASH_ReadOutProtection | Yes | Yes | No change |
173 |----------------------------------------------------------------------------------------------------------------------------------|
174 |FLASH_UserOptionByteConfig | Yes | Yes | No change |
175 |----------------------------------------------------------------------------------------------------------------------------------|
176 |FLASH_GetUserOptionByte | Yes | Yes | No change |
177 |----------------------------------------------------------------------------------------------------------------------------------|
178 |FLASH_GetWriteProtectionOptionByte | Yes | Yes | No change |
179 |----------------------------------------------------------------------------------------------------------------------------------|
180 |FLASH_GetReadOutProtectionStatus | Yes | Yes | No change |
181 |----------------------------------------------------------------------------------------------------------------------------------|
182 |FLASH_GetPrefetchBufferStatus | Yes | Yes | No change |
183 |----------------------------------------------------------------------------------------------------------------------------------|
184 |FLASH_ITConfig | Yes | Yes | - For STM32F10x_XL devices: enable Bank1 and Bank2's interrupts|
185 | | | | - For other devices: enable Bank1's interrupts |
186 |----------------------------------------------------------------------------------------------------------------------------------|
187 |FLASH_GetFlagStatus | Yes | Yes | - For STM32F10x_XL devices: return Bank1 and Bank2's flag status|
188 | | | | - For other devices: return Bank1's flag status |
189 |----------------------------------------------------------------------------------------------------------------------------------|
190 |FLASH_ClearFlag | Yes | Yes | - For STM32F10x_XL devices: clear Bank1 and Bank2's flag |
191 | | | | - For other devices: clear Bank1's flag |
192 |----------------------------------------------------------------------------------------------------------------------------------|
193 |FLASH_GetStatus | Yes | Yes | - Return the status of Bank1 (for all devices) |
194 | | | | equivalent to FLASH_GetBank1Status function |
195 |----------------------------------------------------------------------------------------------------------------------------------|
196 |FLASH_WaitForLastOperation | Yes | Yes | - Wait for Bank1 last operation (for all devices) |
197 | | | | equivalent to: FLASH_WaitForLastBank1Operation function |
198 +----------------------------------------------------------------------------------------------------------------------------------+
199
200 ************************************************************************************************************************
201 * New functions used for all STM32F10x devices to manage Bank1: *
202 * - These functions are mainly useful for STM32F10x_XL density devices, to have separate control for Bank1 and bank2 *
203 * - For other devices, these functions are optional (covered by functions listed above) *
204 ************************************************************************************************************************
205 +----------------------------------------------------------------------------------------------------------------------------------+
206 | Functions prototypes |STM32F10x_XL|Other STM32F10x| Comments |
207 | | devices | devices | |
208 |----------------------------------------------------------------------------------------------------------------------------------|
209 | FLASH_UnlockBank1 | Yes | Yes | - Unlock Bank1 |
210 |----------------------------------------------------------------------------------------------------------------------------------|
211 |FLASH_LockBank1 | Yes | Yes | - Lock Bank1 |
212 |----------------------------------------------------------------------------------------------------------------------------------|
213 | FLASH_EraseAllBank1Pages | Yes | Yes | - Erase all pages in Bank1 |
214 |----------------------------------------------------------------------------------------------------------------------------------|
215 | FLASH_GetBank1Status | Yes | Yes | - Return the status of Bank1 |
216 |----------------------------------------------------------------------------------------------------------------------------------|
217 | FLASH_WaitForLastBank1Operation | Yes | Yes | - Wait for Bank1 last operation |
218 +----------------------------------------------------------------------------------------------------------------------------------+
219
220 *****************************************************************************
221 * New Functions used only with STM32F10x_XL density devices to manage Bank2 *
222 *****************************************************************************
223 +----------------------------------------------------------------------------------------------------------------------------------+
224 | Functions prototypes |STM32F10x_XL|Other STM32F10x| Comments |
225 | | devices | devices | |
226 |----------------------------------------------------------------------------------------------------------------------------------|
227 | FLASH_UnlockBank2 | Yes | No | - Unlock Bank2 |
228 |----------------------------------------------------------------------------------------------------------------------------------|
229 |FLASH_LockBank2 | Yes | No | - Lock Bank2 |
230 |----------------------------------------------------------------------------------------------------------------------------------|
231 | FLASH_EraseAllBank2Pages | Yes | No | - Erase all pages in Bank2 |
232 |----------------------------------------------------------------------------------------------------------------------------------|
233 | FLASH_GetBank2Status | Yes | No | - Return the status of Bank2 |
234 |----------------------------------------------------------------------------------------------------------------------------------|
235 | FLASH_WaitForLastBank2Operation | Yes | No | - Wait for Bank2 last operation |
236 |----------------------------------------------------------------------------------------------------------------------------------|
237 | FLASH_BootConfig | Yes | No | - Configure to boot from Bank1 or Bank2 |
238 +----------------------------------------------------------------------------------------------------------------------------------+
239 @endcode
240 */
241
242
243 /**
244 * @brief Sets the code latency value.
245 * @note This function can be used for all STM32F10x devices.
246 * @param FLASH_Latency: specifies the FLASH Latency value.
247 * This parameter can be one of the following values:
248 * @arg FLASH_Latency_0: FLASH Zero Latency cycle
249 * @arg FLASH_Latency_1: FLASH One Latency cycle
250 * @arg FLASH_Latency_2: FLASH Two Latency cycles
251 * @retval None
252 */
\ In section .text, align 2, keep-with-next
253 void FLASH_SetLatency(uint32_t FLASH_Latency)
254 {
255 uint32_t tmpreg = 0;
\ FLASH_SetLatency:
\ 00000000 0021 MOVS R1,#+0
256
257 /* Check the parameters */
258 assert_param(IS_FLASH_LATENCY(FLASH_Latency));
259
260 /* Read the ACR register */
261 tmpreg = FLASH->ACR;
\ 00000002 ........ LDR.W R2,??DataTable25 ;; 0x40022000
\ 00000006 1268 LDR R2,[R2, #+0]
\ 00000008 1100 MOVS R1,R2
262
263 /* Sets the Latency value */
264 tmpreg &= ACR_LATENCY_Mask;
\ 0000000A 11F03801 ANDS R1,R1,#0x38
265 tmpreg |= FLASH_Latency;
\ 0000000E 0143 ORRS R1,R0,R1
266
267 /* Write the ACR register */
268 FLASH->ACR = tmpreg;
\ 00000010 ........ LDR.W R2,??DataTable25 ;; 0x40022000
\ 00000014 1160 STR R1,[R2, #+0]
269 }
\ 00000016 7047 BX LR ;; return
270
271 /**
272 * @brief Enables or disables the Half cycle flash access.
273 * @note This function can be used for all STM32F10x devices.
274 * @param FLASH_HalfCycleAccess: specifies the FLASH Half cycle Access mode.
275 * This parameter can be one of the following values:
276 * @arg FLASH_HalfCycleAccess_Enable: FLASH Half Cycle Enable
277 * @arg FLASH_HalfCycleAccess_Disable: FLASH Half Cycle Disable
278 * @retval None
279 */
\ In section .text, align 2, keep-with-next
280 void FLASH_HalfCycleAccessCmd(uint32_t FLASH_HalfCycleAccess)
281 {
282 /* Check the parameters */
283 assert_param(IS_FLASH_HALFCYCLEACCESS_STATE(FLASH_HalfCycleAccess));
284
285 /* Enable or disable the Half cycle access */
286 FLASH->ACR &= ACR_HLFCYA_Mask;
\ FLASH_HalfCycleAccessCmd:
\ 00000000 ........ LDR.W R1,??DataTable25 ;; 0x40022000
\ 00000004 0968 LDR R1,[R1, #+0]
\ 00000006 31F00801 BICS R1,R1,#0x8
\ 0000000A ........ LDR.W R2,??DataTable25 ;; 0x40022000
\ 0000000E 1160 STR R1,[R2, #+0]
287 FLASH->ACR |= FLASH_HalfCycleAccess;
\ 00000010 ........ LDR.W R1,??DataTable25 ;; 0x40022000
\ 00000014 0968 LDR R1,[R1, #+0]
\ 00000016 0143 ORRS R1,R0,R1
\ 00000018 ........ LDR.W R2,??DataTable25 ;; 0x40022000
\ 0000001C 1160 STR R1,[R2, #+0]
288 }
\ 0000001E 7047 BX LR ;; return
289
290 /**
291 * @brief Enables or disables the Prefetch Buffer.
292 * @note This function can be used for all STM32F10x devices.
293 * @param FLASH_PrefetchBuffer: specifies the Prefetch buffer status.
294 * This parameter can be one of the following values:
295 * @arg FLASH_PrefetchBuffer_Enable: FLASH Prefetch Buffer Enable
296 * @arg FLASH_PrefetchBuffer_Disable: FLASH Prefetch Buffer Disable
297 * @retval None
298 */
\ In section .text, align 2, keep-with-next
299 void FLASH_PrefetchBufferCmd(uint32_t FLASH_PrefetchBuffer)
300 {
301 /* Check the parameters */
302 assert_param(IS_FLASH_PREFETCHBUFFER_STATE(FLASH_PrefetchBuffer));
303
304 /* Enable or disable the Prefetch Buffer */
305 FLASH->ACR &= ACR_PRFTBE_Mask;
\ FLASH_PrefetchBufferCmd:
\ 00000000 ........ LDR.W R1,??DataTable25 ;; 0x40022000
\ 00000004 0968 LDR R1,[R1, #+0]
\ 00000006 31F01001 BICS R1,R1,#0x10
\ 0000000A ........ LDR.W R2,??DataTable25 ;; 0x40022000
\ 0000000E 1160 STR R1,[R2, #+0]
306 FLASH->ACR |= FLASH_PrefetchBuffer;
\ 00000010 ........ LDR.W R1,??DataTable25 ;; 0x40022000
\ 00000014 0968 LDR R1,[R1, #+0]
\ 00000016 0143 ORRS R1,R0,R1
\ 00000018 ........ LDR.W R2,??DataTable25 ;; 0x40022000
\ 0000001C 1160 STR R1,[R2, #+0]
307 }
\ 0000001E 7047 BX LR ;; return
308
309 /**
310 * @brief Unlocks the FLASH Program Erase Controller.
311 * @note This function can be used for all STM32F10x devices.
312 * - For STM32F10X_XL devices this function unlocks Bank1 and Bank2.
313 * - For all other devices it unlocks Bank1 and it is equivalent
314 * to FLASH_UnlockBank1 function..
315 * @param None
316 * @retval None
317 */
\ In section .text, align 2, keep-with-next
318 void FLASH_Unlock(void)
319 {
320 /* Authorize the FPEC of Bank1 Access */
321 FLASH->KEYR = FLASH_KEY1;
\ FLASH_Unlock:
\ 00000000 ........ LDR.W R0,??DataTable25_1 ;; 0x40022004
\ 00000004 ........ LDR.W R1,??DataTable25_2 ;; 0x45670123
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -