📄 main.s79
字号:
LDR R0,??DataTable15 ;; 0xe002800c
MOVS R1,#+128
LSLS R1,R1,#+1 ;; #+256
STR R1,[R0, #+0]
// 41 IOCLR=rw;
LSLS R1,R1,#+1
STR R1,[R0, #+0]
// 42 IOCLR=0xff; //先清零
MOVS R1,#+255
STR R1,[R0, #+0]
// 43 IOSET=dat; //再送数
LDR R0,??DataTable11 ;; 0xe0028004
STR R4,[R0, #+0]
// 44 IOSET=en;
MOVS R1,#+128
LSLS R1,R1,#+3 ;; #+1024
STR R1,[R0, #+0]
// 45 IOCLR=en;
LDR R0,??DataTable15 ;; 0xe002800c
STR R1,[R0, #+0]
// 46 }
POP {R4}
POP {R0}
BX R0 ;; return
CFI EndBlock cfiBlock3
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock4 Using cfiCommon0
CFI NoFunction
ARM
??WrDat??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock4
REQUIRE WrDat
// 47 /****************************************************************************
// 48 * 名称:WrDat()
// 49 * 功能:写数据函数
// 50 ****************************************************************************/
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock5 Using cfiCommon1
CFI Function WrDat
THUMB
// 51 void WrDat(INT8U dat) //读数据
// 52 {
WrDat:
PUSH {R4,LR}
CFI ?RET Frame(CFA, -4)
CFI R4 Frame(CFA, -8)
CFI CFA R13+8
MOVS R4,R0
// 53
// 54 ChkBusy();
BL ChkBusy
// 55 IOSET=rs;
LDR R0,??DataTable11 ;; 0xe0028004
MOVS R1,#+128
LSLS R1,R1,#+1 ;; #+256
STR R1,[R0, #+0]
// 56 IOCLR=rw;
LDR R0,??DataTable15 ;; 0xe002800c
LSLS R1,R1,#+1
STR R1,[R0, #+0]
// 57 IOCLR=0xff; //先清零
MOVS R1,#+255
STR R1,[R0, #+0]
// 58 IOSET=dat; //再送数
LDR R0,??DataTable11 ;; 0xe0028004
STR R4,[R0, #+0]
// 59 IOSET=en;
MOVS R1,#+128
LSLS R1,R1,#+3 ;; #+1024
STR R1,[R0, #+0]
// 60 IOCLR=en;
LDR R0,??DataTable15 ;; 0xe002800c
STR R1,[R0, #+0]
// 61 }
POP {R4}
POP {R0}
BX R0 ;; return
CFI EndBlock cfiBlock5
RSEG CODE:CODE:NOROOT(2)
DATA
??DataTable11:
DC32 0xe0028004
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock6 Using cfiCommon0
CFI NoFunction
ARM
??DisplayText??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock6
REQUIRE DisplayText
// 62
// 63 /****************************************************************************
// 64 * 名称:DisText()
// 65 * 功能:显示文本函数
// 66 ****************************************************************************/
// 67
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock7 Using cfiCommon1
CFI Function DisplayText
THUMB
// 68 void DisplayText(INT8U addr,INT8U *p)
// 69 {
DisplayText:
PUSH {R4,LR}
CFI ?RET Frame(CFA, -4)
CFI R4 Frame(CFA, -8)
CFI CFA R13+8
MOVS R4,R1
// 70 WrOp(addr);
BL WrOp
B ??DisplayText_0
// 71 while(*p !='\0')WrDat(*(p++));
??DisplayText_1:
BL WrDat
ADDS R4,R4,#+1
??DisplayText_0:
LDRB R0,[R4, #+0]
CMP R0,#+0
BNE ??DisplayText_1
// 72 }
POP {R4}
POP {R0}
BX R0 ;; return
CFI EndBlock cfiBlock7
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock8 Using cfiCommon0
CFI NoFunction
ARM
??main??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock8
REQUIRE main
// 73 /****************************************************************************
// 74 * 名称:main()
// 75 * 功能:显示文本
// 76 ****************************************************************************/
// 77
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock9 Using cfiCommon1
CFI Function main
THUMB
// 78 int main (void)
// 79 {
main:
PUSH {LR}
CFI ?RET Frame(CFA, -4)
CFI CFA R13+4
// 80 OSInit();
_BLF OSInit,??OSInit??rT
// 81
// 82 OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 3);
MOVS R3,#+3
LDR R2,??main_0 ;; TaskStartStk + 252
MOVS R1,#+0
LDR R0,??main_0+0x4 ;; TaskStart
_BLF OSTaskCreate,??OSTaskCreate??rT
// 83 OSStart();
_BLF OSStart,??OSStart??rT
// 84 }
MOVS R0,#+0
POP {R1}
BX R1 ;; return
DATA
??main_0:
DC32 TaskStartStk + 252
DC32 TaskStart
CFI EndBlock cfiBlock9
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock10 Using cfiCommon0
CFI NoFunction
ARM
??TaskStart??rA:
ADD R12,PC,#+1
BX R12
CFI EndBlock cfiBlock10
REQUIRE TaskStart
// 85 /****************************************************************************
// 86 * 名称:TaskStart()
// 87 * 功能:任务
// 88 ****************************************************************************/
// 89
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock11 Using cfiCommon1
CFI Function TaskStart
THUMB
// 90 void TaskStart(void *pdata)
// 91 { pdata=pdata;
TaskStart:
PUSH {LR}
CFI ?RET Frame(CFA, -4)
CFI CFA R13+4
// 92 BSP_Init();
_BLF BSP_Init,??BSP_Init??rT
// 93 WrOp(0x0c);
MOVS R0,#+12
BL WrOp
// 94 IODIR=0x7ff; //设置为输出
LDR R0,??DataTable13 ;; 0xe0028008
LDR R1,??DataTable14 ;; 0x7ff
STR R1,[R0, #+0]
// 95 IOCLR=0x7ff;
LDR R0,??DataTable15 ;; 0xe002800c
STR R1,[R0, #+0]
// 96 DisplayText(0x86,txt);
LDR R1,??TaskStart_0 ;; txt
MOVS R0,#+134
BL DisplayText
// 97 while(1);
??TaskStart_1:
B ??TaskStart_1
DATA
??TaskStart_0:
DC32 txt
CFI EndBlock cfiBlock11
// 98 }
RSEG CODE:CODE:NOROOT(2)
DATA
??DataTable13:
DC32 0xe0028008
RSEG CODE:CODE:NOROOT(2)
DATA
??DataTable14:
DC32 0x7ff
RSEG CODE:CODE:NOROOT(2)
DATA
??DataTable15:
DC32 0xe002800c
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock12 Using cfiCommon1
CFI NoFunction
THUMB
??OSInit??rT:
LDR R3,??Subroutine6_0 ;; OSInit
BX R3
DATA
??Subroutine6_0:
DC32 OSInit
CFI EndBlock cfiBlock12
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock13 Using cfiCommon1
CFI NoFunction
THUMB
??OSTaskCreate??rT:
PUSH {R3}
CFI CFA R13+4
LDR R3,??Subroutine7_0 ;; OSTaskCreate
MOV R12,R3
POP {R3}
CFI CFA R13+0
BX R12
Nop
DATA
??Subroutine7_0:
DC32 OSTaskCreate
CFI EndBlock cfiBlock13
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock14 Using cfiCommon1
CFI NoFunction
THUMB
??OSStart??rT:
LDR R3,??Subroutine8_0 ;; OSStart
BX R3
DATA
??Subroutine8_0:
DC32 OSStart
CFI EndBlock cfiBlock14
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock15 Using cfiCommon1
CFI NoFunction
THUMB
??BSP_Init??rT:
LDR R3,??Subroutine9_0 ;; BSP_Init
BX R3
DATA
??Subroutine9_0:
DC32 BSP_Init
CFI EndBlock cfiBlock15
RSEG DATA_ID:CONST:SORT:NOROOT(2)
`?<Initializer for txt>`:
DATA
DC8 "helloworld"
DC8 0
RSEG DATA_ID:CONST:SORT:NOROOT(2)
`?*?DATA_ID`:
RSEG INITTAB:CODE:ROOT(2)
DATA
?init?tab?DATA_I:
DCD sfe(DATA_I) - sfb(DATA_I), sfb(DATA_I), sfb(DATA_ID)
RSEG INITTAB:CODE:ROOT(2)
DATA
?init?tab?DATA_Z:
DCD sfe(DATA_Z) - sfb(DATA_Z), sfb(DATA_Z), sfb(DATA_Z)
END
//
// 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 + -