?? misc.txt
字號(hào):
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\misc.o --depend=.\Obj\misc.d --device=DARMSTM --apcs=interwork -O0 -Otime -I..\..\Libraries\CMSIS\Core\CM3 -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Source\inc -Id:\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
;;;110 */
;;;111 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
000000 b570 PUSH {r4-r6,lr}
;;;112 {
;;;113 uint32_t tmppriority = 0x00, tmppre = 0x00, tmpsub = 0x0F;
000002 2100 MOVS r1,#0
000004 2300 MOVS r3,#0
000006 220f MOVS r2,#0xf
;;;114
;;;115 /* Check the parameters */
;;;116 assert_param(IS_FUNCTIONAL_STATE(NVIC_InitStruct->NVIC_IRQChannelCmd));
;;;117 assert_param(IS_NVIC_PREEMPTION_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority));
;;;118 assert_param(IS_NVIC_SUB_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelSubPriority));
;;;119
;;;120 if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE)
000008 78c4 LDRB r4,[r0,#3]
00000a b30c CBZ r4,|L1.80|
;;;121 {
;;;122 /* Compute the Corresponding IRQ Priority --------------------------------*/
;;;123 tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700))>> 0x08;
00000c 4c16 LDR r4,|L1.104|
00000e 6824 LDR r4,[r4,#0]
000010 f40464e0 AND r4,r4,#0x700
000014 f5c464e0 RSB r4,r4,#0x700
000018 0a21 LSRS r1,r4,#8
;;;124 tmppre = (0x4 - tmppriority);
00001a f1c10304 RSB r3,r1,#4
;;;125 tmpsub = tmpsub >> tmppriority;
00001e 40ca LSRS r2,r2,r1
;;;126
;;;127 tmppriority = (uint32_t)NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
000020 7844 LDRB r4,[r0,#1]
000022 fa04f103 LSL r1,r4,r3
;;;128 tmppriority |= NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub;
000026 7884 LDRB r4,[r0,#2]
000028 4014 ANDS r4,r4,r2
00002a 4321 ORRS r1,r1,r4
;;;129 tmppriority = tmppriority << 0x04;
00002c 0109 LSLS r1,r1,#4
;;;130
;;;131 NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;
00002e 4c0f LDR r4,|L1.108|
000030 7806 LDRB r6,[r0,#0]
000032 55a1 STRB r1,[r4,r6]
;;;132
;;;133 /* Enable the Selected IRQ Channels --------------------------------------*/
;;;134 NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
000034 7804 LDRB r4,[r0,#0]
000036 f004051f AND r5,r4,#0x1f
00003a 2401 MOVS r4,#1
00003c 40ac LSLS r4,r4,r5
00003e 7805 LDRB r5,[r0,#0]
000040 116d ASRS r5,r5,#5
000042 f04f26e0 MOV r6,#0xe000e000
000046 eb060585 ADD r5,r6,r5,LSL #2
00004a f8c54100 STR r4,[r5,#0x100]
00004e e009 B |L1.100|
|L1.80|
;;;135 (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
;;;136 }
;;;137 else
;;;138 {
;;;139 /* Disable the Selected IRQ Channels -------------------------------------*/
;;;140 NVIC->ICER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
000050 7804 LDRB r4,[r0,#0]
000052 f004041f AND r4,r4,#0x1f
000056 2501 MOVS r5,#1
000058 40a5 LSLS r5,r5,r4
00005a 4c05 LDR r4,|L1.112|
00005c 7806 LDRB r6,[r0,#0]
00005e 1176 ASRS r6,r6,#5
000060 f8445026 STR r5,[r4,r6,LSL #2]
|L1.100|
;;;141 (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
;;;142 }
;;;143 }
000064 bd70 POP {r4-r6,pc}
;;;144
ENDP
000066 0000 DCW 0x0000
|L1.104|
DCD 0xe000ed0c
|L1.108|
DCD 0xe000e400
|L1.112|
DCD 0xe000e180
AREA ||i.NVIC_PriorityGroupConfig||, CODE, READONLY, ALIGN=2
NVIC_PriorityGroupConfig PROC
;;;94 */
;;;95 void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)
000000 4902 LDR r1,|L2.12|
;;;96 {
;;;97 /* Check the parameters */
;;;98 assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));
;;;99
;;;100 /* Set the PRIGROUP[10:8] bits according to NVIC_PriorityGroup value */
;;;101 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]
;;;102 }
000008 4770 BX lr
;;;103
ENDP
00000a 0000 DCW 0x0000
|L2.12|
DCD 0x05fa0000
|L2.16|
DCD 0xe000ed0c
AREA ||i.NVIC_SetVectorTable||, CODE, READONLY, ALIGN=2
NVIC_SetVectorTable PROC
;;;153 */
;;;154 void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset)
000000 4a02 LDR r2,|L3.12|
;;;155 {
;;;156 /* Check the parameters */
;;;157 assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
;;;158 assert_param(IS_NVIC_OFFSET(Offset));
;;;159
;;;160 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]
;;;161 }
00000a 4770 BX lr
;;;162
ENDP
|L3.12|
DCD 0x1fffff80
|L3.16|
DCD 0xe000ed08
AREA ||i.NVIC_SystemLPConfig||, CODE, READONLY, ALIGN=2
NVIC_SystemLPConfig PROC
;;;172 */
;;;173 void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState)
000000 b139 CBZ r1,|L4.18|
;;;174 {
;;;175 /* Check the parameters */
;;;176 assert_param(IS_NVIC_LP(LowPowerMode));
;;;177 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;178
;;;179 if (NewState != DISABLE)
;;;180 {
;;;181 SCB->SCR |= LowPowerMode;
000002 4a08 LDR r2,|L4.36|
000004 6812 LDR r2,[r2,#0]
000006 4302 ORRS r2,r2,r0
000008 f04f23e0 MOV r3,#0xe000e000
00000c f8c32d10 STR r2,[r3,#0xd10]
000010 e006 B |L4.32|
|L4.18|
;;;182 }
;;;183 else
;;;184 {
;;;185 SCB->SCR &= (uint32_t)(~(uint32_t)LowPowerMode);
000012 4a04 LDR r2,|L4.36|
000014 6812 LDR r2,[r2,#0]
000016 4382 BICS r2,r2,r0
000018 f04f23e0 MOV r3,#0xe000e000
00001c f8c32d10 STR r2,[r3,#0xd10]
|L4.32|
;;;186 }
;;;187 }
000020 4770 BX lr
;;;188
ENDP
000022 0000 DCW 0x0000
|L4.36|
DCD 0xe000ed10
AREA ||i.SysTick_CLKSourceConfig||, CODE, READONLY, ALIGN=1
SysTick_CLKSourceConfig PROC
;;;196 */
;;;197 void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)
000000 2804 CMP r0,#4
;;;198 {
;;;199 /* Check the parameters */
;;;200 assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource));
;;;201 if (SysTick_CLKSource == SysTick_CLKSource_HCLK)
000002 d108 BNE |L5.22|
;;;202 {
;;;203 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|
;;;204 }
;;;205 else
;;;206 {
;;;207 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|
;;;208 }
;;;209 }
000026 4770 BX lr
;;;210
ENDP
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -