📄 main.lst
字号:
55 IOSET=rs;
\ 00000008 .... LDR R0,??DataTable11 ;; 0xe0028004
\ 0000000A 8021 MOVS R1,#+128
\ 0000000C 4900 LSLS R1,R1,#+1 ;; #+256
\ 0000000E 0160 STR R1,[R0, #+0]
56 IOCLR=rw;
\ 00000010 .... LDR R0,??DataTable15 ;; 0xe002800c
\ 00000012 4900 LSLS R1,R1,#+1
\ 00000014 0160 STR R1,[R0, #+0]
57 IOCLR=0xff; //先清零
\ 00000016 FF21 MOVS R1,#+255
\ 00000018 0160 STR R1,[R0, #+0]
58 IOSET=dat; //再送数
\ 0000001A .... LDR R0,??DataTable11 ;; 0xe0028004
\ 0000001C 0460 STR R4,[R0, #+0]
59 IOSET=en;
\ 0000001E 8021 MOVS R1,#+128
\ 00000020 C900 LSLS R1,R1,#+3 ;; #+1024
\ 00000022 0160 STR R1,[R0, #+0]
60 IOCLR=en;
\ 00000024 .... LDR R0,??DataTable15 ;; 0xe002800c
\ 00000026 0160 STR R1,[R0, #+0]
61 }
\ 00000028 10BC POP {R4}
\ 0000002A 01BC POP {R0}
\ 0000002C 0047 BX R0 ;; return
62
63 /****************************************************************************
64 * 名称:DisText()
65 * 功能:显示文本函数
66 ****************************************************************************/
67
\ In segment CODE, align 4, keep-with-next
68 void DisplayText(INT8U addr,INT8U *p)
69 {
\ DisplayText:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 0C00 MOVS R4,R1
70 WrOp(addr);
\ 00000004 ........ BL WrOp
\ 00000008 02E0 B ??DisplayText_0
71 while(*p !='\0')WrDat(*(p++));
\ ??DisplayText_1:
\ 0000000A ........ BL WrDat
\ 0000000E 641C ADDS R4,R4,#+1
\ ??DisplayText_0:
\ 00000010 2078 LDRB R0,[R4, #+0]
\ 00000012 0028 CMP R0,#+0
\ 00000014 F9D1 BNE ??DisplayText_1
72 }
\ 00000016 10BC POP {R4}
\ 00000018 01BC POP {R0}
\ 0000001A 0047 BX R0 ;; return
73 /****************************************************************************
74 * 名称:main()
75 * 功能:显示文本
76 ****************************************************************************/
77
\ In segment CODE, align 4, keep-with-next
78 int main (void)
79 {
\ main:
\ 00000000 00B5 PUSH {LR}
80 OSInit();
\ 00000002 ........ _BLF OSInit,??OSInit??rT
81
82 OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 3);
\ 00000006 0323 MOVS R3,#+3
\ 00000008 044A LDR R2,??main_0 ;; TaskStartStk + 252
\ 0000000A 0021 MOVS R1,#+0
\ 0000000C 0448 LDR R0,??main_0+0x4 ;; TaskStart
\ 0000000E ........ _BLF OSTaskCreate,??OSTaskCreate??rT
83 OSStart();
\ 00000012 ........ _BLF OSStart,??OSStart??rT
84 }
\ 00000016 0020 MOVS R0,#+0
\ 00000018 02BC POP {R1}
\ 0000001A 0847 BX R1 ;; return
\ ??main_0:
\ 0000001C ........ DC32 TaskStartStk + 252
\ 00000020 ........ DC32 TaskStart
85 /****************************************************************************
86 * 名称:TaskStart()
87 * 功能:任务
88 ****************************************************************************/
89
\ In segment CODE, align 4, keep-with-next
90 void TaskStart(void *pdata)
91 { pdata=pdata;
\ TaskStart:
\ 00000000 00B5 PUSH {LR}
92 BSP_Init();
\ 00000002 ........ _BLF BSP_Init,??BSP_Init??rT
93 WrOp(0x0c);
\ 00000006 0C20 MOVS R0,#+12
\ 00000008 ........ BL WrOp
94 IODIR=0x7ff; //设置为输出
\ 0000000C .... LDR R0,??DataTable13 ;; 0xe0028008
\ 0000000E .... LDR R1,??DataTable14 ;; 0x7ff
\ 00000010 0160 STR R1,[R0, #+0]
95 IOCLR=0x7ff;
\ 00000012 .... LDR R0,??DataTable15 ;; 0xe002800c
\ 00000014 0160 STR R1,[R0, #+0]
96 DisplayText(0x86,txt);
\ 00000016 0249 LDR R1,??TaskStart_0 ;; txt
\ 00000018 8620 MOVS R0,#+134
\ 0000001A ........ BL DisplayText
97 while(1);
\ ??TaskStart_1:
\ 0000001E FEE7 B ??TaskStart_1
\ ??TaskStart_0:
\ 00000020 ........ DC32 txt
98 }
\ In segment CODE, align 4, keep-with-next
\ ??DataTable11:
\ 00000000 048002E0 DC32 0xe0028004
\ In segment CODE, align 4, keep-with-next
\ ??DataTable13:
\ 00000000 088002E0 DC32 0xe0028008
\ In segment CODE, align 4, keep-with-next
\ ??DataTable14:
\ 00000000 FF070000 DC32 0x7ff
\ In segment CODE, align 4, keep-with-next
\ ??DataTable15:
\ 00000000 0C8002E0 DC32 0xe002800c
\ In segment DATA_ID, align 4, align-sorted
\ `?<Initializer for txt>`:
\ 00000000 68656C6C6F77 DC8 "helloworld"
\ 6F726C6400
\ 0000000B 00 DC8 0
Maximum stack usage in bytes:
Function CSTACK
-------- ------
ChkBusy 4
DisplayText 8
TaskStart 4
WrDat 8
WrOp 8
main 4
Segment part sizes:
Function/Label Bytes
-------------- -----
_A_PINSEL0 4
_A_IOPIN 4
_A_IOSET 4
_A_IODIR 4
_A_IOCLR 4
TaskStartStk 256
txt 12
ChkBusy 68
WrOp 44
WrDat 46
DisplayText 28
main 36
TaskStart 36
??DataTable11 4
??DataTable13 4
??DataTable14 4
??DataTable15 4
?<Initializer for txt> 12
Others 112
362 bytes in segment CODE
20 bytes in segment DATA_AN
12 bytes in segment DATA_I
12 bytes in segment DATA_ID
256 bytes in segment DATA_Z
24 bytes in segment INITTAB
274 bytes of CODE memory (+ 112 bytes shared)
12 bytes of CONST memory
268 bytes of DATA memory (+ 20 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -