📄 os_cpu_c.lis
字号:
0186 4150 subi R20,1
0188 5040 sbci R21,0
018A 89E1 ldi R24,25
018C E22D mov R30,R2
018E F32D mov R31,R3
0190 8083 std z+0,R24
0192 .dbline 106
0192 ; *stk-- = (INT8U)0x20;
0192 242E mov R2,R20
0194 352E mov R3,R21
0196 4150 subi R20,1
0198 5040 sbci R21,0
019A 80E2 ldi R24,32
019C E22D mov R30,R2
019E F32D mov R31,R3
01A0 8083 std z+0,R24
01A2 .dbline 107
01A2 ; *stk-- = (INT8U)0x21;
01A2 242E mov R2,R20
01A4 352E mov R3,R21
01A6 4150 subi R20,1
01A8 5040 sbci R21,0
01AA 81E2 ldi R24,33
01AC E22D mov R30,R2
01AE F32D mov R31,R3
01B0 8083 std z+0,R24
01B2 .dbline 108
01B2 ; *stk-- = (INT8U)0x22;
01B2 242E mov R2,R20
01B4 352E mov R3,R21
01B6 4150 subi R20,1
01B8 5040 sbci R21,0
01BA 82E2 ldi R24,34
01BC E22D mov R30,R2
01BE F32D mov R31,R3
01C0 8083 std z+0,R24
01C2 .dbline 109
01C2 ; *stk-- = (INT8U)0x23;
01C2 242E mov R2,R20
01C4 352E mov R3,R21
01C6 4150 subi R20,1
01C8 5040 sbci R21,0
01CA 83E2 ldi R24,35
01CC E22D mov R30,R2
01CE F32D mov R31,R3
01D0 8083 std z+0,R24
01D2 .dbline 110
01D2 ; *stk-- = (INT8U)0x24;
01D2 242E mov R2,R20
01D4 352E mov R3,R21
01D6 4150 subi R20,1
01D8 5040 sbci R21,0
01DA 84E2 ldi R24,36
01DC E22D mov R30,R2
01DE F32D mov R31,R3
01E0 8083 std z+0,R24
01E2 .dbline 111
01E2 ; *stk-- = (INT8U)0x25;
01E2 242E mov R2,R20
01E4 352E mov R3,R21
01E6 4150 subi R20,1
01E8 5040 sbci R21,0
01EA 85E2 ldi R24,37
01EC E22D mov R30,R2
01EE F32D mov R31,R3
01F0 8083 std z+0,R24
01F2 .dbline 112
01F2 ; *stk-- = (INT8U)0x26;
01F2 242E mov R2,R20
01F4 352E mov R3,R21
01F6 4150 subi R20,1
01F8 5040 sbci R21,0
01FA 86E2 ldi R24,38
01FC E22D mov R30,R2
01FE F32D mov R31,R3
0200 8083 std z+0,R24
0202 .dbline 113
0202 ; *stk-- = (INT8U)0x27;
0202 242E mov R2,R20
0204 352E mov R3,R21
0206 4150 subi R20,1
0208 5040 sbci R21,0
020A 87E2 ldi R24,39
020C E22D mov R30,R2
020E F32D mov R31,R3
0210 8083 std z+0,R24
0212 .dbline 115
0212 ; // the heap pointer Y=R29:R28 will not be stored
0212 ; *stk-- = (INT8U)0x30;
0212 242E mov R2,R20
0214 352E mov R3,R21
0216 4150 subi R20,1
0218 5040 sbci R21,0
021A 80E3 ldi R24,48
021C E22D mov R30,R2
021E F32D mov R31,R3
0220 8083 std z+0,R24
0222 .dbline 116
0222 ; *stk-- = (INT8U)0x31;
0222 242E mov R2,R20
0224 352E mov R3,R21
0226 4150 subi R20,1
0228 5040 sbci R21,0
022A 81E3 ldi R24,49
022C E22D mov R30,R2
022E F32D mov R31,R3
0230 8083 std z+0,R24
0232 .dbline 117
0232 ; *stk-- = (INT8U)0x3B;
0232 242E mov R2,R20
0234 352E mov R3,R21
0236 4150 subi R20,1
0238 5040 sbci R21,0
023A 8BE3 ldi R24,59
023C E22D mov R30,R2
023E F32D mov R31,R3
0240 8083 std z+0,R24
0242 .dbline 118
0242 ; *stk-- = (INT8U)0x80; //SREG = Interrupts enabled
0242 242E mov R2,R20
0244 352E mov R3,R21
0246 4150 subi R20,1
0248 5040 sbci R21,0
024A 80E8 ldi R24,128
024C E22D mov R30,R2
024E F32D mov R31,R3
0250 8083 std z+0,R24
0252 .dbline 120
0252 ;
0252 ; tmp = (INT16U)(stks);
0252 6A2D mov R22,R10
0254 7B2D mov R23,R11
0256 .dbline 121
0256 ; *stk-- = (INT8U)(tmp >> 8);
0256 242E mov R2,R20
0258 352E mov R3,R21
025A 4150 subi R20,1
025C 5040 sbci R21,0
025E 462E mov R4,R22
0260 572E mov R5,R23
0262 452C mov R4,R5
0264 5524 clr R5
0266 E22D mov R30,R2
0268 F32D mov R31,R3
026A 4082 std z+0,R4
026C .dbline 122
026C ; *stk = (INT8U)(tmp);
026C E42F mov R30,R20
026E F52F mov R31,R21
0270 6083 std z+0,R22
0272 .dbline 123
0272 ; return ((void *)stk);
0272 042F mov R16,R20
0274 152F mov R17,R21
0276 .dbline -2
0276 L3:
0276 00D0 rcall pop_gset4
0278 .dbline 0 ; func end
0278 0895 ret
027A .dbsym r stks 10 pc
027A .dbsym r tmp 22 i
027A .dbsym r stk 20 pc
027A .dbsym l opt 10 i
027A .dbsym l ptos 8 pc
027A .dbsym r pdata 12 pV
027A .dbsym r task 22 pfV
027A .dbend
027A .dbfunc e OSTaskCreateHook _OSTaskCreateHook fV
027A ; ptcb -> R16,R17
.even
027A _OSTaskCreateHook::
027A .dbline -1
027A .dbline 140
027A ; }
027A ;
027A ; #if OS_CPU_HOOKS_EN
027A ; /*
027A ; ********************************************************************************
027A ; * TASK CREATION HOOK
027A ; *
027A ; * Description: This function is called when a task is created.
027A ; *
027A ; * Arguments:
027A ; * ptcb is a pointer to the task control block of the task being created.
027A ; *
027A ; * Note(s): 1) Interrupts are disabled during this call.
027A ; ********************************************************************************
027A ; */
027A ; void OSTaskCreateHook (OS_TCB *ptcb)
027A ; {
027A .dbline 141
027A ; ptcb = ptcb; // Prevent compiler warning
027A .dbline -2
027A .dbline 142
027A ; }
027A L4:
027A .dbline 0 ; func end
027A 0895 ret
027C .dbsym r ptcb 16 pX
027C .dbend
027C .dbfunc e OSTaskDelHook _OSTaskDelHook fV
027C ; ptcb -> R16,R17
.even
027C _OSTaskDelHook::
027C .dbline -1
027C .dbline 158
027C ;
027C ;
027C ; /*
027C ; ********************************************************************************
027C ; * TASK DELETION HOOK
027C ; *
027C ; * Description: This function is called when a task is deleted.
027C ; *
027C ; * Arguments:
027C ; * ptcb is a pointer to the task control block of the task being deleted.
027C ; *
027C ; * Note(s): 1) Interrupts are disabled during this call.
027C ; ********************************************************************************
027C ; */
027C ; void OSTaskDelHook (OS_TCB *ptcb)
027C ; {
027C .dbline 159
027C ; ptcb = ptcb; // Prevent compiler warning
027C .dbline -2
027C .dbline 160
027C ; }
027C L5:
027C .dbline 0 ; func end
027C 0895 ret
027E .dbsym r ptcb 16 pX
027E .dbend
027E .dbfunc e OSTaskStatHook _OSTaskStatHook fV
.even
027E _OSTaskStatHook::
027E .dbline -1
027E .dbline 174
027E ;
027E ; /*
027E ; ********************************************************************************
027E ; * STATISTIC TASK HOOK
027E ; *
027E ; * Description:
027E ; * This function is called every second by uC/OS-II's statistics task. This
027E ; * allows your application to add functionality to the statistics task.
027E ; *
027E ; * Arguments: none
027E ; ********************************************************************************
027E ; */
027E ; void OSTaskStatHook (void)
027E ; {
027E .dbline -2
027E .dbline 175
027E ; }
027E L6:
027E .dbline 0 ; func end
027E 0895 ret
0280 .dbend
0280 .dbfunc e OSTimeTickHook _OSTimeTickHook fV
.even
0280 _OSTimeTickHook::
0280 .dbline -1
0280 .dbline 189
0280 ;
0280 ; /*
0280 ; ********************************************************************************
0280 ; * TICK HOOK
0280 ; *
0280 ; * Description: This function is called every tick.
0280 ; *
0280 ; * Arguments : none
0280 ; *
0280 ; * Note(s) : 1) Interrupts may or may not be ENABLED during this call.
0280 ; ********************************************************************************
0280 ; */
0280 ; void OSTimeTickHook (void)
0280 ; {
0280 .dbline -2
0280 .dbline 190
0280 ; }
0280 L7:
0280 .dbline 0 ; func end
0280 0895 ret
0282 .dbend
0282 .dbfunc e Init_Timer1_CompareA _Init_Timer1_CompareA fV
.even
0282 _Init_Timer1_CompareA::
0282 .dbline -1
0282 .dbline 195
0282 ; #endif
0282 ;
0282 ; //by zhaowd
0282 ; void Init_Timer1_CompareA()
0282 ; {
0282 .dbline 196
0282 ; TCCR0 = 0x05; /* Set TIMER0 prescaler to CLK/1024 */
0282 85E0 ldi R24,5
0284 83BF out 0x33,R24
0286 .dbline 197
0286 ; TIMSK = 0x02; /* Enable TIMER0 overflow interrupt */
0286 82E0 ldi R24,2
0288 89BF out 0x39,R24
028A .dbline -2
028A .dbline 201
028A ; // UBRR = 23; /* 19200 BAUD at 7.3728MHz */
028A ; // MCUCR |= 0x80; /* Enable external RAM */
028A ; // UCR = 0x08; /* Enable UART transmitter */
028A ; }
028A L8:
028A .dbline 0 ; func end
028A 0895 ret
028C .dbend
028C .dbfunc e TC2_Init _TC2_Init fV
.even
028C _TC2_Init::
028C .dbline -1
028C .dbline 206
028C ; //*****************************************************************************
028C ; // TickISR
028C ; //*****************************************************************************
028C ; // Init Timer/Counter2 fuer Takterzeugung
028C ; void TC2_Init (void){
028C .dbline 207
028C ; Init_Timer1_CompareA();
028C .dbline -2
028C .dbline 217
028C ; // UBRR = 23; /* 19200 BAUD at 7.3728MHz */
028C ; // MCUCR |= 0x80; /* Enable external RAM */
028C ; // UCR = 0x08; /* Enable UART transmitter */
028C ; // UartTxCount = 0; /* Clear number of characters to send */
028C ; // UartTxRdPtr = 0; /* Initialize transmit buffer read pointer */
028C ; // UartTxWrPtr = 0; /* Initialize transmit buffer write pointer */
028C ; /**/
028C ; //not SEI!!
028C ; //SEI();
028C ; }
028C L9:
028C .dbline 0 ; func end
028C FACF rjmp _Init_Timer1_CompareA
028E .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -