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

📄 os_cpu_c.lis

📁 移植ucos2.76到mega128中软件仿真成功。 需要在iccavr7.13中编译
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0014           ; *
 0014           ; *              The AVR return stack is placed OS_TASK_HARD_STK_SIZE bytes before the bottom of the task's
 0014           ; *              stack.
 0014           ; *
 0014           ; *              (1) IMPORTANT: The ICC compiler handles function pointers by actually passing the pointer
 0014           ; *                             to a location in Flash that actually contains the pointer to the function.
 0014           ; **********************************************************************************************************
 0014           ; */
 0014           ; 
 0014           ; OS_STK  *OSTaskStkInit (void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT16U opt)
 0014           ; {
 0014                   .dbline 173
 0014           ;     INT8U  *psoft_stk;
 0014           ;     INT8U  *phard_stk;                      /* Temp. variable used for setting up AVR hardware stack    */
 0014           ;     INT16U  tmp;
 0014           ; 
 0014           ; 
 0014           ;     opt          = opt;                     /* 'opt' is not used, prevent warning                       */
 0014                   .dbline 174
 0014           ;     psoft_stk    = (INT8U *)ptos;
 0014 A501              movw R20,R10
 0016                   .dbline 175
 0016           ;     phard_stk    = (INT8U *)ptos
 0016 20900200          lds R2,_OSTaskStkSize
 001A 30900300          lds R3,_OSTaskStkSize+1
 001E 2501              movw R4,R10
 0020 4218              sub R4,R2
 0022 5308              sbc R5,R3
 0024 60910000          lds R22,_OSTaskHardStkSize
 0028 70910100          lds R23,_OSTaskHardStkSize+1
 002C 640D              add R22,R4
 002E 751D              adc R23,R5
 0030                   .dbline 179
 0030           ;                  - OSTaskStkSize            /* Task stack size                                          */
 0030           ;                  + OSTaskHardStkSize;       /* AVR return stack ("hardware stack")                      */
 0030           ; 
 0030           ;     tmp          = *(INT16U const *)task;   /* (1) ICC compiler handles function pointers indirectly!   */
 0030 F801              movw R30,R16
 0032 A790              elpm R10,Z+
 0034 B690              elpm R11,Z
 0036                   .dbline 181
 0036           ; 
 0036           ;     *phard_stk-- = (INT8U)tmp;              /* Put task start address on top of "hardware stack"        */
 0036 1B01              movw R2,R22
 0038 6150              subi R22,1
 003A 7040              sbci R23,0
 003C F101              movw R30,R2
 003E A082              std z+0,R10
 0040                   .dbline 182
 0040           ;     *phard_stk-- = (INT8U)(tmp >> 8);
 0040 2B01              movw R4,R22
 0042 6150              subi R22,1
 0044 7040              sbci R23,0
 0046 1501              movw R2,R10
 0048 232C              mov R2,R3
 004A 3324              clr R3
 004C F201              movw R30,R4
 004E 2082              std z+0,R2
 0050                   .dbline 184
 0050           ; 
 0050           ;     *psoft_stk-- = (INT8U)0x00;             /* R0    = 0x00                                             */
 0050 6A01              movw R12,R20
 0052 4150              subi R20,1
 0054 5040              sbci R21,0
 0056 2224              clr R2
 0058 F601              movw R30,R12
 005A 2082              std z+0,R2
 005C                   .dbline 185
 005C           ;     *psoft_stk-- = (INT8U)0x01;             /* R1    = 0x01                                             */
 005C 6A01              movw R12,R20
 005E 4150              subi R20,1
 0060 5040              sbci R21,0
 0062 81E0              ldi R24,1
 0064 F601              movw R30,R12
 0066 8083              std z+0,R24
 0068                   .dbline 186
 0068           ;     *psoft_stk-- = (INT8U)0x02;             /* R2    = 0x02                                             */
 0068 6A01              movw R12,R20
 006A 4150              subi R20,1
 006C 5040              sbci R21,0
 006E 82E0              ldi R24,2
 0070 F601              movw R30,R12
 0072 8083              std z+0,R24
 0074                   .dbline 187
 0074           ;     *psoft_stk-- = (INT8U)0x03;             /* R3    = 0x03                                             */
 0074 6A01              movw R12,R20
 0076 4150              subi R20,1
 0078 5040              sbci R21,0
 007A 83E0              ldi R24,3
 007C F601              movw R30,R12
 007E 8083              std z+0,R24
 0080                   .dbline 188
 0080           ;     *psoft_stk-- = (INT8U)0x04;             /* R4    = 0x04                                             */
 0080 6A01              movw R12,R20
 0082 4150              subi R20,1
 0084 5040              sbci R21,0
 0086 84E0              ldi R24,4
 0088 F601              movw R30,R12
 008A 8083              std z+0,R24
 008C                   .dbline 189
 008C           ;     *psoft_stk-- = (INT8U)0x05;             /* R5    = 0x05                                             */
 008C 6A01              movw R12,R20
 008E 4150              subi R20,1
 0090 5040              sbci R21,0
 0092 85E0              ldi R24,5
 0094 F601              movw R30,R12
 0096 8083              std z+0,R24
 0098                   .dbline 190
 0098           ;     *psoft_stk-- = (INT8U)0x06;             /* R6    = 0x06                                             */
 0098 6A01              movw R12,R20
 009A 4150              subi R20,1
 009C 5040              sbci R21,0
 009E 86E0              ldi R24,6
 00A0 F601              movw R30,R12
 00A2 8083              std z+0,R24
 00A4                   .dbline 191
 00A4           ;     *psoft_stk-- = (INT8U)0x07;             /* R7    = 0x07                                             */
 00A4 6A01              movw R12,R20
 00A6 4150              subi R20,1
 00A8 5040              sbci R21,0
 00AA 87E0              ldi R24,7
 00AC F601              movw R30,R12
 00AE 8083              std z+0,R24
 00B0                   .dbline 192
 00B0           ;     *psoft_stk-- = (INT8U)0x08;             /* R8    = 0x08                                             */
 00B0 6A01              movw R12,R20
 00B2 4150              subi R20,1
 00B4 5040              sbci R21,0
 00B6 88E0              ldi R24,8
 00B8 F601              movw R30,R12
 00BA 8083              std z+0,R24
 00BC                   .dbline 193
 00BC           ;     *psoft_stk-- = (INT8U)0x09;             /* R9    = 0x09                                             */
 00BC 6A01              movw R12,R20
 00BE 4150              subi R20,1
 00C0 5040              sbci R21,0
 00C2 89E0              ldi R24,9
 00C4 F601              movw R30,R12
 00C6 8083              std z+0,R24
 00C8                   .dbline 194
 00C8           ;     *psoft_stk-- = (INT8U)0x10;             /* R10   = 0x10                                             */
 00C8 6A01              movw R12,R20
 00CA 4150              subi R20,1
 00CC 5040              sbci R21,0
 00CE 80E1              ldi R24,16
 00D0 F601              movw R30,R12
 00D2 8083              std z+0,R24
 00D4                   .dbline 195
 00D4           ;     *psoft_stk-- = (INT8U)0x11;             /* R11   = 0x11                                             */
 00D4 6A01              movw R12,R20
 00D6 4150              subi R20,1
 00D8 5040              sbci R21,0
 00DA 81E1              ldi R24,17
 00DC F601              movw R30,R12
 00DE 8083              std z+0,R24
 00E0                   .dbline 196
 00E0           ;     *psoft_stk-- = (INT8U)0x12;             /* R12   = 0x12                                             */
 00E0 6A01              movw R12,R20
 00E2 4150              subi R20,1
 00E4 5040              sbci R21,0
 00E6 82E1              ldi R24,18
 00E8 F601              movw R30,R12
 00EA 8083              std z+0,R24
 00EC                   .dbline 197
 00EC           ;     *psoft_stk-- = (INT8U)0x13;             /* R13   = 0x13                                             */
 00EC 6A01              movw R12,R20
 00EE 4150              subi R20,1
 00F0 5040              sbci R21,0
 00F2 83E1              ldi R24,19
 00F4 F601              movw R30,R12
 00F6 8083              std z+0,R24
 00F8                   .dbline 198
 00F8           ;     *psoft_stk-- = (INT8U)0x14;             /* R14   = 0x14                                             */
 00F8 6A01              movw R12,R20
 00FA 4150              subi R20,1
 00FC 5040              sbci R21,0
 00FE 84E1              ldi R24,20
 0100 F601              movw R30,R12
 0102 8083              std z+0,R24
 0104                   .dbline 199
 0104           ;     *psoft_stk-- = (INT8U)0x15;             /* R15   = 0x15                                             */
 0104 6A01              movw R12,R20
 0106 4150              subi R20,1
 0108 5040              sbci R21,0
 010A 85E1              ldi R24,21
 010C F601              movw R30,R12
 010E 8083              std z+0,R24
 0110                   .dbline 200
 0110           ;     tmp          = (INT16U)p_arg;
 0110 5901              movw R10,R18
 0112                   .dbline 201
 0112           ;     *psoft_stk-- = (INT8U)tmp;              /* 'p_arg' passed in R17:R16                                */
 0112 6A01              movw R12,R20
 0114 4150              subi R20,1
 0116 5040              sbci R21,0
 0118 F601              movw R30,R12
 011A A082              std z+0,R10
 011C                   .dbline 202
 011C           ;     *psoft_stk-- = (INT8U)(tmp >> 8);
 011C 6A01              movw R12,R20
 011E 4150              subi R20,1
 0120 5040              sbci R21,0
 0122 1501              movw R2,R10
 0124 232C              mov R2,R3
 0126 3324              clr R3
 0128 F601              movw R30,R12
 012A 2082              std z+0,R2
 012C                   .dbline 203
 012C           ;     *psoft_stk-- = (INT8U)0x18;             /* R18   = 0x18                                             */
 012C 6A01              movw R12,R20
 012E 4150              subi R20,1
 0130 5040              sbci R21,0
 0132 88E1              ldi R24,24
 0134 F601              movw R30,R12
 0136 8083              std z+0,R24
 0138                   .dbline 204
 0138           ;     *psoft_stk-- = (INT8U)0x19;             /* R19   = 0x19                                             */
 0138 6A01              movw R12,R20
 013A 4150              subi R20,1
 013C 5040              sbci R21,0
 013E 89E1              ldi R24,25
 0140 F601              movw R30,R12
 0142 8083              std z+0,R24
 0144                   .dbline 205
 0144           ;     *psoft_stk-- = (INT8U)0x20;             /* R20   = 0x20                                             */
 0144 6A01              movw R12,R20
 0146 4150              subi R20,1
 0148 5040              sbci R21,0
 014A 80E2              ldi R24,32
 014C F601              movw R30,R12
 014E 8083              std z+0,R24
 0150                   .dbline 206
 0150           ;     *psoft_stk-- = (INT8U)0x21;             /* R21   = 0x21                                             */
 0150 6A01              movw R12,R20
 0152 4150              subi R20,1
 0154 5040              sbci R21,0
 0156 81E2              ldi R24,33
 0158 F601              movw R30,R12
 015A 8083              std z+0,R24
 015C                   .dbline 207
 015C           ;     *psoft_stk-- = (INT8U)0x22;             /* R22   = 0x22                                             */
 015C 6A01              movw R12,R20
 015E 4150              subi R20,1
 0160 5040              sbci R21,0
 0162 82E2              ldi R24,34
 0164 F601              movw R30,R12
 0166 8083              std z+0,R24
 0168                   .dbline 208
 0168           ;     *psoft_stk-- = (INT8U)0x23;             /* R23   = 0x23                                             */
 0168 6A01              movw R12,R20
 016A 4150              subi R20,1
 016C 5040              sbci R21,0
 016E 83E2              ldi R24,35
 0170 F601              movw R30,R12
 0172 8083              std z+0,R24
 0174                   .dbline 209
 0174           ;     *psoft_stk-- = (INT8U)0x24;             /* R24   = 0x24                                             */
 0174 6A01              movw R12,R20
 0176 4150              subi R20,1
 0178 5040              sbci R21,0
 017A 84E2              ldi R24,36
 017C F601              movw R30,R12
 017E 8083              std z+0,R24
 0180                   .dbline 210
 0180           ;     *psoft_stk-- = (INT8U)0x25;             /* R25   = 0x25                                             */

⌨️ 快捷键说明

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