⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 project.lst

📁 ucos在mega128的移植
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0212 8380      STD	Z+0,R24
(0204)     *psoft_stk-- = (INT8U)0x19;             /* R19   = 0x19                                             */
    0213 011A      MOVW	R2,R20
    0214 5041      SUBI	R20,1
    0215 4050      SBCI	R21,0
    0216 E189      LDI	R24,0x19
    0217 01F1      MOVW	R30,R2
    0218 8380      STD	Z+0,R24
(0205)     *psoft_stk-- = (INT8U)0x20;             /* R20   = 0x20                                             */
    0219 011A      MOVW	R2,R20
    021A 5041      SUBI	R20,1
    021B 4050      SBCI	R21,0
    021C E280      LDI	R24,0x20
    021D 01F1      MOVW	R30,R2
    021E 8380      STD	Z+0,R24
(0206)     *psoft_stk-- = (INT8U)0x21;             /* R21   = 0x21                                             */
    021F 011A      MOVW	R2,R20
    0220 5041      SUBI	R20,1
    0221 4050      SBCI	R21,0
    0222 E281      LDI	R24,0x21
    0223 01F1      MOVW	R30,R2
    0224 8380      STD	Z+0,R24
(0207)     *psoft_stk-- = (INT8U)0x22;             /* R22   = 0x22                                             */
    0225 011A      MOVW	R2,R20
    0226 5041      SUBI	R20,1
    0227 4050      SBCI	R21,0
    0228 E282      LDI	R24,0x22
    0229 01F1      MOVW	R30,R2
    022A 8380      STD	Z+0,R24
(0208)     *psoft_stk-- = (INT8U)0x23;             /* R23   = 0x23                                             */
    022B 011A      MOVW	R2,R20
    022C 5041      SUBI	R20,1
    022D 4050      SBCI	R21,0
    022E E283      LDI	R24,0x23
    022F 01F1      MOVW	R30,R2
    0230 8380      STD	Z+0,R24
(0209)     *psoft_stk-- = (INT8U)0x24;             /* R24   = 0x24                                             */
    0231 011A      MOVW	R2,R20
    0232 5041      SUBI	R20,1
    0233 4050      SBCI	R21,0
    0234 E284      LDI	R24,0x24
    0235 01F1      MOVW	R30,R2
    0236 8380      STD	Z+0,R24
(0210)     *psoft_stk-- = (INT8U)0x25;             /* R25   = 0x25                                             */
    0237 011A      MOVW	R2,R20
    0238 5041      SUBI	R20,1
    0239 4050      SBCI	R21,0
    023A E285      LDI	R24,0x25
    023B 01F1      MOVW	R30,R2
    023C 8380      STD	Z+0,R24
(0211)     *psoft_stk-- = (INT8U)0x26;             /* R26   = 0x26                                             */
    023D 011A      MOVW	R2,R20
    023E 5041      SUBI	R20,1
    023F 4050      SBCI	R21,0
    0240 E286      LDI	R24,0x26
    0241 01F1      MOVW	R30,R2
    0242 8380      STD	Z+0,R24
(0212)     *psoft_stk-- = (INT8U)0x27;             /* R27   = 0x27                                             */
    0243 011A      MOVW	R2,R20
    0244 5041      SUBI	R20,1
    0245 4050      SBCI	R21,0
    0246 E287      LDI	R24,0x27
    0247 01F1      MOVW	R30,R2
    0248 8380      STD	Z+0,R24
(0213)                                             /* R28     R29:R28 is the software stack which gets ...     */
(0214)                                             /* R29     ... stored in the task's OS_TCB.                 */
(0215)     *psoft_stk-- = (INT8U)0x30;             /* R30   = 0x30                                             */
    0249 011A      MOVW	R2,R20
    024A 5041      SUBI	R20,1
    024B 4050      SBCI	R21,0
    024C E380      LDI	R24,0x30
    024D 01F1      MOVW	R30,R2
    024E 8380      STD	Z+0,R24
(0216)     *psoft_stk-- = (INT8U)0x31;             /* R31   = 0x31                                             */
    024F 011A      MOVW	R2,R20
    0250 5041      SUBI	R20,1
    0251 4050      SBCI	R21,0
    0252 E381      LDI	R24,0x31
    0253 01F1      MOVW	R30,R2
    0254 8380      STD	Z+0,R24
(0217)     *psoft_stk-- = (INT8U)0x00;             /* RAMPZ = 0x00                                             */
    0255 011A      MOVW	R2,R20
    0256 5041      SUBI	R20,1
    0257 4050      SBCI	R21,0
    0258 2444      CLR	R4
    0259 01F1      MOVW	R30,R2
    025A 8240      STD	Z+0,R4
(0218)     *psoft_stk-- = (INT8U)0x80;             /* SREG  = Interrupts enabled                               */
    025B 011A      MOVW	R2,R20
    025C 5041      SUBI	R20,1
    025D 4050      SBCI	R21,0
    025E E880      LDI	R24,0x80
    025F 01F1      MOVW	R30,R2
    0260 8380      STD	Z+0,R24
(0219)     tmp          = (INT16U)phard_stk;
    0261 01B5      MOVW	R22,R10
(0220)     *psoft_stk-- = (INT8U)(tmp >> 8);       /* SPH                                                      */
    0262 011A      MOVW	R2,R20
    0263 5041      SUBI	R20,1
    0264 4050      SBCI	R21,0
    0265 012B      MOVW	R4,R22
    0266 2C45      MOV	R4,R5
    0267 2455      CLR	R5
    0268 01F1      MOVW	R30,R2
    0269 8240      STD	Z+0,R4
(0221)     *psoft_stk   = (INT8U) tmp;             /* SPL                                                      */
    026A 01FA      MOVW	R30,R20
    026B 8360      STD	Z+0,R22
(0222)     return ((void *)psoft_stk);
    026C 018F      MOVW	R16,R30
    026D 940E0E55  CALL	pop_gset3
    026F 9508      RET
(0223) }
(0224) 
(0225) /*$PAGE*/
(0226) /*
(0227) *********************************************************************************************************
(0228) *                                           TASK SWITCH HOOK
(0229) *
(0230) * Description: This function is called when a task switch is performed.  This allows you to perform other
(0231) *              operations during a context switch.
(0232) *
(0233) * Arguments  : none
(0234) *
(0235) * Note(s)    : 1) Interrupts are disabled during this call.
(0236) *              2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
(0237) *                 will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the 
(0238) *                 task being switched out (i.e. the preempted task).
(0239) *********************************************************************************************************
(0240) */
(0241) #if (OS_CPU_HOOKS_EN > 0) && (OS_TASK_SW_HOOK_EN > 0)
(0242) void  OSTaskSwHook (void)
(0243) {
(0244) #ifdef OS_VIEW_MODULE
(0245)     OSView_TaskSwHook();
(0246) #endif
(0247) }
_OSTaskSwHook:
    0270 9508      RET
(0248) #endif
(0249) 
(0250) /*
(0251) *********************************************************************************************************
(0252) *                                           OS_TCBInit() HOOK
(0253) *
(0254) * Description: This function is called by OS_TCBInit() after setting up most of the TCB.
(0255) *
(0256) * Arguments  : ptcb    is a pointer to the TCB of the task being created.
(0257) *
(0258) * Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
(0259) *********************************************************************************************************
(0260) */
(0261) #if OS_CPU_HOOKS_EN > 0 && OS_VERSION > 203
(0262) void  OSTCBInitHook (OS_TCB *ptcb)
(0263) {
(0264)     ptcb = ptcb;                                           /* Prevent Compiler warning                 */
(0265) }
_OSTCBInitHook:
  ptcb                 --> R16
    0271 9508      RET
(0266) #endif
(0267) 
(0268) 
(0269) /*
(0270) *********************************************************************************************************
(0271) *                                               TICK HOOK
(0272) *
(0273) * Description: This function is called every tick.
(0274) *
(0275) * Arguments  : none
(0276) *
(0277) * Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
(0278) *********************************************************************************************************
(0279) */
(0280) #if (OS_CPU_HOOKS_EN > 0) && (OS_TIME_TICK_HOOK_EN > 0)
(0281) void  OSTimeTickHook (void)
(0282) {
(0283) #ifdef OS_VIEW_MODULE
(0284)     OSView_TickHook();
(0285) #endif
(0286) }
_OSTimeTickHook:
    0272 9508      RET
_main:
    0273 9723      SBIW	R28,3
FILE: C:\MICRIUM\Software\EvalBoards\Atmel\STK500\ATmega128\ICC\Ex1\app.c
(0001) /*
(0002) *************************************************************************************************************
(0003) *                                                uC/OS-II
(0004) *                                          The Real-Time Kernel
(0005) *
(0006) *                                         ATmega128  Sample code
(0007) *
(0008) * File : APP.C
(0009) * By   : Jean J. Labrosse
(0010) *************************************************************************************************************
(0011) */
(0012) 
(0013) #include <includes.h>
(0014) 
(0015) /*
(0016) **************************************************************************************************************
(0017) *                                               CONSTANTS
(0018) *
(0019) * Note(s) : 1) See OS_CFG.H for the default stack size: 'OS_TASK_STK_SIZE'
(0020) **************************************************************************************************************
(0021) */
(0022) 
(0023) #define  CPU_CLK_FREQ                  3684000L
(0024) #define  OS_TASK_STK_SIZE                  256    /* Default size for each task stack (Total stack size)    */
(0025) #define  OS_TASK_HARD_STK_SIZE              64    /* Default size for the hardware stack                    */
(0026) 
(0027) 
(0028) #define  OS_TASK_START_STK_SIZE        OS_TASK_STK_SIZE
(0029) #define  OS_TASK_START_HARD_STK_SIZE   OS_TASK_HARD_STK_SIZE
(0030) 
(0031) #define  OS_TASK_1_STK_SIZE            OS_TASK_STK_SIZE
(0032) #define  OS_TASK_1_HARD_STK_SIZE       OS_TASK_HARD_STK_SIZE
(0033) 
(0034) #define  OS_TASK_2_STK_SIZE            OS_TASK_STK_SIZE
(0035) #define  OS_TASK_2_HARD_STK_SIZE       OS_TASK_HARD_STK_SIZE
(0036) 
(0037) 
(0038) /*
(0039) **************************************************************************************************************
(0040) *                                               VARIABLES
(0041) **************************************************************************************************************
(0042) */
(0043) 
(0044) OS_STK  AppTaskStartStk[OS_TASK_START_STK_SIZE];
(0045) OS_STK  AppTask1Stk[OS_TASK_1_STK_SIZE];
(0046) OS_STK  AppTask2Stk[OS_TASK_2_STK_SIZE];
(0047) 
(0048) /*
(0049) **************************************************************************************************************
(0050) *                                           FUNCTION PROTOTYPES
(0051) **************************************************************************************************************
(0052) */
(0053) 
(0054)        void  main(void);
(0055)        
(0056) static void  AppTaskStart(void *p_arg);
(0057) static void  AppTaskCreate(void);
(0058) static void  AppTask1(void *p_arg);
(0059) static void  AppTask2(void *p_arg);
(0060) 
(0061) static void  AppIOInit(void);
(0062) 
(0063) static void  LED_Toggle(INT8U led);
(0064)  
(0065) /*
(0066) **************************************************************************************************************
(0067) *                                                MAIN
(0068) *
(0069) * Note(s): 1) You SHOULD use OS_TASK_STK_SIZE (see OS_CFG.H) when setting OSTaskStkSize prior to calling 
(0070) *             OSInit() because OS_TASK_IDLE_STK_SIZE and OS_TASK_STAT_STK_SIZE are set to this value in
(0071) *             OS_CFG.H.
(0072) **************************************************************************************************************
(0073) */
(0074) 
(0075) void  main (void)
(0076) {
(0077)     /*---- Any initialization code prior to calling OSInit() goes HERE --------------------------------*/
(0078) 
(0079)                                                 /* IMPORTANT: MUST be setup before calling 'OSInit()'  */
(0080)     OSTaskStkSize     = OS_TASK_STK_SIZE;       /* Setup the default stack size                        */
    0274 E080      LDI	R24,0
    0275 E091      LDI	R25,1
    0276 93900103  STS	_OSTaskStkSize+1,R25
    0278 93800102  STS	_OSTaskStkSize,R24
(0081)     OSTaskHardStkSize = OS_TASK_HARD_STK_SIZE;  /* Setup the default hardware stack size               */
    027A E480      LDI	R24,0x40
    027B E090      LDI	R25,0
    027C 93900101  STS	_OSTaskHardStkSize+1,R25
    027E 93800100  STS	_OSTaskHardStkSize,R24
(0082) 
(0083)     OSInit();                                   /* Initialize "uC/OS-II, The Real-Time Kernel"         */
    0280 940E042E  CALL	_OSInit
(0084) 
(0085)     /*---- Any initialization code before starting multitasking ---------------------------------------*/
(0086) 
(0087)     OSTaskStkSize     = OS_TASK_START_STK_SIZE;       /* Setup the total stack size                    */
    0282 E080      LDI	R24,0
    0283 E091      LDI	R25,1
    0284 93900103  STS	_OSTaskStkSize+1,R25
    0286 93800102  STS	_OSTaskStkSize,R24
(0088)     OSTaskHardStkSize = OS_TASK_START_HARD_STK_SIZE;  /* Setup the hardware stack size                 */
    0288 E480      LDI	R24,0x40
    0289 E090      LDI	R25,0
    028A 93900101  STS	_OSTaskHardStkSize+1,R25
    028C 93800100  STS	_OSTaskHardStkSize,R24
(0089)     OSTaskCreate(AppTaskStart, (void *)0, (OS_STK *)&AppTaskStartStk[OSTaskStkSize - 1], 0);
    028E 2422      CLR	R2
    028F 822A      STD	Y+2,R2
    0290 E084      LDI	R24,4
    0291 E093      LDI	R25,3
    0292 91E00102  LDS	R30,_OSTaskStkSize
    0294 91F00103  LDS	R31,_OSTaskStkSize+1
    0296 9731      SBIW	R30,1
    0297 0FE8      ADD	R30,R24
    0298 1FF9      ADC	R31,R25
    0299 83F9      STD	Y+1,R31
    029A 83E8      STD	Y+0,R30
    029B 2722      CLR	R18
    029C 2733      CLR	R19
    029D E900      LDI	R16,0x90
    029E E010      LDI	R17,0
    029F 940E0C05  CALL	_OSTaskCreate
(0090) 
(0091)     /*---- Create any other task you want before we start multitasking --------------------------------*/
(0092) 
(0093)     OSStart();                                  /* Start multitasking (i.e. give control to uC/OS-II)  */
    02A1 940E050D  CALL	_OSStart
(0094) }
    02A3 9623      ADIW	R28,3
    02A4 9508      RET
_AppTaskStart:
  p_arg                --> R20
    02A5 940E0E5E  CALL	push_gset1
    02A7 01A8      MOVW	R20,R16
(0095) 
(0096) /*
(0097) *********************************************************************************************************
(0098) *                                          STARTUP TASK

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -