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

📄 serial.s43

📁 MSP430 IAR project with FreeRTOS port.
💻 S43
📖 第 1 页 / 共 3 页
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR MSP430 C/C++ Compiler V3.41A/W32                22/Apr/2006  00:25:16 /
// Copyright 1996-2006 IAR Systems. All rights reserved.                     /
//                                                                           /
//    __rt_version  =  2                                                     /
//    __double_size =  32                                                    /
//    __reg_r4      =  free                                                  /
//    __reg_r5      =  free                                                  /
//    __pic         =  no                                                    /
//    __core        =  64kb                                                  /
//    Source file   =  C:\MSP430F169_Eval_Port\FreeRTOSv401\Demo\msp430_Cros /
//                     sWorks\serial\serial.c                                /
//    Command line  =  C:\MSP430F169_Eval_Port\FreeRTOSv401\Demo\msp430_Cros /
//                     sWorks\serial\serial.c -D ROWLEY_MSP430 -D            /
//                     IAR_MSP430 -lC C:\MSP430F169_Eval_Port\FreeRTOSv401\D /
//                     ebug\List\ -lA C:\MSP430F169_Eval_Port\FreeRTOSv401\D /
//                     ebug\List\ --remarks -o C:\MSP430F169_Eval_Port\FreeR /
//                     TOSv401\Debug\Obj\ -s2 --no_cse --no_unroll           /
//                     --no_inline --no_code_motion --no_tbaa --debug -e     /
//                     --migration_preprocessor_extensions --double=32 -I    /
//                     C:\MSP430F169_Eval_Port\FreeRTOSv401\Demo\Common\Incl /
//                     ude\ -I C:\MSP430F169_Eval_Port\FreeRTOSv401\Source\I /
//                     nclude\ -I C:\MSP430F169_Eval_Port\FreeRTOSv401\Demo\ /
//                     MSP430_IAR\ -I C:\MSP430F169_Eval_Port\FreeRTOSv401\S /
//                     ource\portable\msp430f1611\ -I "C:\Program Files\IAR  /
//                     Systems\Embedded Workbench 4.0\430\INC\" -I           /
//                     "C:\Program Files\IAR Systems\Embedded Workbench      /
//                     4.0\430\INC\CLIB\"                                    /
//    List file     =  C:\MSP430F169_Eval_Port\FreeRTOSv401\Debug\List\seria /
//                     l.s43                                                 /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME serial

        RTMODEL "__core", "64kb"
        RTMODEL "__double_size", "32"
        RTMODEL "__pic", "no"
        RTMODEL "__reg_r4", "free"
        RTMODEL "__reg_r5", "free"
        RTMODEL "__rt_version", "2"

        RSEG CSTACK:DATA:SORT:NOROOT(1)

        EXTERN ?Epilogue3
        EXTERN ?Epilogue7
        EXTERN ?cstart_init_zero
        EXTERN ?longjmp_r4
        EXTERN ?longjmp_r5
        EXTERN ?setjmp_r4
        EXTERN ?setjmp_r5

        PUBWEAK `??vRxISR??INTVEC 6`
        PUBWEAK `??vTxISR??INTVEC 4`
        PUBWEAK ?setjmp_save_r4
        PUBWEAK ?setjmp_save_r5
        PUBWEAK U1BR0
        PUBWEAK U1BR1
        PUBWEAK U1MCTL
        PUBWEAK U1RXBUF
        PUBWEAK U1TXBUF
        PUBWEAK _A_IE2
        PUBWEAK _A_ME2
        PUBWEAK _A_P3DIR
        PUBWEAK _A_P3SEL
        PUBWEAK _A_U1CTL
        PUBWEAK _A_U1RCTL
        PUBWEAK _A_U1TCTL
        PUBLIC vRxISR
        FUNCTION vRxISR,021233H
        LOCFRAME CSTACK, 16, STACK
        PUBLIC vTxISR
        FUNCTION vTxISR,021233H
        LOCFRAME CSTACK, 18, STACK
        PUBLIC xSerialGetChar
        FUNCTION xSerialGetChar,021203H
        LOCFRAME CSTACK, 10, STACK
        PUBLIC xSerialPortInitMinimal
        FUNCTION xSerialPortInitMinimal,021203H
        LOCFRAME CSTACK, 20, STACK
        PUBLIC xSerialPutChar
        FUNCTION xSerialPutChar,021203H
        LOCFRAME CSTACK, 12, STACK
        
        CFI Names cfiNames0
        CFI StackFrame CFA SP DATA
        CFI Resource PC:16, SP:16, SR:16, R4:16, R5:16, R6:16, R7:16, R8:16
        CFI Resource R9:16, R10:16, R11:16, R12:16, R13:16, R14:16, R15:16
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 2
        CFI DataAlign 2
        CFI ReturnAddress PC CODE
        CFI CFA SP+2
        CFI PC Frame(CFA, -2)
        CFI SR Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 Undefined
        CFI R13 Undefined
        CFI R14 Undefined
        CFI R15 Undefined
        CFI EndCommon cfiCommon0
        
        
        CFI Common cfiCommon1 Using cfiNames0
        CFI CodeAlign 2
        CFI DataAlign 2
        CFI ReturnAddress PC CODE
        CFI CFA SP+4
        CFI PC Frame(CFA, -2)
        CFI SR Frame(CFA, -4)
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 SameValue
        CFI R13 SameValue
        CFI R14 SameValue
        CFI R15 SameValue
        CFI EndCommon cfiCommon1
        
vRxISR              SYMBOL "vRxISR"
`??vRxISR??INTVEC 6` SYMBOL "??INTVEC 6", vRxISR
vTxISR              SYMBOL "vTxISR"
`??vTxISR??INTVEC 4` SYMBOL "??INTVEC 4", vTxISR

        EXTERN xQueueReceiveFromISR
        FUNCTION xQueueReceiveFromISR,0202H
        EXTERN xQueueSendFromISR
        FUNCTION xQueueSendFromISR,0202H
        EXTERN vPortYield
        FUNCTION vPortYield,0202H
        EXTERN usCriticalNesting
        EXTERN xQueueSend
        FUNCTION xQueueSend,0202H
        EXTERN xQueueReceive
        FUNCTION xQueueReceive,0202H
        EXTERN xQueueCreate
        FUNCTION xQueueCreate,0202H

// C:\MSP430F169_Eval_Port\FreeRTOSv401\Demo\msp430_CrossWorks\serial\serial.c
//    1 // this file has been modified to work with the MSP430_IAR port...jcw
//    2 // you'll need to change this file to work with your target unless
//    3 // you're using similar clocking (6MHz XT2 MCLK) and using 115.2KB...
//    4 /*
//    5 	FreeRTOS V3.2.2 - Copyright (C) 2003 - 2005 Richard Barry.
//    6 
//    7 	This file is part of the FreeRTOS distribution.
//    8 
//    9 	FreeRTOS is free software; you can redistribute it and/or modify
//   10 	it under the terms of the GNU General Public License as published by
//   11 	the Free Software Foundation; either version 2 of the License, or
//   12 	(at your option) any later version.
//   13 
//   14 	FreeRTOS is distributed in the hope that it will be useful,
//   15 	but WITHOUT ANY WARRANTY; without even the implied warranty of
//   16 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//   17 	GNU General Public License for more details.
//   18 
//   19 	You should have received a copy of the GNU General Public License
//   20 	along with FreeRTOS; if not, write to the Free Software
//   21 	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//   22 
//   23 	A special exception to the GPL can be applied should you wish to distribute
//   24 	a combined work that includes FreeRTOS, without being obliged to provide
//   25 	the source code for any proprietary components.  See the licensing section 
//   26 	of http://www.FreeRTOS.org for full details of how and when the exception
//   27 	can be applied.
//   28 
//   29 	***************************************************************************
//   30 	See http://www.FreeRTOS.org for documentation, latest information, license 
//   31 	and contact details.  Please ensure to read the configuration and relevant 
//   32 	port sections of the online documentation.
//   33 	***************************************************************************
//   34 */
//   35 
//   36 
//   37 /* BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER.   
//   38  * 
//   39  * This file only supports UART 1
//   40  */
//   41 
//   42 /* Standard includes. */
//   43 #include <stdlib.h>
//   44 
//   45 /* Scheduler includes. */
//   46 #include "FreeRTOS.h"

        ASEGN DATA16_AN:DATA:NOROOT,01H
// union <unnamed> volatile __data16 _A_IE2
_A_IE2:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,05H
// union <unnamed> volatile __data16 _A_ME2
_A_ME2:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,01aH
// union <unnamed> volatile __data16 _A_P3DIR
_A_P3DIR:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,01bH
// union <unnamed> volatile __data16 _A_P3SEL
_A_P3SEL:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,078H
// union <unnamed> volatile __data16 _A_U1CTL
_A_U1CTL:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,079H
// union <unnamed> volatile __data16 _A_U1TCTL
_A_U1TCTL:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,07aH
// union <unnamed> volatile __data16 _A_U1RCTL
_A_U1RCTL:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,07bH
// unsigned char volatile __data16 U1MCTL
U1MCTL:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,07cH
// unsigned char volatile __data16 U1BR0
U1BR0:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,07dH
// unsigned char volatile __data16 U1BR1
U1BR1:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,07eH
// unsigned char const volatile __data16 U1RXBUF
U1RXBUF:
        DS8 1

        ASEGN DATA16_AN:DATA:NOROOT,07fH
// unsigned char volatile __data16 U1TXBUF
U1TXBUF:
        DS8 1
//   47 #include "queue.h"
//   48 #include "task.h"
//   49 
//   50 /* Demo application includes. */
//   51 #include "serial.h"
//   52 
//   53 /* Constants required to setup the hardware. */
//   54 #define serTX_AND_RX			( ( unsigned portCHAR ) 0x03 )
//   55 
//   56 // clock specific stuff - change as needed for your target...
//   57 #define XT2_FREQ     (6000000L)
//   58 #define SMCLK_FREQ   (XT2_FREQ/8)
//   59 
//   60 // set host console baud rate here:
//   61 #define HOST_BAUD (115200UL)
//   62 
//   63 #define UART_DIVISOR(baud_rate)    (SMCLK_FREQ / (baud_rate))
//   64 #define UART_REMAINDER(baud_rate)  (SMCLK_FREQ % (baud_rate))
//   65 
//   66 #define HOST_REMAINDER UART_REMAINDER(HOST_BAUD)
//   67 #define HOST_DIVISOR   UART_DIVISOR(HOST_BAUD)
//   68 
//   69 /* Misc. constants. */
//   70 #define serNO_BLOCK				( ( portTickType ) 0 )
//   71 
//   72 /* Enable the UART Tx interrupt. */
//   73 #define vInterruptOn() IFG2 |= UTXIFG1
//   74 
//   75 /* The queue used to hold received characters. */

        RSEG DATA16_Z:DATA:SORT:NOROOT(1)
        REQUIRE ?cstart_init_zero
//   76 static xQueueHandle xRxedChars; 
xRxedChars:
        DS8 2
//   77 
//   78 /* The queue used to hold characters waiting transmission. */

        RSEG DATA16_Z:DATA:SORT:NOROOT(1)
        REQUIRE ?cstart_init_zero
//   79 static xQueueHandle xCharsForTx; 
xCharsForTx:
        DS8 2
//   80 

        RSEG DATA16_Z:DATA:SORT:NOROOT(1)
        REQUIRE ?cstart_init_zero
//   81 static volatile portSHORT sTHREEmpty;
sTHREEmpty:

⌨️ 快捷键说明

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