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

📄 main.s43

📁 MSP430 IAR project with FreeRTOS port.
💻 S43
📖 第 1 页 / 共 3 页
字号:
//  307     P3SEL_bit.P3SEL_0 = 0;	// 0 is digital I/O
        BIC.B   #0x1, &0x1b
//  308     P3SEL_bit.P3SEL_1 = 0;	// 0 is digital I/O
        BIC.B   #0x2, &0x1b
//  309     P3SEL_bit.P3SEL_2 = 0;	// 0 is digital I/O
        BIC.B   #0x4, &0x1b
//  310     P3SEL_bit.P3SEL_3 = 0;	// 0 is digital I/O
        BIC.B   #0x8, &0x1b
//  311 	
//  312     P3DIR_bit.P3DIR_0 = 0;	// 1 is input
        BIC.B   #0x1, &0x1a
//  313     P3DIR_bit.P3DIR_1 = 0;	// 1 is input
        BIC.B   #0x2, &0x1a
//  314     P3DIR_bit.P3DIR_2 = 0;	// 1 is input
        BIC.B   #0x4, &0x1a
//  315     P3DIR_bit.P3DIR_3 = 0;	// 1 is input
        BIC.B   #0x8, &0x1a
//  316 
//  317     // UART PINS
//  318     
//  319     // P4:  LED's are on P4:
//  320     
//  321     // LED4:  P4.0
//  322     // LED3:  P4.1
//  323     // LED2:  P4.2
//  324     // LED1:  P4.3
//  325 
//  326     P4SEL_bit.P4SEL_0 = 0;	// 0 is digital I/O
        BIC.B   #0x1, &0x1f
//  327     P4SEL_bit.P4SEL_1 = 0;	// 0 is digital I/O
        BIC.B   #0x2, &0x1f
//  328     P4SEL_bit.P4SEL_2 = 0;	// 0 is digital I/O
        BIC.B   #0x4, &0x1f
//  329     P4SEL_bit.P4SEL_3 = 0;	// 0 is digital I/O
        BIC.B   #0x8, &0x1f
//  330     P4SEL_bit.P4SEL_4 = 0;	// 0 is digital I/O
        BIC.B   #0x10, &0x1f
//  331     P4SEL_bit.P4SEL_5 = 0;	// 0 is digital I/O
        BIC.B   #0x20, &0x1f
//  332     P4SEL_bit.P4SEL_6 = 0;	// 0 is digital I/O
        BIC.B   #0x40, &0x1f
//  333     P4SEL_bit.P4SEL_7 = 0;	// 0 is digital I/O
        BIC.B   #0x80, &0x1f
//  334 
//  335     P4DIR_bit.P4DIR_0 = 1;	// 1 is output
        BIS.B   #0x1, &0x1e
//  336     P4DIR_bit.P4DIR_1 = 1;	// 1 is output
        BIS.B   #0x2, &0x1e
//  337     P4DIR_bit.P4DIR_2 = 1;	// 1 is output
        BIS.B   #0x4, &0x1e
//  338     P4DIR_bit.P4DIR_3 = 1;	// 1 is output
        BIS.B   #0x8, &0x1e
//  339     P4DIR_bit.P4DIR_4 = 1;	// 1 is output  -- NC
        BIS.B   #0x10, &0x1e
//  340     P4DIR_bit.P4DIR_5 = 0;	// 0 is input
        BIC.B   #0x20, &0x1e
//  341     P4DIR_bit.P4DIR_6 = 0;	// 0 is input
        BIC.B   #0x40, &0x1e
//  342     P4DIR_bit.P4DIR_7 = 1;	// 1 is output  -- NC
        BIS.B   #0x80, &0x1e
//  343 
//  344     // P5:
//  345 
//  346     P5SEL_bit.P5SEL_0 = 0;	// 0 is digital I/O
        BIC.B   #0x1, &0x33
//  347     P5SEL_bit.P5SEL_1 = 0;	// 0 is digital I/O
        BIC.B   #0x2, &0x33
//  348     P5SEL_bit.P5SEL_2 = 0;	// 0 is digital I/O
        BIC.B   #0x4, &0x33
//  349     P5SEL_bit.P5SEL_3 = 0;	// 0 is digital I/O
        BIC.B   #0x8, &0x33
//  350     P5SEL_bit.P5SEL_4 = 0;	// 0 is digital I/O
        BIC.B   #0x10, &0x33
//  351     P5SEL_bit.P5SEL_5 = 0;	// 0 is digital I/O
        BIC.B   #0x20, &0x33
//  352     P5SEL_bit.P5SEL_6 = 0;	// 0 is digital I/O
        BIC.B   #0x40, &0x33
//  353     P5SEL_bit.P5SEL_7 = 0;	// 0 is digital I/O
        BIC.B   #0x80, &0x33
//  354 
//  355     P5DIR_bit.P5DIR_0 = 0;	// 0 is input
        BIC.B   #0x1, &0x32
//  356     P5DIR_bit.P5DIR_1 = 0;	// 0 is input
        BIC.B   #0x2, &0x32
//  357     P5DIR_bit.P5DIR_2 = 0;	// 0 is input
        BIC.B   #0x4, &0x32
//  358     P5DIR_bit.P5DIR_3 = 0;	// 0 is input
        BIC.B   #0x8, &0x32
//  359     P5DIR_bit.P5DIR_4 = 0;	// 0 is input  
        BIC.B   #0x10, &0x32
//  360     P5DIR_bit.P5DIR_5 = 1;	// 1 is output  -- NC
        BIS.B   #0x20, &0x32
//  361     P5DIR_bit.P5DIR_6 = 1;	// 1 is output  -- NC
        BIS.B   #0x40, &0x32
//  362     P5DIR_bit.P5DIR_7 = 1;	// 1 is output  -- NC
        BIS.B   #0x80, &0x32
//  363 
//  364     // P6:
//  365 
//  366     P6SEL_bit.P6SEL_0 = 0;	// 0 is digital I/O
        BIC.B   #0x1, &0x37
//  367     P6SEL_bit.P6SEL_1 = 0;	// 0 is digital I/O
        BIC.B   #0x2, &0x37
//  368     P6SEL_bit.P6SEL_2 = 0;	// 0 is digital I/O
        BIC.B   #0x4, &0x37
//  369     P6SEL_bit.P6SEL_3 = 0;	// 0 is digital I/O
        BIC.B   #0x8, &0x37
//  370     P6SEL_bit.P6SEL_4 = 0;	// 0 is digital I/O
        BIC.B   #0x10, &0x37
//  371     P6SEL_bit.P6SEL_5 = 0;	// 0 is digital I/O
        BIC.B   #0x20, &0x37
//  372     P6SEL_bit.P6SEL_6 = 0;	// 0 is digital I/O
        BIC.B   #0x40, &0x37
//  373     P6SEL_bit.P6SEL_7 = 0;	// 0 is digital I/O
        BIC.B   #0x80, &0x37
//  374 
//  375     P6DIR_bit.P6DIR_0 = 1;	// 1 is output -- NC
        BIS.B   #0x1, &0x36
//  376     P6DIR_bit.P6DIR_1 = 1;	// 1 is output -- NC
        BIS.B   #0x2, &0x36
//  377     
//  378     P6DIR_bit.P6DIR_2 = 0;	// 0 is input
        BIC.B   #0x4, &0x36
//  379     P6DIR_bit.P6DIR_3 = 0;	// 0 is input
        BIC.B   #0x8, &0x36
//  380     P6DIR_bit.P6DIR_4 = 0;	// 0 is input
        BIC.B   #0x10, &0x36
//  381     P6DIR_bit.P6DIR_5 = 0;	// 0 is input
        BIC.B   #0x20, &0x36
//  382     P6DIR_bit.P6DIR_6 = 0;	// 0 is input
        BIC.B   #0x40, &0x36
//  383     P6DIR_bit.P6DIR_7 = 0;	// 0 is input
        BIC.B   #0x80, &0x36
//  384   
//  385 
//  386     // P1:
//  387 /*
//  388     P1SEL_bit.P1SEL_5 = 0;	// 0 is digital I/O
//  389     P1SEL_bit.P1SEL_6 = 0;	// 0 is digital I/O
//  390     P1SEL_bit.P1SEL_7 = 0;	// 0 is digital I/O
//  391 
//  392     P1DIR_bit.P1DIR_5 = 1;	// 1 is output
//  393     P1DIR_bit.P1DIR_6 = 1;	// 1 is output
//  394     P1DIR_bit.P1DIR_7 = 1;	// 1 is output
//  395 
//  396     // P2:
//  397 
//  398     P2SEL_bit.P2SEL_0 = 0;	// 0 is digital I/O
//  399     P2SEL_bit.P2SEL_1 = 0;	// 0 is digital I/O
//  400     P2SEL_bit.P2SEL_2 = 0;	// 0 is digital I/O
//  401     P2SEL_bit.P2SEL_3 = 0;	// 0 is digital I/O
//  402     P2SEL_bit.P2SEL_4 = 0;	// 0 is digital I/O
//  403 
//  404     P2SEL_bit.P2SEL_6 = 0;	// 0 is digital I/O
//  405     P2SEL_bit.P2SEL_7 = 0;	// 0 is digital I/O
//  406 
//  407     P2DIR_bit.P2DIR_0 = 1;	// 1 is output
//  408     P2DIR_bit.P2DIR_1 = 1;	// 1 is output
//  409     P2DIR_bit.P2DIR_2 = 1;	// 1 is output
//  410     P2DIR_bit.P2DIR_3 = 1;	// 1 is output
//  411     P2DIR_bit.P2DIR_4 = 1;	// 1 is output
//  412 
//  413     P2DIR_bit.P2DIR_6 = 1;	// 1 is output
//  414     P2DIR_bit.P2DIR_7 = 1;	// 1 is output
//  415 
//  416     // P3:
//  417 
//  418     P3SEL_bit.P3SEL_0 = 0;	// 0 is digital I/O
//  419     P3SEL_bit.P3SEL_1 = 0;	// 0 is digital I/O
//  420     P3SEL_bit.P3SEL_2 = 0;	// 0 is digital I/O
//  421     P3SEL_bit.P3SEL_3 = 0;	// 0 is digital I/O
//  422 	
//  423     P3DIR_bit.P3DIR_0 = 1;	// 1 is output
//  424     P3DIR_bit.P3DIR_1 = 1;	// 1 is output
//  425     P3DIR_bit.P3DIR_2 = 1;	// 1 is output
//  426     P3DIR_bit.P3DIR_3 = 1;	// 1 is output
//  427 
//  428     // P4:
//  429 
//  430     P4SEL_bit.P4SEL_7 = 0;	// 0 is digital I/O
//  431     P4DIR_bit.P4DIR_7 = 1;	// 1 is output
//  432 
//  433     // P5:
//  434 
//  435     P5SEL_bit.P5SEL_7 = 0;	// 0 is digital I/O
//  436     P5DIR_bit.P5DIR_7 = 1;	// 1 is output
//  437 
//  438     // P6:
//  439 
//  440     P6SEL_bit.P6SEL_0 = 0;	// 0 is digital I/O
//  441     P6SEL_bit.P6SEL_1 = 0;	// 0 is digital I/O
//  442     P6SEL_bit.P6SEL_2 = 0;	// 0 is digital I/O
//  443     P6SEL_bit.P6SEL_3 = 0;	// 0 is digital I/O
//  444 
//  445     P6SEL_bit.P6SEL_5 = 0;	// 0 is digital I/O
//  446     P6SEL_bit.P6SEL_6 = 0;	// 0 is digital I/O
//  447     P6SEL_bit.P6SEL_7 = 0;	// 0 is digital I/O
//  448 
//  449     P6DIR_bit.P6DIR_0 = 1;	// 1 is output
//  450     P6DIR_bit.P6DIR_1 = 1;	// 1 is output
//  451     P6DIR_bit.P6DIR_2 = 1;	// 1 is output
//  452     P6DIR_bit.P6DIR_3 = 1;	// 1 is output
//  453 
//  454     P6DIR_bit.P6DIR_5 = 1;	// 1 is output
//  455     P6DIR_bit.P6DIR_6 = 1;	// 1 is output
//  456     P6DIR_bit.P6DIR_7 = 1;	// 1 is output
//  457 */
//  458 
//  459 	/* Setup DCO+ for ( xtal * D * (N + 1) ) operation. */
//  460 //	FLL_CTL0 |= DCOPLUS + XCAP18PF;
//  461 
//  462 	/* X2 DCO frequency, 8MHz nominal DCO */
//  463 // XXX - OK - this looks like our master clock...
//  464 //	SCFI0 |= FN_4;
//  465 
//  466 	/* (121+1) x 32768 x 2 = 7.99 Mhz */
//  467 //	SCFQCTL = mainMAX_FREQUENCY;
//  468 
//  469 	/* Setup the IO.  This is just copied from the demo supplied by SoftBaugh
//  470 	for the ES449 demo board. */
//  471 
//  472 //	P1SEL = 0x32;
//  473 //	P2SEL = 0x00;
//  474 //	P3SEL = 0x00;
//  475 //	P4SEL = 0xFC;
//  476 //	P5SEL = 0xFF;
//  477 
//  478 
//  479 // (re)enable the watchdog if you wish
//  480 
//  481 	
//  482 }
        RET
        CFI EndBlock cfiBlock3
//  483 /*-----------------------------------------------------------*/
//  484 
//  485 /* The idle hook is just a copy of the standard integer maths tasks.  See
//  486 Demo/Common/integer.c for rationale. */
//  487 
//  488 // void vApplicationIdleHook( void ) __toplevel

        RSEG CODE:CODE:REORDER:NOROOT(1)
//  489 void vApplicationIdleHook( void )
vApplicationIdleHook:
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function vApplicationIdleHook
//  490 {
        SUB.W   #0x6, SP
        CFI CFA SP+8
//  491 /* These variables are all effectively set to constants so they are volatile to
//  492 ensure the compiler does not just get rid of them. */
//  493 volatile portLONG lValue;
//  494 volatile signed portBASE_TYPE *pxTaskHasExecuted;
//  495 
//  496 	/* Keep performing a calculation and checking the result against a constant. */
//  497 	for( ;; )
//  498 	{
//  499 		/* Perform the calculation.  This will store partial value in
//  500 		registers, resulting in a good test of the context switch mechanism. */
//  501 		lValue = intgCONST1;
??vApplicationIdleHook_0:
        MOV.W   #0x7b, 0x0(SP)
        MOV.W   #0x0, 0x2(SP)
//  502 		lValue += intgCONST2;
        ADD.W   #0x9447, 0x0(SP)
        ADDC.W  #0x3, 0x2(SP)
//  503 
//  504 		/* Yield in case cooperative scheduling is being used. */
//  505 		#if configUSE_PREEMPTION == 0
//  506 		{
//  507 			taskYIELD();
//  508 		}
//  509 		#endif
//  510 
//  511 		/* Finish off the calculation. */
//  512 		lValue *= intgCONST3;
        MOV.W   0x0(SP), R12
        MOV.W   0x2(SP), R13
        MOV.W   #0xfffd, R14
        MOV.W   #0xffff, R15
        CALL    #?Mul32
        MOV.W   R12, 0x0(SP)
        MOV.W   R13, 0x2(SP)
//  513 		lValue /= intgCONST4;
        MOV.W   0x0(SP), R12
        MOV.W   0x2(SP), R13
        MOV.W   #0x7, R14
        MOV.W   #0x0, R15
        CALL    #?DivMod32s
        MOV.W   R12, 0x0(SP)
        MOV.W   R13, 0x2(SP)
//  514 
//  515 		/* If the calculation is found to be incorrect we stop setting the
//  516 		TaskHasExecuted variable so the check task can see an error has
//  517 		occurred. */
//  518 		if( lValue != intgEXPECTED_ANSWER ) /*lint !e774 volatile used to prevent this being optimised out. */
        CMP.W   #0x771b, 0x0(SP)
        JNE     ??vApplicationIdleHook_1
        CMP.W   #0xfffe, 0x2(SP)
        JEQ     ??vApplicationIdleHook_0
//  519 		{
//  520 			/* Don't bother with mutual exclusion - it is only read from the
//  521 			check task and never written. */
//  522 			xLocalError = pdTRUE;
??vApplicationIdleHook_1:
        MOV.W   #0x1, &xLocalError
        JMP     ??vApplicationIdleHook_0
        CFI EndBlock cfiBlock4
//  523 		}
//  524 		/* Yield in case cooperative scheduling is being used. */
//  525 		#if configUSE_PREEMPTION == 0
//  526 		{
//  527 			taskYIELD();
//  528 		}
//  529 		#endif
//  530 	}
//  531 }

        RSEG DATA16_ID:CONST:SORT:NOROOT(1)
`?<Initializer for sNoErrorFound>`:
        DC16 1

        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

        RSEG DATA16_C:CONST:SORT:NOROOT(0)
`?<Constant "Check">`:
        DC8 "Check"

        END
//  532 
//  533 
//  534 
//  535 
//  536 
// 
// 744 bytes in segment CODE
//  17 bytes in segment DATA16_AN
//   6 bytes in segment DATA16_C
//   2 bytes in segment DATA16_I
//   2 bytes in segment DATA16_ID
//   2 bytes in segment DATA16_Z
// 
// 744 bytes of CODE  memory
//   8 bytes of CONST memory
//   4 bytes of DATA  memory (+ 17 bytes shared)
//
//Errors: none
//Warnings: 4

⌨️ 快捷键说明

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