------------------------------------------------------------------------------------ Release Notes for MSP430 SIMULATION ENVIRONMENT Version 2.2 (c) Copyright Texas Instruments Incorporated, 1994-1997, All Rights Reserved ------------------------------------------------------------------------------------ Information in this document is more current than that in the Manuals or Online Help. New Features and Known Problems of this release are listed at this location. Contents ~~~~~~~~ Notes and Indispositions Simulation Environment Getting Started Toolbar Buttons Restrictions Object Format Converter ROM430 Improved Stimuli File Features Standard Definitions Notes and Indispositions ~~~~~~~~~~~~~~~~~~~~~~~~ - In some unknown cases a General Protection Fault can occur when opening the 'Stack' window under WINDOWS 95 platforms. Workaround: Don't open the 'Stack' window, use an additional 'Memory' window instead. - Timer A : Different from the silicon device the Simulator mirrors the Capture/Compare interrupt flag CCIFG0 into the Interrupt Flag Register IFG1 to bit 6 (40h). Please do not modify this bit by program to not losing an interrupt. The reason for this behaviour is that the Simulator supports non-multiple interrupt flags only if they are located in the Special Function Registers IFG1 and IFG2. - Hardware Multiplier : Writing to Operand1 of the Hardware Multiplier (MPY, MPYS, MAC, address 130h to 134h) will cause an access to all of three locations due to the device consists of only one Operand1 register physically. - Analog-To-Digital Converter : In former releases the ADCLK bits 13 and 14 of the ADC Control Register ACTL had no effect on the ADC Clock Frequency, ADCLK was always tied to MCLK. From now on they support the correct division factor 1..4. - The 'PUSH x(SP)' instruction causes an error message when x(SP) points to the upper border of the RAM. E.g. if the RAM area ends at address 2FFh and the content of the stack pointer SP is 2FEh a 'PUSH 2(SP)' instruction will cause the following error message: No memory present at accessed address 0300h! In the real hardware this instruction is allowed because the instruction causes a predecrement of the stack pointer SP before pushing the operand. SP - 2 -> SP ; 02FEh - 2 -> SP = 2FCh 2(SP) -> @SP ; 2(2FCh) -> @(2FCh) To suppress this error message enlarge the RAM size for the used processor in the file 'proctype.cfg'. Another possibility is to decrement first the stack pointer. If the stack pointer is 2FCh a 'PUSH 2(SP)' instruction will be executed correct, like in the real hardware. - The assembler directives '.include' and '.copy' can cause a problem during the debugging process. If the included file contains instructions (opcode), sometimes the instruction bar disappears while debugging your source file. A solution is to shift all '.include' and '.copy' statements to the end of your source file. Furthermore it is not possible to debug instructions within included files. If you want to use more than one source file and you have installed the linker (LNK430.EXE), please add the additional source files to your project. This method allows debugging and scoping all files. - If an interrupt occurs while executing single steps, the first instruction in the interrupt service routine is automatically executed and not debugged with a single step. If it is desired to execute this first instruction with a single step it is necessary to set a breakpoint on it and to run the program with the ' Run|Hold on Breakpoint' command. The program execution will be stopped on the first instruction of the interrupt service routine. Executing this first instruction will increment the cycle counter not only for the executed instruction but also for the interrupt latency time (6 cycles). - The path of files which are added to the project should not contain '.'-characters. If a point is in the path (directory name) this will cause problems for the project management. - Changing the processor type clears all data for the pin simulation files entered before in the 'I/O Pin File Names' dialog box . - Memory Access Rights in PROCTYPE.CFG file: Reading the write-only Crystal Buffer Output Control Register CBCTL (address 053h) will not produce an Error/Warning Message. So be aware of not using instructions with read access (e.g. MOV.B &CBCTL,R5 or BIS.B #2,&CBCTL), use instead write- only instructions (e.g. MOV.B #3,&CBCTL). - A General Protection Fault can occur under the following conditions: - Start the Simulator - Close the upcoming project - Open File, edit and press ENTER. Please avoid file handling if a project is neither opened nor initialized. - The messages 'Failed to launch help' or 'Insufficient memory to start ..\ASM430.EXE' can occur if memory extensive applications are active. Please close them. Simulation Environment ~~~~~~~~~~~~~~~~~~~~~~ After installation you can use the Simulation Environment icon to start the program. Getting started ~~~~~~~~~~~~~~~ For getting started it is necessary to execute the following steps: - Open a Project with the 'Project | New/Open'-command in the project menu. In the 'Open Project' dialog box you have to provide a new name for the project. In the next upcoming dialog box you will be asked to select the target processor. - The "Project | Add File" command opens a dialog box wherein you should add your assembler source files to the project. In software packages without Linker you only can add one assembler source file to your project. The Linker command file is not invoked and the target section address of the object code must be explicitely defined (.sect...). Close the dialog box with the close-button. - Build the Project with the 'Project | Build'-command. - If no error messages are displayed in the output window, you can run your assembler program in the simulator. Start it by executing the first instruction with a 'Run | Step Into'-command. - Restriction for moving projects within the file/directory structure: If a project or parts of a project are moved to other pathes manually the references cannot be resolved any more and therefore error messages will appear. Please don't do so. Toolbar buttons ~~~~~~~~~~~~~~~ For getting more information about the toolbar button utilities please move the mouse to their icons and hold the left-hand button down to have a look at the statusbar's text. The toolbar button has to be enabled for this method to work. Restrictions ~~~~~~~~~~~~ - As peripheral modules will be updated only between the execution of instructions, signal transitions and interrupts will be effective after executing the instruction during which they appeared. - The device startup timing will not be simulated. The simulator directly starts with the given frequency MCLK = N * ACLK. - The frequency-lock-loop (FLL) will not be simulated, so the simulator always uses the multiplication factor N (given in the SCFQCTL register) for calculating the system clock frequency. Neither writing to registers SCFI0 and SCFI1, nor setting the modulation bit M in SCFQCTL will be effective. - The oscillator fault flag OFIFG (located in IFG1) will not be simulated. - The four constant current source outputs on A0 to A3 and the crystal buffer output are not implemented in the simulator and therefore will not produce simulation output files. - In cases where the device can be set into an undefined state the simulator assumes a defined state. In most of this cases a warning will be displayed. Object Format Converter ROM430 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When using the Object Format Converter ROM430 please edit the properties of the program item ROM430 in the ADT430 program group as follows: Command Line: c:\adt430\asm\ROM430.EXE [option] xxx.obj [output file] Working Directory: c:\adt430\dt430\examples (or where you work) 'xxx.obj' is the COFF output file produced by the Assembler, [option] specifies the object format. The following options are supported: -x specifies Tektronix Hex Format with extension '.TEK' -i specifies Intel Hex Format with extension '.INT' -t specifies TI-tagged Format with extension '.TAG' -m specifies Motorola S Format with extension '.MS' The call 'ROM430.EXE -i test.obj' e.g. forces the Converter to generate 'test.int'. For additional information see the 'Assembly Language Tools User's Guide'. The procedure above works well with 'WINDOWS for Workgroups 3.11'. When using 'WINDOWS NT x.y' or 'WINDOWS 95' please apply the conventions according to them. Improved Stimuli File Features ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following DIRECTIVES extend the pin file capabilities. They are not case sensitive: CALL label Subroutine call: Continues with the data following a label. Each label must have a preceding ':'. Return with RETURN. END Stops the read operation of data in a pin file. ENDLOOP Marks the end of a loop: A loop is started with the keyword LOOP. GOTO label Continues the stimulation flow at the named label: Each label must have a preceeding ':'. Only GOTO's in forward direction are allowed - backward GOTO's end in unpredictable results. INCLUDE file Reads an external file: The external file must be located in the same directory as the main. LOOP n Begin of a loop: n represents the loop counter. All cycles within a loop are of RELATIVE type. R Relative cycle count suffix: Only used directly behind a cycle number marks it to be RELATIVE. RETURN Ends a subroutine. Restrictions: - Nested structures do not support all features in detail (socalled 'call long' or 'goto long' for example are not processed). - Don't use END in an include file if stimulation ought not to be terminated. --- Example pin file 'APIN.IN' applying new features: ---------------------------- absolute ; first value determines pin status, ; second value specifies the last cycle of this status call test1 loop 2 3.3/40000*c 40000 ; cycle values in loops are always treated as RELATIVE! 3.3/40000*c-3.3 40000r 3.3/40000*c-6.6 40000r 3.3 50000 2.2 4000r 3.3 4000r endloop include APIN0.IN ; the data file must be in the same directory goto test2 :test1 2.2 4000r 3.3 4000r return :test2 3.3 4000r 2.2 4000r end --- Include File 'APIN0.IN': ----------------------------------------------------- loop 5 0 1000 1.1 1000 endloop Standard Definitions ~~~~~~~~~~~~~~~~~~~~ The 'EXAMPLES' directory was extended with a file called 'STD_DEF.ASM' which contains all equations for Peripheral Register Frame and corresponding Control Bits as used in the 'Architecture Guide'. To apply 'STD_DEF.ASM' neither memory is allocated nor object code is produced due to only assembly-time constants were used. Including this file into your application's main file is described in its header. Please have a look at it. * END OF README *