📄 misc.txt
字号:
; generated by ARM C/C++ Compiler, 4.1 [Build 561]
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Flash\Obj\misc.o --depend=.\Flash\Obj\misc.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 ..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c]
THUMB
AREA ||i.NVIC_Init||, CODE, READONLY, ALIGN=2
NVIC_Init PROC
;;;111 */
;;;112 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
000000 b570 PUSH {r4-r6,lr}
;;;113 {
;;;114 uint32_t tmppriority = 0x00, tmppre = 0x00, tmpsub = 0x0F;
000002 2100 MOVS r1,#0
000004 2300 MOVS r3,#0
000006 220f MOVS r2,#0xf
;;;115
;;;116 /* Check the parameters */
;;;117 assert_param(IS_FUNCTIONAL_STATE(NVIC_InitStruct->NVIC_IRQChannelCmd));
;;;118 assert_param(IS_NVIC_PREEMPTION_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority));
;;;119 assert_param(IS_NVIC_SUB_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelSubPriority));
;;;120
;;;121 if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE)
000008 78c4 LDRB r4,[r0,#3]
00000a b34c CBZ r4,|L1.96|
;;;122 {
;;;123 /* Compute the Corresponding IRQ Priority --------------------------------*/
;;;124 tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700))>> 0x08;
00000c 4c1a LDR r4,|L1.120|
00000e 6824 LDR r4,[r4,#0]
000010 f40464e0 AND r4,r4,#0x700
000014 f5c464e0 RSB r4,r4,#0x700
000018 ea4f2114 LSR r1,r4,#8
;;;125 tmppre = (0x4 - tmppriority);
00001c f1c10304 RSB r3,r1,#4
;;;126 tmpsub = tmpsub >> tmppriority;
000020 fa22f201 LSR r2,r2,r1
;;;127
;;;128 tmppriority = (uint32_t)NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
000024 7844 LDRB r4,[r0,#1]
000026 fa04f103 LSL r1,r4,r3
;;;129 tmppriority |= NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub;
00002a 7884 LDRB r4,[r0,#2]
00002c ea040402 AND r4,r4,r2
000030 ea440101 ORR r1,r4,r1
;;;130 tmppriority = tmppriority << 0x04;
000034 ea4f1101 LSL r1,r1,#4
;;;131
;;;132 NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;
000038 4c10 LDR r4,|L1.124|
00003a 7806 LDRB r6,[r0,#0]
00003c 55a1 STRB r1,[r4,r6]
;;;133
;;;134 /* Enable the Selected IRQ Channels --------------------------------------*/
;;;135 NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
00003e 7804 LDRB r4,[r0,#0]
000040 f004051f AND r5,r4,#0x1f
000044 f04f0401 MOV r4,#1
000048 fa04f405 LSL r4,r4,r5
00004c 7805 LDRB r5,[r0,#0]
00004e ea4f1565 ASR r5,r5,#5
000052 f04f26e0 MOV r6,#0xe000e000
000056 eb060585 ADD r5,r6,r5,LSL #2
00005a f8c54100 STR r4,[r5,#0x100]
00005e e009 B |L1.116|
|L1.96|
;;;136 (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
;;;137 }
;;;138 else
;;;139 {
;;;140 /* Disable the Selected IRQ Channels -------------------------------------*/
;;;141 NVIC->ICER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
000060 7804 LDRB r4,[r0,#0]
000062 f004051f AND r5,r4,#0x1f
000066 2401 MOVS r4,#1
000068 40ac LSLS r4,r4,r5
00006a 4d05 LDR r5,|L1.128|
00006c 7806 LDRB r6,[r0,#0]
00006e 1176 ASRS r6,r6,#5
000070 f8454026 STR r4,[r5,r6,LSL #2]
|L1.116|
;;;142 (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
;;;143 }
;;;144 }
000074 bd70 POP {r4-r6,pc}
;;;145
ENDP
000076 0000 DCW 0x0000
|L1.120|
DCD 0xe000ed0c
|L1.124|
DCD 0xe000e400
|L1.128|
DCD 0xe000e180
AREA ||i.NVIC_PriorityGroupConfig||, CODE, READONLY, ALIGN=2
NVIC_PriorityGroupConfig PROC
;;;95 */
;;;96 void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)
000000 4902 LDR r1,|L2.12|
;;;97 {
;;;98 /* Check the parameters */
;;;99 assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));
;;;100
;;;101 /* Set the PRIGROUP[10:8] bits according to NVIC_PriorityGroup value */
;;;102 SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup;
000002 4301 ORRS r1,r1,r0
000004 4a02 LDR r2,|L2.16|
000006 6011 STR r1,[r2,#0]
;;;103 }
000008 4770 BX lr
;;;104
ENDP
00000a 0000 DCW 0x0000
|L2.12|
DCD 0x05fa0000
|L2.16|
DCD 0xe000ed0c
AREA ||i.NVIC_SetVectorTable||, CODE, READONLY, ALIGN=2
NVIC_SetVectorTable PROC
;;;155 */
;;;156 void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset)
000000 4a02 LDR r2,|L3.12|
;;;157 {
;;;158 /* Check the parameters */
;;;159 assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
;;;160 assert_param(IS_NVIC_OFFSET(Offset));
;;;161
;;;162 SCB->VTOR = NVIC_VectTab | (Offset & (uint32_t)0x1FFFFF80);
000002 400a ANDS r2,r2,r1
000004 4302 ORRS r2,r2,r0
000006 4b02 LDR r3,|L3.16|
000008 601a STR r2,[r3,#0]
;;;163 }
00000a 4770 BX lr
;;;164
ENDP
|L3.12|
DCD 0x1fffff80
|L3.16|
DCD 0xe000ed08
AREA ||i.NVIC_SystemLPConfig||, CODE, READONLY, ALIGN=2
NVIC_SystemLPConfig PROC
;;;174 */
;;;175 void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState)
000000 b141 CBZ r1,|L4.20|
;;;176 {
;;;177 /* Check the parameters */
;;;178 assert_param(IS_NVIC_LP(LowPowerMode));
;;;179 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;180
;;;181 if (NewState != DISABLE)
;;;182 {
;;;183 SCB->SCR |= LowPowerMode;
000002 4a09 LDR r2,|L4.40|
000004 6812 LDR r2,[r2,#0]
000006 ea420200 ORR r2,r2,r0
00000a f04f23e0 MOV r3,#0xe000e000
00000e f8c32d10 STR r2,[r3,#0xd10]
000012 e007 B |L4.36|
|L4.20|
;;;184 }
;;;185 else
;;;186 {
;;;187 SCB->SCR &= (uint32_t)(~(uint32_t)LowPowerMode);
000014 4a04 LDR r2,|L4.40|
000016 6812 LDR r2,[r2,#0]
000018 ea220200 BIC r2,r2,r0
00001c f04f23e0 MOV r3,#0xe000e000
000020 f8c32d10 STR r2,[r3,#0xd10]
|L4.36|
;;;188 }
;;;189 }
000024 4770 BX lr
;;;190
ENDP
000026 0000 DCW 0x0000
|L4.40|
DCD 0xe000ed10
AREA ||i.SysTick_CLKSourceConfig||, CODE, READONLY, ALIGN=1
SysTick_CLKSourceConfig PROC
;;;198 */
;;;199 void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)
000000 2804 CMP r0,#4
;;;200 {
;;;201 /* Check the parameters */
;;;202 assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource));
;;;203 if (SysTick_CLKSource == SysTick_CLKSource_HCLK)
000002 d108 BNE |L5.22|
;;;204 {
;;;205 SysTick->CTRL |= SysTick_CLKSource_HCLK;
000004 f04f21e0 MOV r1,#0xe000e000
000008 6909 LDR r1,[r1,#0x10]
00000a f0410104 ORR r1,r1,#4
00000e f04f22e0 MOV r2,#0xe000e000
000012 6111 STR r1,[r2,#0x10]
000014 e007 B |L5.38|
|L5.22|
;;;206 }
;;;207 else
;;;208 {
;;;209 SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;
000016 f04f21e0 MOV r1,#0xe000e000
00001a 6909 LDR r1,[r1,#0x10]
00001c f0210104 BIC r1,r1,#4
000020 f04f22e0 MOV r2,#0xe000e000
000024 6111 STR r1,[r2,#0x10]
|L5.38|
;;;210 }
;;;211 }
000026 4770 BX lr
;;;212
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -