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

📄 os_cpu_c.lis

📁 atmel128L
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0010           ; *              been placed on the stack in the proper order.
 0010           ; *
 0010           ; * Note(s)    : Interrupts are enabled when your task starts executing. You can change this by setting the
 0010           ; *              SREG to 0x00 instead. In this case, interrupts would be disabled upon task startup. The
 0010           ; *              application code would be responsible for enabling interrupts at the beginning of the task
 0010           ; *              code. You will need to modify OSTaskIdle() and OSTaskStat() so that they enable interrupts.
 0010           ; *              Failure to do this will make your system crash!
 0010           ; *
 0010           ; *              The AVR return stack is placed OS_TASK_HARD_STK_SIZE bytes before the bottom of the task's
 0010           ; *              stack.
 0010           ; *
 0010           ; *              (1) IMPORTANT: The ICC compiler handles function pointers by actually passing the pointer
 0010           ; *                             to a location in Flash that actually contains the pointer to the function.
 0010           ; **********************************************************************************************************
 0010           ; */
 0010           ; 
 0010           ; OS_STK  *OSTaskStkInit (void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT16U opt)
 0010           ; {
 0010                   .dbline 173
 0010           ;     INT8U  *psoft_stk;
 0010           ;     INT8U  *phard_stk;                      /* Temp. variable used for setting up AVR hardware stack    */
 0010           ;     INT16U  tmp;
 0010           ; 
 0010           ; 
 0010           ;     opt          = opt;                     /* 'opt' is not used, prevent warning                       */
 0010                   .dbline 174
 0010           ;     psoft_stk    = (INT8U *)ptos;
 0010 4E81              ldd R20,y+6
 0012 5F81              ldd R21,y+7
 0014                   .dbline 175
 0014           ;     phard_stk    = (INT8U *)ptos
 0014 20900200          lds R2,_OSTaskStkSize
 0018 30900300          lds R3,_OSTaskStkSize+1
 001C 2A01              movw R4,R20
 001E 4218              sub R4,R2
 0020 5308              sbc R5,R3
 0022 A0900000          lds R10,_OSTaskHardStkSize
 0026 B0900100          lds R11,_OSTaskHardStkSize+1
 002A A40C              add R10,R4
 002C B51C              adc R11,R5
 002E                   .dbline 179
 002E           ;                  - OSTaskStkSize            /* Task stack size                                          */
 002E           ;                  + OSTaskHardStkSize;       /* AVR return stack ("hardware stack")                      */
 002E           ; 
 002E           ;     tmp          = *(INT16U const *)task;   /* (1) ICC compiler handles function pointers indirectly!   */
 002E F801              movw R30,R16
 0030 6591              lpm R22,Z+
 0032 7491              lpm R23,Z
 0034                   .dbline 181
 0034           ; 
 0034           ;     *phard_stk-- = (INT8U)tmp;              /* Put task start address on top of "hardware stack"        */
 0034 1501              movw R2,R10
 0036 C101              movw R24,R2
 0038 0197              sbiw R24,1
 003A F101              movw R30,R2
 003C 6083              std z+0,R22
 003E                   .dbline 182
 003E           ;     *phard_stk-- = (INT8U)(tmp >> 8);
 003E 1C01              movw R2,R24
 0040 0197              sbiw R24,1
 0042 5C01              movw R10,R24
 0044 2B01              movw R4,R22
 0046 452C              mov R4,R5
 0048 5524              clr R5
 004A F101              movw R30,R2
 004C 4082              std z+0,R4
 004E                   .dbline 184
 004E           ; 
 004E           ;     *psoft_stk-- = (INT8U)0x00;             /* R0    = 0x00                                             */
 004E 1A01              movw R2,R20
 0050 4150              subi R20,1
 0052 5040              sbci R21,0
 0054 4424              clr R4
 0056 F101              movw R30,R2
 0058 4082              std z+0,R4
 005A                   .dbline 185
 005A           ;     *psoft_stk-- = (INT8U)0x01;             /* R1    = 0x01                                             */
 005A 1A01              movw R2,R20
 005C 4150              subi R20,1
 005E 5040              sbci R21,0
 0060 81E0              ldi R24,1
 0062 F101              movw R30,R2
 0064 8083              std z+0,R24
 0066                   .dbline 186
 0066           ;     *psoft_stk-- = (INT8U)0x02;             /* R2    = 0x02                                             */
 0066 1A01              movw R2,R20
 0068 4150              subi R20,1
 006A 5040              sbci R21,0
 006C 82E0              ldi R24,2
 006E F101              movw R30,R2
 0070 8083              std z+0,R24
 0072                   .dbline 187
 0072           ;     *psoft_stk-- = (INT8U)0x03;             /* R3    = 0x03                                             */
 0072 1A01              movw R2,R20
 0074 4150              subi R20,1
 0076 5040              sbci R21,0
 0078 83E0              ldi R24,3
 007A F101              movw R30,R2
 007C 8083              std z+0,R24
 007E                   .dbline 188
 007E           ;     *psoft_stk-- = (INT8U)0x04;             /* R4    = 0x04                                             */
 007E 1A01              movw R2,R20
 0080 4150              subi R20,1
 0082 5040              sbci R21,0
 0084 84E0              ldi R24,4
 0086 F101              movw R30,R2
 0088 8083              std z+0,R24
 008A                   .dbline 189
 008A           ;     *psoft_stk-- = (INT8U)0x05;             /* R5    = 0x05                                             */
 008A 1A01              movw R2,R20
 008C 4150              subi R20,1
 008E 5040              sbci R21,0
 0090 85E0              ldi R24,5
 0092 F101              movw R30,R2
 0094 8083              std z+0,R24
 0096                   .dbline 190
 0096           ;     *psoft_stk-- = (INT8U)0x06;             /* R6    = 0x06                                             */
 0096 1A01              movw R2,R20
 0098 4150              subi R20,1
 009A 5040              sbci R21,0
 009C 86E0              ldi R24,6
 009E F101              movw R30,R2
 00A0 8083              std z+0,R24
 00A2                   .dbline 191
 00A2           ;     *psoft_stk-- = (INT8U)0x07;             /* R7    = 0x07                                             */
 00A2 1A01              movw R2,R20
 00A4 4150              subi R20,1
 00A6 5040              sbci R21,0
 00A8 87E0              ldi R24,7
 00AA F101              movw R30,R2
 00AC 8083              std z+0,R24
 00AE                   .dbline 192
 00AE           ;     *psoft_stk-- = (INT8U)0x08;             /* R8    = 0x08                                             */
 00AE 1A01              movw R2,R20
 00B0 4150              subi R20,1
 00B2 5040              sbci R21,0
 00B4 88E0              ldi R24,8
 00B6 F101              movw R30,R2
 00B8 8083              std z+0,R24
 00BA                   .dbline 193
 00BA           ;     *psoft_stk-- = (INT8U)0x09;             /* R9    = 0x09                                             */
 00BA 1A01              movw R2,R20
 00BC 4150              subi R20,1
 00BE 5040              sbci R21,0
 00C0 89E0              ldi R24,9
 00C2 F101              movw R30,R2
 00C4 8083              std z+0,R24
 00C6                   .dbline 194
 00C6           ;     *psoft_stk-- = (INT8U)0x10;             /* R10   = 0x10                                             */
 00C6 1A01              movw R2,R20
 00C8 4150              subi R20,1
 00CA 5040              sbci R21,0
 00CC 80E1              ldi R24,16
 00CE F101              movw R30,R2
 00D0 8083              std z+0,R24
 00D2                   .dbline 195
 00D2           ;     *psoft_stk-- = (INT8U)0x11;             /* R11   = 0x11                                             */
 00D2 1A01              movw R2,R20
 00D4 4150              subi R20,1
 00D6 5040              sbci R21,0
 00D8 81E1              ldi R24,17
 00DA F101              movw R30,R2
 00DC 8083              std z+0,R24
 00DE                   .dbline 196
 00DE           ;     *psoft_stk-- = (INT8U)0x12;             /* R12   = 0x12                                             */
 00DE 1A01              movw R2,R20
 00E0 4150              subi R20,1
 00E2 5040              sbci R21,0
 00E4 82E1              ldi R24,18
 00E6 F101              movw R30,R2
 00E8 8083              std z+0,R24
 00EA                   .dbline 197
 00EA           ;     *psoft_stk-- = (INT8U)0x13;             /* R13   = 0x13                                             */
 00EA 1A01              movw R2,R20
 00EC 4150              subi R20,1
 00EE 5040              sbci R21,0
 00F0 83E1              ldi R24,19
 00F2 F101              movw R30,R2
 00F4 8083              std z+0,R24
 00F6                   .dbline 198
 00F6           ;     *psoft_stk-- = (INT8U)0x14;             /* R14   = 0x14                                             */
 00F6 1A01              movw R2,R20
 00F8 4150              subi R20,1
 00FA 5040              sbci R21,0
 00FC 84E1              ldi R24,20
 00FE F101              movw R30,R2
 0100 8083              std z+0,R24
 0102                   .dbline 199
 0102           ;     *psoft_stk-- = (INT8U)0x15;             /* R15   = 0x15                                             */
 0102 1A01              movw R2,R20
 0104 4150              subi R20,1
 0106 5040              sbci R21,0
 0108 85E1              ldi R24,21
 010A F101              movw R30,R2
 010C 8083              std z+0,R24
 010E                   .dbline 200
 010E           ;     tmp          = (INT16U)p_arg;
 010E B901              movw R22,R18
 0110                   .dbline 201
 0110           ;     *psoft_stk-- = (INT8U)tmp;              /* 'p_arg' passed in R17:R16                                */
 0110 1A01              movw R2,R20
 0112 4150              subi R20,1
 0114 5040              sbci R21,0
 0116 F101              movw R30,R2
 0118 6083              std z+0,R22
 011A                   .dbline 202
 011A           ;     *psoft_stk-- = (INT8U)(tmp >> 8);
 011A 1A01              movw R2,R20
 011C 4150              subi R20,1
 011E 5040              sbci R21,0
 0120 2B01              movw R4,R22
 0122 452C              mov R4,R5
 0124 5524              clr R5
 0126 F101              movw R30,R2
 0128 4082              std z+0,R4
 012A                   .dbline 203
 012A           ;     *psoft_stk-- = (INT8U)0x18;             /* R18   = 0x18                                             */
 012A 1A01              movw R2,R20
 012C 4150              subi R20,1
 012E 5040              sbci R21,0
 0130 88E1              ldi R24,24
 0132 F101              movw R30,R2
 0134 8083              std z+0,R24
 0136                   .dbline 204
 0136           ;     *psoft_stk-- = (INT8U)0x19;             /* R19   = 0x19                                             */
 0136 1A01              movw R2,R20
 0138 4150              subi R20,1
 013A 5040              sbci R21,0
 013C 89E1              ldi R24,25
 013E F101              movw R30,R2
 0140 8083              std z+0,R24
 0142                   .dbline 205
 0142           ;     *psoft_stk-- = (INT8U)0x20;             /* R20   = 0x20                                             */
 0142 1A01              movw R2,R20
 0144 4150              subi R20,1
 0146 5040              sbci R21,0
 0148 80E2              ldi R24,32

⌨️ 快捷键说明

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