?? stm32f10x_fsmc.txt
字號:
000022 401a ANDS r2,r2,r3
000024 f04f4320 MOV r3,#0xa0000000
000028 f8432020 STR r2,[r3,r0,LSL #2]
|L12.44|
;;;481 }
;;;482 }
00002c 4770 BX lr
;;;483
ENDP
00002e 0000 DCW 0x0000
|L12.48|
DCD 0x000ffffe
AREA ||i.FSMC_NORSRAMDeInit||, CODE, READONLY, ALIGN=1
FSMC_NORSRAMDeInit PROC
;;;100 */
;;;101 void FSMC_NORSRAMDeInit(uint32_t FSMC_Bank)
000000 b930 CBNZ r0,|L13.16|
;;;102 {
;;;103 /* Check the parameter */
;;;104 assert_param(IS_FSMC_NORSRAM_BANK(FSMC_Bank));
;;;105
;;;106 /* FSMC_Bank1_NORSRAM1 */
;;;107 if(FSMC_Bank == FSMC_Bank1_NORSRAM1)
;;;108 {
;;;109 FSMC_Bank1->BTCR[FSMC_Bank] = 0x000030DB;
000002 f24301db MOV r1,#0x30db
000006 f04f4220 MOV r2,#0xa0000000
00000a f8421020 STR r1,[r2,r0,LSL #2]
00000e e005 B |L13.28|
|L13.16|
;;;110 }
;;;111 /* FSMC_Bank1_NORSRAM2, FSMC_Bank1_NORSRAM3 or FSMC_Bank1_NORSRAM4 */
;;;112 else
;;;113 {
;;;114 FSMC_Bank1->BTCR[FSMC_Bank] = 0x000030D2;
000010 f24301d2 MOV r1,#0x30d2
000014 f04f4220 MOV r2,#0xa0000000
000018 f8421020 STR r1,[r2,r0,LSL #2]
|L13.28|
;;;115 }
;;;116 FSMC_Bank1->BTCR[FSMC_Bank + 1] = 0x0FFFFFFF;
00001c f06f4270 MVN r2,#0xf0000000
000020 1c41 ADDS r1,r0,#1
000022 f04f4320 MOV r3,#0xa0000000
000026 f8432021 STR r2,[r3,r1,LSL #2]
;;;117 FSMC_Bank1E->BWTR[FSMC_Bank] = 0x0FFFFFFF;
00002a 4611 MOV r1,r2
00002c 461a MOV r2,r3
00002e eb020280 ADD r2,r2,r0,LSL #2
000032 f8c21104 STR r1,[r2,#0x104]
;;;118 }
000036 4770 BX lr
;;;119
ENDP
AREA ||i.FSMC_NORSRAMInit||, CODE, READONLY, ALIGN=1
FSMC_NORSRAMInit PROC
;;;174 */
;;;175 void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct)
000000 e9d01201 LDRD r1,r2,[r0,#4]
;;;176 {
;;;177 /* Check the parameters */
;;;178 assert_param(IS_FSMC_NORSRAM_BANK(FSMC_NORSRAMInitStruct->FSMC_Bank));
;;;179 assert_param(IS_FSMC_MUX(FSMC_NORSRAMInitStruct->FSMC_DataAddressMux));
;;;180 assert_param(IS_FSMC_MEMORY(FSMC_NORSRAMInitStruct->FSMC_MemoryType));
;;;181 assert_param(IS_FSMC_MEMORY_WIDTH(FSMC_NORSRAMInitStruct->FSMC_MemoryDataWidth));
;;;182 assert_param(IS_FSMC_BURSTMODE(FSMC_NORSRAMInitStruct->FSMC_BurstAccessMode));
;;;183 assert_param(IS_FSMC_WAIT_POLARITY(FSMC_NORSRAMInitStruct->FSMC_WaitSignalPolarity));
;;;184 assert_param(IS_FSMC_WRAP_MODE(FSMC_NORSRAMInitStruct->FSMC_WrapMode));
;;;185 assert_param(IS_FSMC_WAIT_SIGNAL_ACTIVE(FSMC_NORSRAMInitStruct->FSMC_WaitSignalActive));
;;;186 assert_param(IS_FSMC_WRITE_OPERATION(FSMC_NORSRAMInitStruct->FSMC_WriteOperation));
;;;187 assert_param(IS_FSMC_WAITE_SIGNAL(FSMC_NORSRAMInitStruct->FSMC_WaitSignal));
;;;188 assert_param(IS_FSMC_EXTENDED_MODE(FSMC_NORSRAMInitStruct->FSMC_ExtendedMode));
;;;189 assert_param(IS_FSMC_WRITE_BURST(FSMC_NORSRAMInitStruct->FSMC_WriteBurst));
;;;190 assert_param(IS_FSMC_ADDRESS_SETUP_TIME(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressSetupTime));
;;;191 assert_param(IS_FSMC_ADDRESS_HOLD_TIME(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressHoldTime));
;;;192 assert_param(IS_FSMC_DATASETUP_TIME(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataSetupTime));
;;;193 assert_param(IS_FSMC_TURNAROUND_TIME(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_BusTurnAroundDuration));
;;;194 assert_param(IS_FSMC_CLK_DIV(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_CLKDivision));
;;;195 assert_param(IS_FSMC_DATA_LATENCY(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataLatency));
;;;196 assert_param(IS_FSMC_ACCESS_MODE(FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AccessMode));
;;;197
;;;198 /* Bank1 NOR/SRAM control register configuration */
;;;199 FSMC_Bank1->BTCR[FSMC_NORSRAMInitStruct->FSMC_Bank] =
000004 4311 ORRS r1,r1,r2
000006 68c2 LDR r2,[r0,#0xc]
000008 4311 ORRS r1,r1,r2
00000a 6902 LDR r2,[r0,#0x10]
00000c 4311 ORRS r1,r1,r2
00000e 6942 LDR r2,[r0,#0x14]
000010 4311 ORRS r1,r1,r2
000012 6982 LDR r2,[r0,#0x18]
000014 4311 ORRS r1,r1,r2
000016 69c2 LDR r2,[r0,#0x1c]
000018 4311 ORRS r1,r1,r2
00001a 6a02 LDR r2,[r0,#0x20]
00001c 4311 ORRS r1,r1,r2
00001e 6a42 LDR r2,[r0,#0x24]
000020 4311 ORRS r1,r1,r2
000022 6a82 LDR r2,[r0,#0x28]
000024 4311 ORRS r1,r1,r2
000026 6ac2 LDR r2,[r0,#0x2c]
000028 4311 ORRS r1,r1,r2
00002a f04f4320 MOV r3,#0xa0000000
00002e 6802 LDR r2,[r0,#0]
000030 f8431022 STR r1,[r3,r2,LSL #2]
;;;200 (uint32_t)FSMC_NORSRAMInitStruct->FSMC_DataAddressMux |
;;;201 FSMC_NORSRAMInitStruct->FSMC_MemoryType |
;;;202 FSMC_NORSRAMInitStruct->FSMC_MemoryDataWidth |
;;;203 FSMC_NORSRAMInitStruct->FSMC_BurstAccessMode |
;;;204 FSMC_NORSRAMInitStruct->FSMC_WaitSignalPolarity |
;;;205 FSMC_NORSRAMInitStruct->FSMC_WrapMode |
;;;206 FSMC_NORSRAMInitStruct->FSMC_WaitSignalActive |
;;;207 FSMC_NORSRAMInitStruct->FSMC_WriteOperation |
;;;208 FSMC_NORSRAMInitStruct->FSMC_WaitSignal |
;;;209 FSMC_NORSRAMInitStruct->FSMC_ExtendedMode |
;;;210 FSMC_NORSRAMInitStruct->FSMC_WriteBurst;
;;;211 if(FSMC_NORSRAMInitStruct->FSMC_MemoryType == FSMC_MemoryType_NOR)
000034 6881 LDR r1,[r0,#8]
000036 2908 CMP r1,#8
000038 d108 BNE |L14.76|
;;;212 {
;;;213 FSMC_Bank1->BTCR[FSMC_NORSRAMInitStruct->FSMC_Bank] |= (uint32_t)BCR_FACCEN_Set;
00003a 461a MOV r2,r3
00003c 6801 LDR r1,[r0,#0]
00003e f8521021 LDR r1,[r2,r1,LSL #2]
000042 f0410140 ORR r1,r1,#0x40
000046 6802 LDR r2,[r0,#0]
000048 f8431022 STR r1,[r3,r2,LSL #2]
|L14.76|
;;;214 }
;;;215 /* Bank1 NOR/SRAM timing register configuration */
;;;216 FSMC_Bank1->BTCR[FSMC_NORSRAMInitStruct->FSMC_Bank+1] =
00004c 6b01 LDR r1,[r0,#0x30]
00004e 6809 LDR r1,[r1,#0]
000050 6b02 LDR r2,[r0,#0x30]
000052 6852 LDR r2,[r2,#4]
000054 ea411102 ORR r1,r1,r2,LSL #4
000058 6b02 LDR r2,[r0,#0x30]
00005a 6892 LDR r2,[r2,#8]
00005c ea412102 ORR r1,r1,r2,LSL #8
000060 6b02 LDR r2,[r0,#0x30]
000062 68d2 LDR r2,[r2,#0xc]
000064 ea414102 ORR r1,r1,r2,LSL #16
000068 6b02 LDR r2,[r0,#0x30]
00006a 6912 LDR r2,[r2,#0x10]
00006c ea415102 ORR r1,r1,r2,LSL #20
000070 6b02 LDR r2,[r0,#0x30]
000072 6952 LDR r2,[r2,#0x14]
000074 ea416202 ORR r2,r1,r2,LSL #24
000078 6b01 LDR r1,[r0,#0x30]
00007a 6989 LDR r1,[r1,#0x18]
00007c 430a ORRS r2,r2,r1
00007e 6801 LDR r1,[r0,#0]
000080 1c49 ADDS r1,r1,#1
000082 f04f4320 MOV r3,#0xa0000000
000086 f8432021 STR r2,[r3,r1,LSL #2]
;;;217 (uint32_t)FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressSetupTime |
;;;218 (FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressHoldTime << 4) |
;;;219 (FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataSetupTime << 8) |
;;;220 (FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_BusTurnAroundDuration << 16) |
;;;221 (FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_CLKDivision << 20) |
;;;222 (FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataLatency << 24) |
;;;223 FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AccessMode;
;;;224
;;;225
;;;226 /* Bank1 NOR/SRAM timing register for write configuration, if extended mode is used */
;;;227 if(FSMC_NORSRAMInitStruct->FSMC_ExtendedMode == FSMC_ExtendedMode_Enable)
00008a 6a81 LDR r1,[r0,#0x28]
00008c f5b14f80 CMP r1,#0x4000
000090 d11a BNE |L14.200|
;;;228 {
;;;229 assert_param(IS_FSMC_ADDRESS_SETUP_TIME(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AddressSetupTime));
;;;230 assert_param(IS_FSMC_ADDRESS_HOLD_TIME(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AddressHoldTime));
;;;231 assert_param(IS_FSMC_DATASETUP_TIME(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_DataSetupTime));
;;;232 assert_param(IS_FSMC_CLK_DIV(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_CLKDivision));
;;;233 assert_param(IS_FSMC_DATA_LATENCY(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_DataLatency));
;;;234 assert_param(IS_FSMC_ACCESS_MODE(FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AccessMode));
;;;235 FSMC_Bank1E->BWTR[FSMC_NORSRAMInitStruct->FSMC_Bank] =
000092 6b41 LDR r1,[r0,#0x34]
000094 6809 LDR r1,[r1,#0]
000096 6b42 LDR r2,[r0,#0x34]
000098 6852 LDR r2,[r2,#4]
00009a ea411102 ORR r1,r1,r2,LSL #4
00009e 6b42 LDR r2,[r0,#0x34]
0000a0 6892 LDR r2,[r2,#8]
0000a2 ea412102 ORR r1,r1,r2,LSL #8
0000a6 6b42 LDR r2,[r0,#0x34]
0000a8 6912 LDR r2,[r2,#0x10]
0000aa ea415102 ORR r1,r1,r2,LSL #20
0000ae 6b42 LDR r2,[r0,#0x34]
0000b0 6952 LDR r2,[r2,#0x14]
0000b2 ea416102 ORR r1,r1,r2,LSL #24
0000b6 6b42 LDR r2,[r0,#0x34]
0000b8 6992 LDR r2,[r2,#0x18]
0000ba 4311 ORRS r1,r1,r2
0000bc 6802 LDR r2,[r0,#0]
0000be eb030282 ADD r2,r3,r2,LSL #2
0000c2 f8c21104 STR r1,[r2,#0x104]
0000c6 e008 B |L14.218|
|L14.200|
;;;236 (uint32_t)FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AddressSetupTime |
;;;237 (FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AddressHoldTime << 4 )|
;;;238 (FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_DataSetupTime << 8) |
;;;239 (FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_CLKDivision << 20) |
;;;240 (FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_DataLatency << 24) |
;;;241 FSMC_NORSRAMInitStruct->FSMC_WriteTimingStruct->FSMC_AccessMode;
;;;242 }
;;;243 else
;;;244 {
;;;245 FSMC_Bank1E->BWTR[FSMC_NORSRAMInitStruct->FSMC_Bank] = 0x0FFFFFFF;
0000c8 f06f4170 MVN r1,#0xf0000000
0000cc f04f4320 MOV r3,#0xa0000000
0000d0 6802 LDR r2,[r0,#0]
0000d2 eb030282 ADD r2,r3,r2,LSL #2
0000d6 f8c21104 STR r1,[r2,#0x104]
|L14.218|
;;;246 }
;;;247 }
0000da 4770 BX lr
;;;248
ENDP
AREA ||i.FSMC_NORSRAMStructInit||, CODE, READONLY, ALIGN=1
FSMC_NORSRAMStructInit PROC
;;;372 */
;;;373 void FSMC_NORSRAMStructInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct)
000000 2100 MOVS r1,#0
;;;374 {
;;;375 /* Reset NOR/SRAM Init structure parameters values */
;;;376 FSMC_NORSRAMInitStruct->FSMC_Bank = FSMC_Bank1_NORSRAM1;
000002 6001 STR r1,[r0,#0]
;;;377 FSMC_NORSRAMInitStruct->FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;
000004 2102 MOVS r1,#2
000006 6041 STR r1,[r0,#4]
;;;378 FSMC_NORSRAMInitStruct->FSMC_MemoryType = FSMC_MemoryType_SRAM;
000008 2100 MOVS r1,#0
00000a 6081 STR r1,[r0,#8]
;;;379 FSMC_NORSRAMInitStruct->FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;
00000c 60c1 STR r1,[r0,#0xc]
;;;380 FSMC_NORSRAMInitStruct->FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
00000e 6101 STR r1,[r0,#0x10]
;;;381 FSMC_NORSRAMInitStruct->FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
000010 6141 STR r1,[r0,#0x14]
;;;382 FSMC_NORSRAMInitStruct->FSMC_WrapMode = FSMC_WrapMode_Disable;
000012 6181 STR r1,[r0,#0x18]
;;;383 FSMC_NORSRAMInitStruct->FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
000014 61c1 STR r1,[r0,#0x1c]
;;;384 FSMC_NORSRAMInitStruct->FSMC_WriteOperation = FSMC_WriteOperation_Enable;
000016 f44f5180 MOV r1,#0x1000
00001a 6201 STR r1,[r0,#0x20]
;;;385 FSMC_NORSRAMInitStruct->FSMC_WaitSignal = FSMC_WaitSignal_Enable;
00001c 0049 LSLS r1,r1,#1
00001e 6241 STR r1,[r0,#0x24]
;;;386 FSMC_NORSRAMInitStruct->FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
000020 2100 MOVS r1,#0
000022 6281 STR r1,[r0,#0x28]
;;;387 FSMC_NORSRAMInitStruct->FSMC_WriteBurst = FSMC_WriteBurst_Disable;
000024 62c1 STR r1,[r0,#0x2c]
;;;388 FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressSetupTime = 0xF;
000026 210f MOVS r1,#0xf
000028 6b02 LDR r2,[r0,#0x30]
00002a 6011 STR r1,[r2,#0]
;;;389 FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_AddressHoldTime = 0xF;
00002c 6b02 LDR r2,[r0,#0x30]
00002e 6051 STR r1,[r2,#4]
;;;390 FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_DataSetupTime = 0xFF;
000030 21ff MOVS r1,#0xff
000032 6b02 LDR r2,[r0,#0x30]
000034 6091 STR r1,[r2,#8]
;;;391 FSMC_NORSRAMInitStruct->FSMC_ReadWriteTimingStruct->FSMC_BusTurnAroundDuration = 0xF;
000036 210f MOVS r1,#0xf
000038 6b02 LDR r2,[r0,#0x30]
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -