📄 basetask.asm
字号:
.func 66
;******************************************************************************
;* FUNCTION NAME: _Application_Initialize *
;* *
;* Architecture : TMS320C32 *
;* Calling Convention : Stack Parameter Convention *
;* Function Uses Regs : r0,r1,r2,r3,ar0,fp,sp,rs,re,rc *
;* Regs Saved : *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 1 Parm + 1 Auto + 0 SOE = 4 words *
;******************************************************************************
_Application_Initialize:
.sym _first_available_memory,-2,16,9,32
.sym _pointer,1,16,1,32
.line 1
;----------------------------------------------------------------------
; 66 | VOID Application_Initialize(VOID *first_available_memory)
;----------------------------------------------------------------------
push fp
ldiu sp,fp
addi 1,sp
.line 2
;----------------------------------------------------------------------
; 68 | VOID *pointer;
; 70 | // UNSIGNED i;
;----------------------------------------------------------------------
.line 11
;----------------------------------------------------------------------
; 76 | NU_Create_Memory_Pool(&System_Memory, "SYSMEM",
; 77 | first_available_memory, 15000, 50, NU_FIFO);
; 79 | //创建任务0:自检
;----------------------------------------------------------------------
ldp @CL1,DP
ldiu 6,r0 ; |76|
ldiu 50,rs ; |76|
ldiu @CL1,r2 ; |76|
ldiu 15000,r3 ; |76|
ldp @CL2,DP
push r0 ; |76|
ldiu @CL2,r1 ; |76|
push rs ; |76|
ldp @CL3,DP
push r3 ; |76|
ldiu @CL3,r0 ; |76|
ldiu *-fp(2),r3 ; |76|
push r3 ; |76|
push r2 ; |76|
push r1 ; |76|
callu r0 ; far call to _DMCE_Create_Memory_Pool ; |76|
; |76| Far Call Occurs
subi 6,sp ; |76|
.line 15
;----------------------------------------------------------------------
; 80 | NU_Allocate_Memory(&System_Memory, &pointer, 1000, NU_NO_SUSPEND);
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r2 ; |80|
ldiu 0,rs ; |80|
ldp @CL4,DP
ldiu 1000,r3 ; |80|
push rs ; |80|
ldiu fp,r0 ; |80|
ldiu @CL4,r1 ; |80|
push r3 ; |80|
addi 1,r0 ; |80|
push r0 ; |80|
push r2 ; |80|
callu r1 ; far call to _DMCE_Allocate_Memory ; |80|
; |80| Far Call Occurs
subi 4,sp ; |80|
.line 16
;----------------------------------------------------------------------
; 81 | NU_Create_Task(&Task_0_CB, "TASK 0", task_0, 0, NU_NULL, pointer, 1000,
; 82 | 5,1, NU_PREEMPT, NU_START);
; 84 | //创建任务1:保护
;----------------------------------------------------------------------
ldiu 10,r3 ; |81|
ldiu 1000,r0 ; |81|
ldiu 12,rs ; |81|
ldiu 5,r1 ; |81|
push rs ; |81|
ldiu 1,r2 ; |81|
push r3 ; |81|
ldp @CL5,DP
push r2 ; |81|
ldiu @CL5,r2 ; |81|
ldp @CL6,DP
push r1 ; |81|
ldiu @CL6,r1 ; |81|
push r0 ; |81|
ldiu *+fp(1),re ; |81|
ldiu 0,rs ; |81|
push re ; |81|
push rs ; |81|
ldiu 0,r3 ; |81|
ldp @CL7,DP
push r3 ; |81|
ldiu @CL7,r0 ; |81|
push r2 ; |81|
ldp @CL8,DP
push r1 ; |81|
ldiu @CL8,rc ; |81|
push r0 ; |81|
callu rc ; far call to _TCCE_Create_Task ; |81|
; |81| Far Call Occurs
subi 11,sp ; |81|
.line 20
;----------------------------------------------------------------------
; 85 | NU_Allocate_Memory(&System_Memory, &pointer, 1000, NU_NO_SUSPEND);
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r1 ; |85|
ldp @CL4,DP
ldiu fp,r0 ; |85|
ldiu 0,r2 ; |85|
ldiu 1000,r3 ; |85|
push r2 ; |85|
addi 1,r0 ; |85|
push r3 ; |85|
push r0 ; |85|
push r1 ; |85|
ldiu @CL4,rs ; |85|
callu rs ; far call to _DMCE_Allocate_Memory ; |85|
; |85| Far Call Occurs
subi 4,sp ; |85|
.line 21
;----------------------------------------------------------------------
; 86 | NU_Create_Task(&Task_1_CB, "TASK 1", task_1, 0, NU_NULL, pointer, 1000,
; 87 | 1,0, NU_PREEMPT, NU_START);
; 89 | //创建任务2:键盘
;----------------------------------------------------------------------
ldiu 12,r2 ; |86|
ldiu 1,rs ; |86|
ldp @CL9,DP
push r2 ; |86|
ldiu @CL9,r2 ; |86|
ldp @CL10,DP
ldiu 10,r3 ; |86|
ldiu 0,r1 ; |86|
push r3 ; |86|
push r1 ; |86|
push rs ; |86|
ldiu 1000,r0 ; |86|
push r0 ; |86|
ldiu @CL10,r0 ; |86|
ldp @CL11,DP
ldiu 0,rs ; |86|
ldiu *+fp(1),re ; |86|
push re ; |86|
ldiu 0,r3 ; |86|
push rs ; |86|
push r3 ; |86|
push r2 ; |86|
ldiu @CL11,rc ; |86|
ldp @CL8,DP
push r0 ; |86|
ldiu @CL8,r1 ; |86|
push rc ; |86|
callu r1 ; far call to _TCCE_Create_Task ; |86|
; |86| Far Call Occurs
subi 11,sp ; |86|
.line 25
;----------------------------------------------------------------------
; 90 | NU_Allocate_Memory(&System_Memory, &pointer, 2000, NU_NO_SUSPEND);
;----------------------------------------------------------------------
ldiu 0,r0 ; |90|
ldp @CL2,DP
push r0 ; |90|
ldiu @CL2,r2 ; |90|
ldp @CL4,DP
ldiu fp,r0 ; |90|
ldiu 2000,r3 ; |90|
addi 1,r0 ; |90|
push r3 ; |90|
push r0 ; |90|
ldiu @CL4,r1 ; |90|
push r2 ; |90|
callu r1 ; far call to _DMCE_Allocate_Memory ; |90|
; |90| Far Call Occurs
subi 4,sp ; |90|
.line 26
;----------------------------------------------------------------------
; 91 | NU_Create_Task(&Task_2_CB, "TASK 2", task_2, 0, NU_NULL, pointer, 2000,
; 92 | 5,1, NU_PREEMPT, NU_START);
; 94 | //创建任务3:显示
;----------------------------------------------------------------------
ldp @CL12,DP
ldiu 10,r3 ; |91|
ldiu @CL12,rc ; |91|
ldiu 1,r2 ; |91|
ldp @CL13,DP
ldiu 12,rs ; |91|
push rs ; |91|
push r3 ; |91|
push r2 ; |91|
ldiu 5,r0 ; |91|
push r0 ; |91|
ldiu 2000,r1 ; |91|
push r1 ; |91|
ldiu @CL13,r1 ; |91|
ldp @CL14,DP
ldiu @CL14,r0 ; |91|
ldp @CL8,DP
ldiu *+fp(1),re ; |91|
ldiu 0,r3 ; |91|
push re ; |91|
ldiu 0,rs ; |91|
push rs ; |91|
push r3 ; |91|
push rc ; |91|
push r1 ; |91|
ldiu @CL8,r2 ; |91|
push r0 ; |91|
callu r2 ; far call to _TCCE_Create_Task ; |91|
; |91| Far Call Occurs
subi 11,sp ; |91|
.line 30
;----------------------------------------------------------------------
; 95 | NU_Allocate_Memory(&System_Memory, &pointer, 4000, NU_NO_SUSPEND);
;----------------------------------------------------------------------
ldiu 0,r1 ; |95|
ldp @CL2,DP
ldiu 4000,r0 ; |95|
push r1 ; |95|
ldiu @CL2,r3 ; |95|
push r0 ; |95|
ldp @CL4,DP
ldiu fp,r0 ; |95|
ldiu @CL4,r2 ; |95|
addi 1,r0 ; |95|
push r0 ; |95|
push r3 ; |95|
callu r2 ; far call to _DMCE_Allocate_Memory ; |95|
; |95| Far Call Occurs
subi 4,sp ; |95|
.line 31
;----------------------------------------------------------------------
; 96 | NU_Create_Task(&Task_3_CB, "TASK 3", task_3, 0, NU_NULL, pointer, 4000,
; 97 | 5,1, NU_PREEMPT, NU_START);
; 99 | //创建任务4:通信
;----------------------------------------------------------------------
ldp @CL15,DP
ldiu 12,rs ; |96|
push rs ; |96|
ldiu 10,r3 ; |96|
push r3 ; |96|
ldiu 1,r2 ; |96|
push r2 ; |96|
ldiu @CL15,r2 ; |96|
ldiu 5,r1 ; |96|
ldp @CL16,DP
ldiu 4000,r0 ; |96|
push r1 ; |96|
push r0 ; |96|
ldiu *+fp(1),re ; |96|
push re ; |96|
ldiu 0,rs ; |96|
ldiu 0,r3 ; |96|
ldiu @CL16,r1 ; |96|
push rs ; |96|
ldp @CL17,DP
push r3 ; |96|
ldiu @CL17,rc ; |96|
push r2 ; |96|
ldp @CL8,DP
push r1 ; |96|
ldiu @CL8,r0 ; |96|
push rc ; |96|
callu r0 ; far call to _TCCE_Create_Task ; |96|
; |96| Far Call Occurs
subi 11,sp ; |96|
.line 35
;----------------------------------------------------------------------
; 100 | NU_Allocate_Memory(&System_Memory, &pointer, 1000, NU_NO_SUSPEND);
;----------------------------------------------------------------------
ldiu 0,r0 ; |100|
push r0 ; |100|
ldp @CL2,DP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -