📄 target.txt
字号:
;;;252 /* set to 8,1,n 且设置为8,1,n */
;;;253 U0IER = 0x00; /* Disable interrupt禁止中断 */
000244 e3a00000 MOV r0,#0
000248 e5c10004 STRB r0,[r1,#4]
;;;254 U0FCR = 0x00; /* initial FIFO 初始化FIFO */
00024c e5c10008 STRB r0,[r1,#8]
;;;255 }
000250 e8bd4070 POP {r4-r6,lr}
000254 e12fff1e BX lr
ENDP
InitialiseUART1 PROC
;;;256 void InitialiseUART1(uint32 bps)
;;;257 {
000258 e92d4070 PUSH {r4-r6,lr}
00025c e1a05000 MOV r5,r0
;;;258 uint16 Fdiv;
;;;259 IO0DIR |=1<<10;
000260 e59f019c LDR r0,|L1.1028|
000264 e5900008 LDR r0,[r0,#8]
000268 e3800b01 ORR r0,r0,#0x400
00026c e59f1190 LDR r1,|L1.1028|
000270 e5810008 STR r0,[r1,#8]
;;;260 IO0CLR |=1<<10;
000274 e1a00001 MOV r0,r1
000278 e590000c LDR r0,[r0,#0xc]
00027c e3800b01 ORR r0,r0,#0x400
000280 e581000c STR r0,[r1,#0xc]
;;;261 PINSEL0 = (PINSEL0 & (~(0x0F<<16))) | (0x05<<16); // 设置I/O连接到UART1 /* Select the pins for Uart 选择管脚为UART1 */
000284 e2810901 ADD r0,r1,#0x4000
000288 e5900000 LDR r0,[r0,#0]
00028c e3c0080f BIC r0,r0,#0xf0000
000290 e3800805 ORR r0,r0,#0x50000
000294 e2811901 ADD r1,r1,#0x4000
000298 e5810000 STR r0,[r1,#0]
;;;262
;;;263 U1LCR = 0x83; /* Enable to access the frequenc regecter 允许访问分频因子寄存器 */
00029c e3a00083 MOV r0,#0x83
0002a0 e2411907 SUB r1,r1,#0x1c000
0002a4 e5c1000c STRB r0,[r1,#0xc]
;;;264 Fdiv = (Fpclk / 16) / bps; /* Set the baudrate设置波特率 */
0002a8 e1a01005 MOV r1,r5
0002ac e59f0168 LDR r0,|L1.1052|
0002b0 ebfffffe BL __aeabi_uidivmod
0002b4 e1a04800 LSL r4,r0,#16
0002b8 e1a04824 LSR r4,r4,#16
;;;265 U1DLM = Fdiv / 256;
0002bc e1a00004 MOV r0,r4
0002c0 e1a01fc4 ASR r1,r4,#31
0002c4 e0841c21 ADD r1,r4,r1,LSR #24
0002c8 e1a01801 LSL r1,r1,#16
0002cc e1a01c21 LSR r1,r1,#24
0002d0 e59f214c LDR r2,|L1.1060|
0002d4 e5c21004 STRB r1,[r2,#4]
;;;266 U1DLL = Fdiv % 256;
0002d8 e1a00004 MOV r0,r4
0002dc e1a01fc4 ASR r1,r4,#31
0002e0 e0841c21 ADD r1,r4,r1,LSR #24
0002e4 e1a01441 ASR r1,r1,#8
0002e8 e0441401 SUB r1,r4,r1,LSL #8
0002ec e5c21000 STRB r1,[r2,#0]
;;;267 U1LCR = 0x03; /* Disable to access the frequenc regecter 禁止访问分频因子寄存器 */
0002f0 e3a00003 MOV r0,#3
0002f4 e1c21000 BIC r1,r2,r0
0002f8 e5c1000c STRB r0,[r1,#0xc]
;;;268 /* set to 8,1,n 且设置为8,1,n */
;;;269 U1IER = 0x00; /* Disable interrupt禁止中断 */
0002fc e3a00000 MOV r0,#0
000300 e5c10004 STRB r0,[r1,#4]
;;;270 U1FCR = 0x00; /* initial FIFO 初始化FIFO */
000304 e5c10008 STRB r0,[r1,#8]
;;;271 }
000308 e8bd4070 POP {r4-r6,lr}
00030c e12fff1e BX lr
ENDP
TargetResetInit PROC
;;;290 void TargetResetInit(void)
;;;291 {
000310 e92d4010 PUSH {r4,lr}
;;;292 #ifdef __DEBUG_RAM
;;;293 MEMMAP = 0x2; //remap
;;;294 #endif
;;;295
;;;296 #ifdef __DEBUG_FLASH
;;;297 MEMMAP = 0x1; //remap
;;;298 #endif
;;;299
;;;300 #ifdef __IN_CHIP
;;;301 MEMMAP = 0x1; //remap
;;;302 #endif
;;;303
;;;304
;;;305 /* 设置系统各部分时钟 */
;;;306 /* Set system timers for each component */
;;;307 PLLCON = 1;
000314 e3a00001 MOV r0,#1
000318 e59f1108 LDR r1,|L1.1064|
00031c e5c10080 STRB r0,[r1,#0x80]
;;;308 #if (Fpclk / (Fcclk / 4)) == 1
;;;309 VPBDIV = 0;
000320 e3a00000 MOV r0,#0
000324 e5c10100 STRB r0,[r1,#0x100]
;;;310 #endif
;;;311 #if (Fpclk / (Fcclk / 4)) == 2
;;;312 VPBDIV = 2;
;;;313 #endif
;;;314 #if (Fpclk / (Fcclk / 4)) == 4
;;;315 VPBDIV = 1;
;;;316 #endif
;;;317
;;;318 #if (Fcco / Fcclk) == 2
;;;319 PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
;;;320 #endif
;;;321 #if (Fcco / Fcclk) == 4
;;;322 PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
000328 e3a00023 MOV r0,#0x23
00032c e5c10084 STRB r0,[r1,#0x84]
;;;323 #endif
;;;324 #if (Fcco / Fcclk) == 8
;;;325 PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
;;;326 #endif
;;;327 #if (Fcco / Fcclk) == 16
;;;328 PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
;;;329 #endif
;;;330 PLLFEED = 0xaa;
000330 e3a000aa MOV r0,#0xaa
000334 e5c1008c STRB r0,[r1,#0x8c]
;;;331 PLLFEED = 0x55;
000338 e3a00055 MOV r0,#0x55
00033c e5c1008c STRB r0,[r1,#0x8c]
;;;332 while((PLLSTAT & (1 << 10)) == 0);
000340 e1a00000 MOV r0,r0
|L1.836|
000344 e59f00dc LDR r0,|L1.1064|
000348 e1d008b8 LDRH r0,[r0,#0x88]
00034c e3100b01 TST r0,#0x400
000350 0afffffb BEQ |L1.836|
;;;333 PLLCON = 3;
000354 e3a00003 MOV r0,#3
000358 e59f10c8 LDR r1,|L1.1064|
00035c e5c10080 STRB r0,[r1,#0x80]
;;;334 PLLFEED = 0xaa;
000360 e3a000aa MOV r0,#0xaa
000364 e5c1008c STRB r0,[r1,#0x8c]
;;;335 PLLFEED = 0x55;
000368 e3a00055 MOV r0,#0x55
00036c e5c1008c STRB r0,[r1,#0x8c]
;;;336
;;;337 /* 设置存储器加速模块 */
;;;338 /* Set memory accelerater module*/
;;;339 MAMCR = 0;
000370 e3a00000 MOV r0,#0
000374 e5c10000 STRB r0,[r1,#0]
;;;340 #if Fcclk < 20000000
;;;341 MAMTIM = 1;
;;;342 #else
;;;343 #if Fcclk < 40000000
;;;344 MAMTIM = 2;
;;;345 #else
;;;346 MAMTIM = 3;
000378 e3a00003 MOV r0,#3
00037c e5c10004 STRB r0,[r1,#4]
;;;347 #endif
;;;348 #endif
;;;349 MAMCR = 2;
000380 e3a00002 MOV r0,#2
000384 e5c10000 STRB r0,[r1,#0]
;;;350
;;;351 /* 设置串行口 */
;;;352 /* initialize UART*/
;;;353 InitialiseUART0(115200);
000388 e59f009c LDR r0,|L1.1068|
00038c ebfffffe BL InitialiseUART0
;;;354 InitialiseUART1(115200);
000390 e59f0094 LDR r0,|L1.1068|
000394 ebfffffe BL InitialiseUART1
;;;355 /* 设置实时时钟 */
;;;356 /* initialize RTC*/
;;;357 CCR = 1;
000398 e3a00001 MOV r0,#1
00039c e59f108c LDR r1,|L1.1072|
0003a0 e5c10008 STRB r0,[r1,#8]
;;;358 PREINT = Fpclk / 32768 - 1;
0003a4 e2800f5b ADD r0,r0,#0x16c
0003a8 e1c108b0 STRH r0,[r1,#0x80]
;;;359 PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
0003ac e3a00c1b MOV r0,#0x1b00
0003b0 e1c108b4 STRH r0,[r1,#0x84]
;;;360 YEAR = 2003;
0003b4 e59f0078 LDR r0,|L1.1076|
0003b8 e1c103bc STRH r0,[r1,#0x3c]
;;;361 MONTH = 6;
0003bc e3a00006 MOV r0,#6
0003c0 e5c10038 STRB r0,[r1,#0x38]
;;;362 DOM = 2;
0003c4 e3a00002 MOV r0,#2
0003c8 e5c1002c STRB r0,[r1,#0x2c]
;;;363
;;;364 /* initialize VIC*/
;;;365 VICIntEnClr = 0xffffffff;
0003cc e3e00000 MVN r0,#0
0003d0 e3a01000 MOV r1,#0
0003d4 e5010fec STR r0,[r1,#-0xfec]
;;;366 VICVectAddr = 0;
0003d8 e3a00000 MOV r0,#0
0003dc e5000fd0 STR r0,[r0,#-0xfd0]
;;;367 VICIntSelect = 0;
0003e0 e3a00000 MOV r0,#0
0003e4 e5000ff4 STR r0,[r0,#-0xff4]
;;;368 T0IR = 0xffffffff;
0003e8 e3e00000 MVN r0,#0
0003ec e59f1018 LDR r1,|L1.1036|
0003f0 e5810000 STR r0,[r1,#0]
;;;369 T0TCR = 0X02;
0003f4 e3a00002 MOV r0,#2
0003f8 e5810004 STR r0,[r1,#4]
;;;370 }
0003fc e8bd4010 POP {r4,lr}
000400 e12fff1e BX lr
|L1.1028|
000404 e0028000 DCD 0xe0028000
|L1.1032|
000408 e002c000 DCD 0xe002c000
|L1.1036|
00040c e0004000 DCD 0xe0004000
|L1.1040|
000410 0000ea60 DCD 0x0000ea60
|L1.1044|
000414 00000000 DCD IRQ_Handler
|L1.1048|
000418 00000000 DCD Timer0_Handler
|L1.1052|
00041c 000b71b0 DCD 0x000b71b0
|L1.1056|
000420 e000c000 DCD 0xe000c000
|L1.1060|
000424 e0010000 DCD 0xe0010000
|L1.1064|
000428 e01fc000 DCD 0xe01fc000
|L1.1068|
00042c 0001c200 DCD 0x0001c200
|L1.1072|
000430 e0024000 DCD 0xe0024000
|L1.1076|
000434 000007d3 DCD 0x000007d3
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -