📄 partest.lst
字号:
##############################################################################
# #
# IAR MSP430 C/C++ Compiler V3.41A/W32 22/Apr/2006 00:25:13 #
# 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_Cross #
# Works\ParTest\ParTest.c #
# Command line = C:\MSP430F169_Eval_Port\FreeRTOSv401\Demo\msp430_Cross #
# Works\ParTest\ParTest.c -D ROWLEY_MSP430 -D #
# IAR_MSP430 -lC C:\MSP430F169_Eval_Port\FreeRTOSv401\De #
# bug\List\ -lA C:\MSP430F169_Eval_Port\FreeRTOSv401\Deb #
# ug\List\ --remarks -o C:\MSP430F169_Eval_Port\FreeRTOS #
# v401\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\Inclu #
# de\ -I C:\MSP430F169_Eval_Port\FreeRTOSv401\Source\Inc #
# lude\ -I C:\MSP430F169_Eval_Port\FreeRTOSv401\Demo\MSP #
# 430_IAR\ -I C:\MSP430F169_Eval_Port\FreeRTOSv401\Sourc #
# e\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\ParTes #
# t.lst #
# Object file = C:\MSP430F169_Eval_Port\FreeRTOSv401\Debug\Obj\ParTest #
# .r43 #
# #
# #
##############################################################################
C:\MSP430F169_Eval_Port\FreeRTOSv401\Demo\msp430_CrossWorks\ParTest\ParTest.c
1 /*
2 FreeRTOS V4.0.1 - Copyright (C) 2003-2006 Richard Barry.
3
4 This file is part of the FreeRTOS distribution.
5
6 FreeRTOS is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 FreeRTOS is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with FreeRTOS; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
20 A special exception to the GPL can be applied should you wish to distribute
21 a combined work that includes FreeRTOS, without being obliged to provide
22 the source code for any proprietary components. See the licensing section
23 of http://www.FreeRTOS.org for full details of how and when the exception
24 can be applied.
25
26 ***************************************************************************
27 See http://www.FreeRTOS.org for documentation, latest information, license
28 and contact details. Please ensure to read the configuration and relevant
29 port sections of the online documentation.
30 ***************************************************************************
31 */
32
33 /*-----------------------------------------------------------
34 * Characters on the LCD are used to simulate LED's. In this case the 'ParTest'
35 * is really operating on the LCD display.
36 *-----------------------------------------------------------*/
37
38 /*
39 * This demo is configured to execute on the ES449 prototyping board from
40 * SoftBaugh. The ES449 has a built in LCD display and a single built in user
41 * LED. Therefore, in place of flashing an LED, the 'flash' and 'check' tasks
42 * toggle '*' characters on the LCD. The left most '*' represents LED 0, the
43 * next LED 1, etc.
44 *
45 * There is a single genuine on board LED referenced as LED 10.
46 */
47
48
49 /* Scheduler includes. */
50 #include "FreeRTOS.h"
\ In segment DATA16_AN, at 0x1d
\ union <unnamed> volatile __data16 _A_P4OUT
\ _A_P4OUT:
\ 000000 DS8 1
51 #include "task.h"
52
53 /* Demo application includes. */
54 #include "partest.h"
55
56 /* Constants required to setup the LCD. */
57 #define LCD_DIV_64 5
58
59 /* Constants required to access the "LED's". The LED segments are turned on
60 and off to generate '*' characters. */
61 #define partstNUM_LEDS ( ( unsigned portCHAR ) 4 )
62 #define partstSEGMENTS_ON ( ( unsigned portCHAR ) 0x0f )
63 #define partstSEGMENTS_OFF ( ( unsigned portCHAR ) 0x00 )
64
65 /* The LED number of the real on board LED, rather than a simulated LED. */
66 #define partstON_BOARD_LED ( ( unsigned portBASE_TYPE ) 10 )
67 #define mainON_BOARD_LED_BIT ( ( unsigned portCHAR ) 0x01 )
68
69 /* The LCD segments used to generate the '*' characters for LED's 0 to 5. */
70 /*
71 unsigned portCHAR * const ucRHSSegments[ partstNUM_LEDS ] = { ( unsigned portCHAR * )0xa4,
72 ( unsigned portCHAR * )0xa2,
73 ( unsigned portCHAR * )0xa0,
74 ( unsigned portCHAR * )0x9e,
75 ( unsigned portCHAR * )0x9c,
76 ( unsigned portCHAR * )0x9a };
77
78 unsigned portCHAR * const ucLHSSegments[ partstNUM_LEDS ] = { ( unsigned portCHAR * )0xa3,
79 ( unsigned portCHAR * )0xa1,
80 ( unsigned portCHAR * )0x9f,
81 ( unsigned portCHAR * )0x9d,
82 ( unsigned portCHAR * )0x9b,
83 ( unsigned portCHAR * )0x99 };
84
85
86 */
87 /*
88 * Toggle the single genuine built in LED.
89 */
90 static void prvToggleOnBoardLED( void );
91
92 /*-----------------------------------------------------------*/
93
\ In segment CODE, align 2
94 void vParTestInitialise( void )
\ vParTestInitialise:
95 {
96 /* Initialise the LCD hardware. */
97
98 /* Used for the onboard LED. */
99 // P1DIR = 0x01;
100
101 // Setup Basic Timer for LCD operation
102 // BTCTL = (LCD_DIV_64+0x23);
103
104 // Setup port functions
105 /* P1SEL = 0x32;
106 P2SEL = 0x00;
107 P3SEL = 0x00;
108 P4SEL = 0xFC;
109 P5SEL = 0xFF;
110 */
111 /* Initialise all segments to off. */
112 /* LCDM1 = partstSEGMENTS_OFF;
113 LCDM2 = partstSEGMENTS_OFF;
114 LCDM3 = partstSEGMENTS_OFF;
115 LCDM4 = partstSEGMENTS_OFF;
116 LCDM5 = partstSEGMENTS_OFF;
117 LCDM6 = partstSEGMENTS_OFF;
118 LCDM7 = partstSEGMENTS_OFF;
119 LCDM8 = partstSEGMENTS_OFF;
120 LCDM9 = partstSEGMENTS_OFF;
121 LCDM10 = partstSEGMENTS_OFF;
122 LCDM11 = partstSEGMENTS_OFF;
123 LCDM12 = partstSEGMENTS_OFF;
124 LCDM13 = partstSEGMENTS_OFF;
125 LCDM14 = partstSEGMENTS_OFF;
126 LCDM15 = partstSEGMENTS_OFF;
127 LCDM16 = partstSEGMENTS_OFF;
128 LCDM17 = partstSEGMENTS_OFF;
129 LCDM18 = partstSEGMENTS_OFF;
130 LCDM19 = partstSEGMENTS_OFF;
131 LCDM20 = partstSEGMENTS_OFF;
132 */
133 /* Setup LCD control. */
134 // LCDCTL = (LCDSG0_7|LCD4MUX|LCDON);
135 }
\ 000000 3041 RET
136 /*-----------------------------------------------------------*/
137
\ In segment CODE, align 2
138 void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
^
Remark[Pe826]: parameter "xValue" was never referenced
\ vParTestSetLED:
139 {
\ 000000 0A12 PUSH.W R10
\ 000002 0B12 PUSH.W R11
\ 000004 0A4C MOV.W R12, R10
\ 000006 0B4E 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 )
\ 000008 2A92 CMP.W #0x4, R10
\ 00000A 042C JC ??vParTestSetLED_0
142 {
143 vTaskSuspendAll();
\ 00000C B012.... 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();
\ 000010 B012.... CALL #xTaskResumeAll
159 }
160 }
\ ??vParTestSetLED_0:
\ 000014 3B41 POP.W R11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -