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

📄 partest.s43

📁 MSP430 IAR project with FreeRTOS port.
💻 S43
📖 第 1 页 / 共 2 页
字号:
        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 + -