📄 ucosii.lst
字号:
0173 2DE2 MOV R30,R2
0174 2DF3 MOV R31,R3
0175 8380 STD R24,0+Z
(0101) *stk-- = (INT8U)0x19;
0176 2E24 MOV R2,R20
0177 2E35 MOV R3,R21
0178 5041 SUBI R20,1
0179 4050 SBCI R21,0
017A E189 LDI R24,0x19
017B 2DE2 MOV R30,R2
017C 2DF3 MOV R31,R3
017D 8380 STD R24,0+Z
(0102) *stk-- = (INT8U)0x20;
017E 2E24 MOV R2,R20
017F 2E35 MOV R3,R21
0180 5041 SUBI R20,1
0181 4050 SBCI R21,0
0182 E280 LDI R24,0x20
0183 2DE2 MOV R30,R2
0184 2DF3 MOV R31,R3
0185 8380 STD R24,0+Z
(0103) *stk-- = (INT8U)0x21;
0186 2E24 MOV R2,R20
0187 2E35 MOV R3,R21
0188 5041 SUBI R20,1
0189 4050 SBCI R21,0
018A E281 LDI R24,0x21
018B 2DE2 MOV R30,R2
018C 2DF3 MOV R31,R3
018D 8380 STD R24,0+Z
(0104) *stk-- = (INT8U)0x22;
018E 2E24 MOV R2,R20
018F 2E35 MOV R3,R21
0190 5041 SUBI R20,1
0191 4050 SBCI R21,0
0192 E282 LDI R24,0x22
0193 2DE2 MOV R30,R2
0194 2DF3 MOV R31,R3
0195 8380 STD R24,0+Z
(0105) *stk-- = (INT8U)0x23;
0196 2E24 MOV R2,R20
0197 2E35 MOV R3,R21
0198 5041 SUBI R20,1
0199 4050 SBCI R21,0
019A E283 LDI R24,0x23
019B 2DE2 MOV R30,R2
019C 2DF3 MOV R31,R3
019D 8380 STD R24,0+Z
(0106) *stk-- = (INT8U)0x24;
019E 2E24 MOV R2,R20
019F 2E35 MOV R3,R21
01A0 5041 SUBI R20,1
01A1 4050 SBCI R21,0
01A2 E284 LDI R24,0x24
01A3 2DE2 MOV R30,R2
01A4 2DF3 MOV R31,R3
01A5 8380 STD R24,0+Z
(0107) *stk-- = (INT8U)0x25;
01A6 2E24 MOV R2,R20
01A7 2E35 MOV R3,R21
01A8 5041 SUBI R20,1
01A9 4050 SBCI R21,0
01AA E285 LDI R24,0x25
01AB 2DE2 MOV R30,R2
01AC 2DF3 MOV R31,R3
01AD 8380 STD R24,0+Z
(0108) *stk-- = (INT8U)0x26;
01AE 2E24 MOV R2,R20
01AF 2E35 MOV R3,R21
01B0 5041 SUBI R20,1
01B1 4050 SBCI R21,0
01B2 E286 LDI R24,0x26
01B3 2DE2 MOV R30,R2
01B4 2DF3 MOV R31,R3
01B5 8380 STD R24,0+Z
(0109) *stk-- = (INT8U)0x27;
01B6 2E24 MOV R2,R20
01B7 2E35 MOV R3,R21
01B8 5041 SUBI R20,1
01B9 4050 SBCI R21,0
01BA E287 LDI R24,0x27
01BB 2DE2 MOV R30,R2
01BC 2DF3 MOV R31,R3
01BD 8380 STD R24,0+Z
(0110) // the heap pointer Y=R29:R28 will not be stored
(0111) *stk-- = (INT8U)0x30;
01BE 2E24 MOV R2,R20
01BF 2E35 MOV R3,R21
01C0 5041 SUBI R20,1
01C1 4050 SBCI R21,0
01C2 E380 LDI R24,0x30
01C3 2DE2 MOV R30,R2
01C4 2DF3 MOV R31,R3
01C5 8380 STD R24,0+Z
(0112) *stk-- = (INT8U)0x31;
01C6 2E24 MOV R2,R20
01C7 2E35 MOV R3,R21
01C8 5041 SUBI R20,1
01C9 4050 SBCI R21,0
01CA E381 LDI R24,0x31
01CB 2DE2 MOV R30,R2
01CC 2DF3 MOV R31,R3
01CD 8380 STD R24,0+Z
(0113) *stk-- = (INT8U)0x3B;
01CE 2E24 MOV R2,R20
01CF 2E35 MOV R3,R21
01D0 5041 SUBI R20,1
01D1 4050 SBCI R21,0
01D2 E38B LDI R24,0x3B
01D3 2DE2 MOV R30,R2
01D4 2DF3 MOV R31,R3
01D5 8380 STD R24,0+Z
(0114) *stk-- = (INT8U)0x80; //SREG = Interrupts enabled
01D6 2E24 MOV R2,R20
01D7 2E35 MOV R3,R21
01D8 5041 SUBI R20,1
01D9 4050 SBCI R21,0
01DA E880 LDI R24,0x80
01DB 2DE2 MOV R30,R2
01DC 2DF3 MOV R31,R3
01DD 8380 STD R24,0+Z
(0115)
(0116) tmp = (INT16U)(stks);
01DE 2D6A MOV R22,R10
01DF 2D7B MOV R23,R11
(0117) *stk-- = (INT8U)(tmp >> 8);
01E0 2E24 MOV R2,R20
01E1 2E35 MOV R3,R21
01E2 5041 SUBI R20,1
01E3 4050 SBCI R21,0
01E4 2E46 MOV R4,R22
01E5 2E57 MOV R5,R23
01E6 2C45 MOV R4,R5
01E7 2455 CLR R5
01E8 2DE2 MOV R30,R2
01E9 2DF3 MOV R31,R3
01EA 8240 STD R4,0+Z
(0118) *stk = (INT8U)(tmp);
01EB 2FE4 MOV R30,R20
01EC 2FF5 MOV R31,R21
01ED 8360 STD R22,0+Z
(0119) return ((void *)stk);
01EE 2F04 MOV R16,R20
01EF 2F15 MOV R17,R21
01F0 DB30 RCALL pop_gset4
01F1 9508 RET
(0120) }
(0121)
(0122) #if OS_CPU_HOOKS_EN
(0123) /*
(0124) ********************************************************************************
(0125) * TASK CREATION HOOK
(0126) *
(0127) * Description: This function is called when a task is created.
(0128) *
(0129) * Arguments:
(0130) * ptcb is a pointer to the task control block of the task being created.
(0131) *
(0132) * Note(s): 1) Interrupts are disabled during this call.
(0133) ********************************************************************************
(0134) */
(0135) void OSTaskCreateHook (OS_TCB *ptcb)
(0136) {
(0137) ptcb = ptcb; // Prevent compiler warning
(0138) }
_OSTaskCreateHook:
ptcb --> R16
01F2 9508 RET
(0139)
(0140)
(0141) /*
(0142) ********************************************************************************
(0143) * TASK DELETION HOOK
(0144) *
(0145) * Description: This function is called when a task is deleted.
(0146) *
(0147) * Arguments:
(0148) * ptcb is a pointer to the task control block of the task being deleted.
(0149) *
(0150) * Note(s): 1) Interrupts are disabled during this call.
(0151) ********************************************************************************
(0152) */
(0153) void OSTaskDelHook (OS_TCB *ptcb)
(0154) {
(0155) ptcb = ptcb; // Prevent compiler warning
(0156) }
_OSTaskDelHook:
ptcb --> R16
01F3 9508 RET
(0157)
(0158) /*
(0159) ********************************************************************************
(0160) * TASK SWITCH HOOK
(0161) *
(0162) * Description:
(0163) * This function is called when a task switch is performed. This allows you to
(0164) * perform other operations during a context switch.
(0165) *
(0166) * Arguments: none
(0167) *
(0168) * Note(s):
(0169) * 1) Interrupts are disabled during this call.
(0170) * 2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB
(0171) * of the task that will be 'switched in' (i.e. the highest priority task)
(0172) * and, 'OSTCBCur' points to the task being switched out (i.e. the
(0173) * preempted task).
(0174) ********************************************************************************
(0175) */
(0176) void OSTaskSwHook (void)
(0177) {
(0178) }
_OSTaskSwHook:
01F4 9508 RET
(0179)
(0180) /*
(0181) ********************************************************************************
(0182) * STATISTIC TASK HOOK
(0183) *
(0184) * Description:
(0185) * This function is called every second by uC/OS-II's statistics task. This
(0186) * allows your application to add functionality to the statistics task.
(0187) *
(0188) * Arguments: none
(0189) ********************************************************************************
(0190) */
(0191) void OSTaskStatHook (void)
(0192) {
(0193) }
_OSTaskStatHook:
01F5 9508 RET
(0194)
(0195) /*
(0196) ********************************************************************************
(0197) * TICK HOOK
(0198) *
(0199) * Description: This function is called every tick.
(0200) *
(0201) * Arguments : none
(0202) *
(0203) * Note(s) : 1) Interrupts may or may not be ENABLED during this call.
(0204) ********************************************************************************
(0205) */
(0206) void OSTimeTickHook (void)
(0207) {
(0208) }
_OSTimeTickHook:
01F6 9508 RET
(0209) #endif
(0210)
(0211) //by zhaowd
(0212) void Init_Timer1_CompareA()
(0213) {
(0214) TCCR0 = 0x05; /* Set TIMER0 prescaler to CLK/1024 */
_Init_Timer1_CompareA:
01F7 E085 LDI R24,5
01F8 BF83 OUT P33,R24
(0215) TIMSK = 0x02; /* Enable TIMER0 overflow interrupt */
01F9 E082 LDI R24,2
01FA BF89 OUT P39,R24
(0216) // UBRR = 23; /* 19200 BAUD at 7.3728MHz */
(0217) // MCUCR |= 0x80; /* Enable external RAM */
(0218) // UCR = 0x08; /* Enable UART transmitter */
(0219) }
01FB 9508 RET
(0220) //*****************************************************************************
(0221) // TickISR
(0222) //*****************************************************************************
(0223) // Init Timer/Counter2 fuer Takterzeugung
(0224) void TC2_Init (void){
(0225) Init_Timer1_CompareA();
(0226) // UBRR = 23; /* 19200 BAUD at 7.3728MHz */
(0227) // MCUCR |= 0x80; /* Enable external RAM */
(0228) // UCR = 0x08; /* Enable UART transmitter */
(0229) // UartTxCount = 0; /* Clear number of characters to send */
(0230) // UartTxRdPtr = 0; /* Initialize transmit buffer read pointer */
(0231) // UartTxWrPtr = 0; /* Initialize transmit buffer write pointer */
(0232) /**/
(0233) //not SEI!!
(0234) //SEI();
(0235) }
_TC2_Init:
01FC CFFA RJMP _Init_Timer1_CompareA
FILE: C:\software\UCOS-II\ucos2_iccavr\iccavr\source\default_hook_functions.c
(0001) /* default no op hook functions */
(0002) void OSInitHookBegin(void) {}
_OSInitHookBegin:
01FD 9508 RET
(0003) void OSTCBInitHook(void *junk) {}
_OSTCBInitHook:
junk --> Y+0
01FE 9508 RET
(0004) void OSInitHookEnd(void) {}_OSInitHookEnd:
01FF 9508 RET
_OSEventTaskRdy:
prio --> R12
bity --> R10
bitx --> R20
x --> R12
ptcb --> R12
y --> R22
msk --> Y+8
msg --> R18
pevent --> R16
0200 DB19 RCALL push_gset4
FILE: C:\software\UCOS-II\ucos2_iccavr\iccavr\source\os_core.c
(0001) /*
(0002) *********************************************************************************************************
(0003) * uC/OS-II
(0004) * The Real-Time Kernel
(0005) * CORE FUNCTIONS
(0006) *
(0007) * (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
(0008) * All Rights Reserved
(0009) *
(0010) * V2.00
(0011) *
(0012) * File : OS_CORE.C
(0013) * By : Jean J. Labrosse
(0014) *********************************************************************************************************
(0015) */
(0016)
(0017) #ifndef OS_MASTER_FILE
(0018) #define OS_GLOBALS
(0019) #include "includes.h"
(0020) #endif
(0021)
(0022) /*
(0023) *********************************************************************************************************
(0024) * LOCAL GLOBAL VARIABLES
(0025) *********************************************************************************************************
(0026) */
(0027)
(0028) static INT8U OSIntExitY; /* Variable used by 'OSIntExit' to prevent using locals */
(0029)
(0030) static OS_STK OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE]; /* Idle task stack */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -