📄 partest.s43
字号:
LOCFRAME CSTACK, 6, STACK
PUSH.W R10
CFI R10 Frame(CFA, -4)
CFI CFA SP+4
PUSH.W R11
CFI R11 Frame(CFA, -6)
CFI CFA SP+6
MOV.W R12, R10
MOV.W R14, R11
// 140 /* Set or clear the output [in this case show or hide the '*' character. */
// 141 if( uxLED < ( portBASE_TYPE ) partstNUM_LEDS )
CMP.W #0x4, R10
JC ??vParTestSetLED_0
// 142 {
// 143 vTaskSuspendAll();
CALL #vTaskSuspendAll
// 144 {
// 145 // if( xValue )
// 146 // {
// 147 // /* Turn on the segments required to show the '*'. */
// 148 // *( ucRHSSegments[ uxLED ] ) = partstSEGMENTS_ON;
// 149 // *( ucLHSSegments[ uxLED ] ) = partstSEGMENTS_ON;
// 150 // }
// 151 // else
// 152 // {
// 153 // /* Turn off all the segments. */
// 154 // *( ucRHSSegments[ uxLED ] ) = partstSEGMENTS_OFF;
// 155 // *( ucLHSSegments[ uxLED ] ) = partstSEGMENTS_OFF;
// 156 // }
// 157 }
// 158 xTaskResumeAll();
CALL #xTaskResumeAll
// 159 }
// 160 }
??vParTestSetLED_0:
POP.W R11
CFI R11 SameValue
CFI CFA SP+4
POP.W R10
CFI R10 SameValue
CFI CFA SP+2
RET
CFI EndBlock cfiBlock1
// 161 /*-----------------------------------------------------------*/
// 162
RSEG CODE:CODE:REORDER:NOROOT(1)
// 163 void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
vParTestToggleLED:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function vParTestToggleLED
// 164 {
FUNCALL vParTestToggleLED, vTaskSuspendAll
LOCFRAME CSTACK, 4, STACK
FUNCALL vParTestToggleLED, xTaskResumeAll
LOCFRAME CSTACK, 4, STACK
PUSH.W R10
CFI R10 Frame(CFA, -4)
CFI CFA SP+4
MOV.W R12, R10
// 165 static unsigned portSHORT sState = pdFALSE;
// 166
// 167 if( uxLED < ( portBASE_TYPE ) partstNUM_LEDS )
CMP.W #0x4, R10
JC ??vParTestToggleLED_0
// 168 {
// 169 vTaskSuspendAll();
CALL #vTaskSuspendAll
// 170 {
// 171 /* If the '*' is already showing - hide it. If it is not already
// 172 showing then show it. */
// 173 /* if( *( ucRHSSegments[ uxLED ] ) )
// 174 {
// 175 *( ucRHSSegments[ uxLED ] ) = partstSEGMENTS_OFF;
// 176 *( ucLHSSegments[ uxLED ] ) = partstSEGMENTS_OFF;
// 177 }
// 178 else
// 179 {
// 180 *( ucRHSSegments[ uxLED ] ) = partstSEGMENTS_ON;
// 181 *( ucLHSSegments[ uxLED ] ) = partstSEGMENTS_ON;
// 182 }
// 183 */
// 184 if( sState )
CMP.W #0x0, &??sState
JEQ ??vParTestToggleLED_1
// 185 {
// 186
// 187 switch ( uxLED )
MOV.W R10, R15
SUB.W #0x0, R15
JEQ ??vParTestToggleLED_2
SUB.W #0x1, R15
JEQ ??vParTestToggleLED_3
SUB.W #0x1, R15
JEQ ??vParTestToggleLED_4
SUB.W #0x1, R15
JEQ ??vParTestToggleLED_5
JMP ??vParTestToggleLED_6
// 188
// 189 {
// 190 case 0: P4OUT_bit.P4OUT_0 = 1; // turn LED on
??vParTestToggleLED_2:
BIS.B #0x1, &0x1d
JMP ??vParTestToggleLED_6
// 191 break;
// 192
// 193 case 1: P4OUT_bit.P4OUT_1 = 1;
??vParTestToggleLED_3:
BIS.B #0x2, &0x1d
JMP ??vParTestToggleLED_6
// 194 break;
// 195
// 196 case 2: P4OUT_bit.P4OUT_2 = 1;
??vParTestToggleLED_4:
BIS.B #0x4, &0x1d
JMP ??vParTestToggleLED_6
// 197 break;
// 198
// 199 case 3: P4OUT_bit.P4OUT_3 = 1;
??vParTestToggleLED_5:
BIS.B #0x8, &0x1d
JMP ??vParTestToggleLED_6
// 200 break;
// 201
// 202 default:
// 203 break;
// 204 }
// 205
// 206
// 207 // P4OUT |= uxLED;
// 208 }
// 209 else
// 210 {
// 211 switch ( uxLED )
??vParTestToggleLED_1:
MOV.W R10, R15
SUB.W #0x0, R15
JEQ ??vParTestToggleLED_7
SUB.W #0x1, R15
JEQ ??vParTestToggleLED_8
SUB.W #0x1, R15
JEQ ??vParTestToggleLED_9
SUB.W #0x1, R15
JEQ ??vParTestToggleLED_10
JMP ??vParTestToggleLED_6
// 212
// 213 {
// 214 case 0: P4OUT_bit.P4OUT_0 = 0; // turn LED off
??vParTestToggleLED_7:
BIC.B #0x1, &0x1d
JMP ??vParTestToggleLED_6
// 215 break;
// 216
// 217 case 1: P4OUT_bit.P4OUT_1 = 0;
??vParTestToggleLED_8:
BIC.B #0x2, &0x1d
JMP ??vParTestToggleLED_6
// 218 break;
// 219
// 220 case 2: P4OUT_bit.P4OUT_2 = 0;
??vParTestToggleLED_9:
BIC.B #0x4, &0x1d
JMP ??vParTestToggleLED_6
// 221 break;
// 222
// 223 case 3: P4OUT_bit.P4OUT_3 = 0;
??vParTestToggleLED_10:
BIC.B #0x8, &0x1d
// 224 break;
// 225
// 226 default:
// 227 break;
// 228
// 229 }
// 230
// 231 // P4OUT &= ~uxLED;
// 232 }
// 233
// 234 sState = !sState;
??vParTestToggleLED_6:
CMP.W #0x0, &??sState
JNE ??vParTestToggleLED_11
MOV.B #0x1, R15
JMP ??vParTestToggleLED_12
??vParTestToggleLED_11:
MOV.B #0x0, R15
??vParTestToggleLED_12:
AND.W #0xff, R15
MOV.W R15, &??sState
// 235
// 236 }
// 237 xTaskResumeAll();
CALL #xTaskResumeAll
// 238 }
// 239 else
// 240 {
// 241 // if( uxLED == partstON_BOARD_LED )
// 242 // {
// 243 // /* The request related to the genuine on board LED. */
// 244 // prvToggleOnBoardLED();
// 245 // }
// 246 }
// 247 }
??vParTestToggleLED_0:
POP.W R10
CFI R10 SameValue
CFI CFA SP+2
RET
CFI EndBlock cfiBlock2
RSEG DATA16_Z:DATA:SORT:NOROOT(1)
REQUIRE ?cstart_init_zero
??sState:
DS8 2
RSEG CODE:CODE:REORDER:NOROOT(1)
?setjmp_save_r4:
REQUIRE ?setjmp_r4
REQUIRE ?longjmp_r4
RSEG CODE:CODE:REORDER:NOROOT(1)
?setjmp_save_r5:
REQUIRE ?setjmp_r5
REQUIRE ?longjmp_r5
END
// 248 /*-----------------------------------------------------------*/
// 249
// 250 static void prvToggleOnBoardLED( void )
// 251 {
// 252 static unsigned portSHORT sState = pdFALSE;
// 253
// 254 /* Toggle the state of the single genuine on board LED. */
// 255 if( sState )
// 256 {
// 257 P1OUT |= mainON_BOARD_LED_BIT;
// 258 }
// 259 else
// 260 {
// 261 P1OUT &= ~mainON_BOARD_LED_BIT;
// 262 }
// 263
// 264 sState = !sState;
// 265 }
// 266 /*-----------------------------------------------------------*/
// 267
// 268
//
// 160 bytes in segment CODE
// 1 byte in segment DATA16_AN
// 2 bytes in segment DATA16_Z
//
// 160 bytes of CODE memory
// 2 bytes of DATA memory (+ 1 byte shared)
//
//Errors: none
//Warnings: 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -