From aa64802fda6581931713d839c62584f8ed604b0e Mon Sep 17 00:00:00 2001 From: Juan Angel Hernandez Date: Thu, 6 Mar 2014 04:23:17 -0500 Subject: [PATCH 1/6] Added port for Renesas M32C architecture. --- ports/m32c/README | 147 + ports/m32c/atomport-asm.A30 | 73 + ports/m32c/atomport-private.h | 79 + ports/m32c/atomport-tests.h | 58 + ports/m32c/atomport.c | 277 ++ ports/m32c/atomport.h | 62 + .../hew_tests/hew_tst_sem1/hew_tst_sem1.Hbp | 2 + .../hew_tests/hew_tst_sem1/hew_tst_sem1.hws | 40 + .../hew_tests/hew_tst_sem1/hew_tst_sem1.tws | 17 + .../hew_tst_sem1/hew_tst_sem1/Comm.log | 31 + .../hew_tst_sem1/hew_tst_sem1/Debug/Debug.hdp | Bin 0 -> 13855 bytes .../hew_tst_sem1/Debug/atomkernel.m32cc | 14 + .../hew_tst_sem1/Debug/atomkernel.r30 | Bin 0 -> 22489 bytes .../hew_tst_sem1/Debug/atommutex.m32cc | 14 + .../hew_tst_sem1/Debug/atommutex.r30 | Bin 0 -> 17079 bytes .../hew_tst_sem1/Debug/atomport-asm.lst | 93 + .../hew_tst_sem1/Debug/atomport-asm.r30 | Bin 0 -> 1133 bytes .../hew_tst_sem1/Debug/atomport.m32cc | 14 + .../hew_tst_sem1/Debug/atomport.r30 | Bin 0 -> 11973 bytes .../hew_tst_sem1/Debug/atomqueue.m32cc | 14 + .../hew_tst_sem1/Debug/atomqueue.r30 | Bin 0 -> 28492 bytes .../hew_tst_sem1/Debug/atomsem.m32cc | 14 + .../hew_tst_sem1/Debug/atomsem.r30 | Bin 0 -> 16970 bytes .../hew_tst_sem1/Debug/atomtimer.m32cc | 14 + .../hew_tst_sem1/Debug/atomtimer.r30 | Bin 0 -> 14712 bytes .../hew_tst_sem1/Debug/fvector.m32cc | 14 + .../hew_tst_sem1/Debug/fvector.r30 | Bin 0 -> 1227 bytes .../hew_tst_sem1/Debug/hew_tst_sem1.m32cl | 19 + .../hew_tst_sem1/Debug/hew_tst_sem1.map | 817 ++++ .../hew_tst_sem1/Debug/hew_tst_sem1.mot | 496 +++ .../hew_tst_sem1/Debug/hew_tst_sem1.sni | Bin 0 -> 15968 bytes .../hew_tst_sem1/Debug/hew_tst_sem1.x30 | Bin 0 -> 198567 bytes .../hew_tst_sem1/Debug/initsct.m32cc | 14 + .../hew_tst_sem1/Debug/initsct.r30 | Bin 0 -> 3254 bytes .../hew_tst_sem1/Debug/intprg.m32cc | 14 + .../hew_tst_sem1/Debug/intprg.r30 | Bin 0 -> 13593 bytes .../hew_tst_sem1/Debug/resetprg.m32cc | 14 + .../hew_tst_sem1/Debug/resetprg.r30 | Bin 0 -> 4841 bytes .../hew_tst_sem1/Debug/sem1.m32cc | 14 + .../hew_tst_sem1/hew_tst_sem1/Debug/sem1.r30 | Bin 0 -> 26464 bytes .../hew_tst_sem1/Debug/tests-main.m32cc | 14 + .../hew_tst_sem1/Debug/tests-main.r30 | Bin 0 -> 16362 bytes .../Debug_M32C_Simulator.hdp | Bin 0 -> 1748 bytes .../hew_tst_sem1/DefaultSession.hsf | 99 + .../hew_tst_sem1/hew_tst_sem1/Readme.txt | 40 + .../hew_tst_sem1/Release/Release.hdp | Bin 0 -> 1722 bytes .../hew_tst_sem1/hew_tst_sem1/SIM308.INI | 2 + .../hew_tst_sem1/SessionM32C_Simulator.hsf | 261 ++ .../hew_tst_sem1/SessionM32C_Simulator.ini | 13 + .../hew_tst_sem1/hew_tst_sem1/cregdef.h | 38 + .../hew_tst_sem1/hew_tst_sem1/fvector.c | 42 + .../hew_tst_sem1/hew_tst_sem1/heapdef.h | 48 + .../hew_tst_sem1/hew_tst_sem1.hwp | 272 ++ .../hew_tst_sem1/hew_tst_sem1.nav | Bin 0 -> 29757 bytes .../hew_tst_sem1/hew_tst_sem1.tps | 40 + .../hew_tst_sem1/hew_tst_sem1/initsct.c | 70 + .../hew_tst_sem1/hew_tst_sem1/initsct.h | 66 + .../hew_tst_sem1/hew_tst_sem1/intprg.c | 224 + .../hew_tst_sem1/hew_tst_sem1/resetprg.c | 87 + .../hew_tst_sem1/hew_tst_sem1/resetprg.h | 35 + .../hew_tst_sem1/hew_tst_sem1/sfr32c80.h | 3688 +++++++++++++++++ .../hew_tst_sem1/hew_tst_sem1/sfr32c80.inc | 2718 ++++++++++++ .../hew_tst_sem1/hew_tst_sem1/stackdef.h | 40 + .../hew_tst_sem1/hew_tst_sem1/typedefine.h | 34 + .../hew_tst_sem1/hew_tst_sem1/vector.h | 32 + ports/m32c/hew_tests/led.pnl | 12 + ports/m32c/stdint.h | 14 + ports/m32c/tests-main.c | 268 ++ 68 files changed, 10522 insertions(+) create mode 100644 ports/m32c/README create mode 100644 ports/m32c/atomport-asm.A30 create mode 100644 ports/m32c/atomport-private.h create mode 100644 ports/m32c/atomport-tests.h create mode 100644 ports/m32c/atomport.c create mode 100644 ports/m32c/atomport.h create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.Hbp create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.hws create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/Debug.hdp create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomkernel.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomkernel.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atommutex.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atommutex.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.lst create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomqueue.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomqueue.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.m32cl create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.map create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.mot create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.sni create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.x30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/initsct.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/initsct.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/sem1.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/sem1.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.m32cc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.r30 create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug_M32C_Simulator/Debug_M32C_Simulator.hdp create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/DefaultSession.hsf create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Readme.txt create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Release/Release.hdp create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SIM308.INI create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.hsf create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.ini create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/cregdef.h create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/fvector.c create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/heapdef.h create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.hwp create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.nav create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.tps create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/initsct.c create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/initsct.h create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/intprg.c create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg.c create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg.h create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/sfr32c80.h create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/sfr32c80.inc create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/stackdef.h create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/typedefine.h create mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/vector.h create mode 100644 ports/m32c/hew_tests/led.pnl create mode 100644 ports/m32c/stdint.h create mode 100644 ports/m32c/tests-main.c diff --git a/ports/m32c/README b/ports/m32c/README new file mode 100644 index 00000000..f3c540d2 --- /dev/null +++ b/ports/m32c/README @@ -0,0 +1,147 @@ +--------------------------------------------------------------------------- + +Library: Atomthreads M32C/80 Port +Author: Juan Angel Hernandez Hernandez +License: BSD Revised + +--------------------------------------------------------------------------- + +M32C/80 PORT + +This folder contains a port of the Atomthreads real time kernel for the +M32C/80 processor architecture. + +All of the cross-platform kernel code is contained in the top-level +'kernel' folder, while ports to specific CPU architectures are contained in +the 'ports' folder tree. + +Atomthreads includes a suite of automated tests which prove the key OS +functionality, and can be used with any architecture ports. + + +--------------------------------------------------------------------------- + +FILES IN THE m32c port folder + + * atomport.c: Contains the main C code that forms the portion of the core + M32C/80 architecture port that can be implemented in C. + * atomport-asm.A30: Contains the main assembler code that forms the portion + of the core M32C/80 architecture port that must be implemented in assembler. + * tests-main.c: Contains a sample Atomthreads application starting at + main() that initialises the operating system and runs the automated test + suite applications. You will normally make your own main() function + suitable for your application, possibly using this as a basis. + * atomport.h: Port-specific header required by the kernel for each port. + * atomport-private.h: Port-specific header required by atomport.c + + +--------------------------------------------------------------------------- + +PREREQUISITES + +The port works out-of-the-box with the Renesas HEW tools. +Tools: +*High-performance Embedded Workshop (HEW) V 4.09.00.007 +*M3T-NC308WA compiler. + +--------------------------------------------------------------------------- + +BUILDING AND PROGRAMMING TO THE TARGET DEVICE + +In this port the target is a simulator. But you can also change the target and +download the code to a development kit. +Open the file: +\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws + +Click Ok on the Init window +Click Build->Build All +And the code will automatically be loaded into the simulator target. + +--------------------------------------------------------------------------- + +HEW SIMULATOR SPECIFICS + +The virtual timer interrupt and the virtual UART, are already setup when you +load the project. For the virtual led, you need to open the LED.pnl file so +the led can show up. + +*Virtual Timer Interrupt: + The virtual interrupt is set in View->CPU->I/O Timing Setting. + Defaults for this port: + -Interval: 10 msec + -Vector 23 (timer B2) + -Priority: 1 (Possible values are 0-7) + +*Virtual UART: + The virtual UART is set in View->CPU->OutputPort Then click on the "Set" + icon. + Defaults for this port: + -Printf - UART1 + -Output Format: + *Window TEXT + *File TEXT + +*Virtual LED: + The virtual LED is set in View->Graphic->GUI I/O + Click on the folder icon that says "Load" when you do a mouseover. Open the + file called led.pnl + The path of the led.pnl file is: + \atomthreads-master\ports\m32c\hew_tests\led.pnl + +--------------------------------------------------------------------------- + +RUNNING THE AUTOMATED TESTS WITH THE HEW SIMULATOR + +Atomthreads contains a set of generic kernel tests which can be run on any +port to prove that all core functionality is working on your target. In +order to accommodate a full testing regime, a large number of test threads +are spawned which on ATmega platforms requires at least 1KB and possibly +more RAM. Bear this in mind if you wish to run all of the automated tests +on your target platform. + +The full set of tests can be found in the top-level 'tests' folder. Each of +these tests has to be built as an independent HEW project. In this port a +HEW project using sem1.c is provided. To run the rest of the tests remove +sem1.c and then add any other test file to the project. + + +Example 1. Test results with a breakpoint: +-Open: \atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws +-Click Ok on the Init window +-Click Build->Build All +-The code will automatically be loaded into the simulator target. +-Put a breakpoint at the end of the test in tests-main.c +-Click on Debug->Reset Go. When the test finishes you shall see the virtual + UART, test result output. + +Example 2. Test results with a virtual led flashing: +-Open: \atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws +-Click Ok on the Init window +-Click Build->Build All +-The code will automatically be loaded into the simulator target. +-On the View->Graphic->GUI I/O window click on the folder icon called "Load" + and open the led.pnl file. The path of the led.pnl file is: + \atomthreads-master\ports\m32c\hew_tests\led.pnl +-Click on Debug->Reset Go. When the test finishes you shall see the led flash. +-When the led is flashing click "Stop" in the simulator and the virtual UART + output will print the result of the test. + + +--------------------------------------------------------------------------- + +WRITING APPLICATIONS + +The easiest way to start a new application which utilises the Atomthreads +scheduler is to base your main application startup on tests-main.c. This +initialises the OS, sets up a UART and calls out to the test module entry +functions. You can generally simply replace the call to the test modules by +a call to your own application startup code. + + +--------------------------------------------------------------------------- + +PORTING TO NEW PLATFORMS + +Follow the very useful porting guide that you can find in atomthreads.com/ + +--------------------------------------------------------------------------- diff --git a/ports/m32c/atomport-asm.A30 b/ports/m32c/atomport-asm.A30 new file mode 100644 index 00000000..730cb712 --- /dev/null +++ b/ports/m32c/atomport-asm.A30 @@ -0,0 +1,73 @@ +;/* +; * Copyright (c) 2014, Juan Angel Hernandez Hdez. for Atomthreads Project. +; * All rights reserved. +; * +; * Redistribution and use in source and binary forms, with or without +; * modification, are permitted provided that the following conditions +; * are met: +; * +; * 1. Redistributions of source code must retain the above copyright +; * notice, this list of conditions and the following disclaimer. +; * 2. Redistributions in binary form must reproduce the above copyright +; * notice, this list of conditions and the following disclaimer in the +; * documentation and/or other materials provided with the distribution. +; * 3. No personal names or organizations' names associated with the +; * Atomthreads project may be used to endorse or promote products +; * derived from this software without specific prior written permission. +; * +; * THIS SOFTWARE IS PROVIDED BY THE ATOMTHREADS PROJECT AND CONTRIBUTORS +; * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +; * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +; * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE +; * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +; * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +; * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +; * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +; * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +; * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +; * POSSIBILITY OF SUCH DAMAGE. +; */ + + +;/** +; * \b _timer_b2 +; * +; * Timer B2 1ms interrupt. +; * On interrupt, the U flag is cleared meaning that the interrupt stack (IStack) +; * is selected. FLG and PC are saved on IStack, this routine then cuts and pastes +; * FLG and PC from IStack to UStack (User stack) so that all data relevant to a +; * thread is kept on the same stack area. This also makes the IStack available to +; * use for interrupt nesting. +; * +; * @return None +; */ + + .GLB _atomIntEnter + .GLB _atomTimerTick + .GLB $atomIntExit + .GLB __timer_b2 + .FB 0 + + .SECTION program,CODE,ALIGN + .align + .GLB __timer_b2 + .rvector 23, __timer_b2 +__timer_b2: + PUSHC FB ;Save FB temporary on I stack. + FSET U ;Select user stack + PUSHC ISP ;Save ISP in U stack + POPC FB ;POP ISP to FB + PUSH.W 8H[FB] ;Copy FLG from Istack to Ustack + PUSH.L 4H[FB] ;Copy TskX ReturnAddress from Istack to Ustack + FCLR U ;Select Istack + POPC FB ;restore original value of FB + ADD.L #6,SP ;Clean Istack, so it is free for interrupts. + FSET U ;Carry on, on Ustack + + JSR.A _atomIntEnter + JSR.A _atomTimerTick + + MOV.B:Q #1H,R0L ;Pass the TRUE parameter + JSR.A $atomIntExit + REIT +.END diff --git a/ports/m32c/atomport-private.h b/ports/m32c/atomport-private.h new file mode 100644 index 00000000..ff16a8bd --- /dev/null +++ b/ports/m32c/atomport-private.h @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2014, Juan Angel Hernandez Hdez. for Atomthreads Project. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. No personal names or organizations' names associated with the + * Atomthreads project may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE ATOMTHREADS PROJECT AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __ATOM_PORT_PRIVATE_H +#define __ATOM_PORT_PRIVATE_H + +/* Enumeration for interrupt level */ +typedef enum +{ + INTERRUPT_LVL_0 = 0x00, + INTERRUPT_LVL_1 = 0x01, + INTERRUPT_LVL_2 = 0x02, + INTERRUPT_LVL_3 = 0x03, + INTERRUPT_LVL_4 = 0x04, + INTERRUPT_LVL_5 = 0x05, + INTERRUPT_LVL_6 = 0x06, + INTERRUPT_LVL_7 = 0x07 +} teINTERRUPT_PRIORITY_LEVEL; + +/* CPU Frequency */ +#define M32C_OSC_FREQUENCY 20000000L +#define PRESCALE_VALUE 8 + +/* 1MS tick defines */ +#define COUNT_10MS (M32C_OSC_FREQUENCY/PRESCALE_VALUE)/100 + +/* Using simulator */ +#define HEW_SIMULATOR + +/* Function prototypes */ +void init_timerb2(void); +void init_pin_P0(void); +void toggle_pin_P0(void); + +/* Timer B2 registers */ +#pragma ADDRESS TB2MR 035Dh +#pragma ADDRESS TB2 0354h +#pragma ADDRESS TB2IC 0096h +uint8_t TB2MR; +uint16_t TB2; +uint8_t TB2IC; + +/* TIMER B2 (software int 23) */ +#pragma interrupt _timer_b2(vect=23) + +/* LED pin */ +#pragma ADDRESS PD0 03E2h //Input or output 0:Input 1:Output +#pragma ADDRESS P0 03E0h //R/W +uint8_t PD0; +uint8_t P0; + +#endif /* __ATOM_PORT_PRIVATE_H */ diff --git a/ports/m32c/atomport-tests.h b/ports/m32c/atomport-tests.h new file mode 100644 index 00000000..c7557ac6 --- /dev/null +++ b/ports/m32c/atomport-tests.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2010, Kelvin Lawson. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. No personal names or organizations' names associated with the + * Atomthreads project may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE ATOMTHREADS PROJECT AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __ATOM_PORT_TESTS_H +#define __ATOM_PORT_TESTS_H + +/* Include Atomthreads kernel API */ +#include "atom.h" + +/* Prerequisite include for ATOMLOG() macro (via printf) */ +#include + +/* Logger macro for viewing test results */ +#define ATOMLOG printf + +/* + * String location macro: for platforms which need to place strings in + * alternative locations, e.g. on avr-gcc strings can be placed in + * program space, saving SRAM. On most platforms this can expand to + * empty. + */ +#define _STR(x) x + +/* Default thread stack size (in bytes) */ +#define TEST_THREAD_STACK_SIZE 264 + +/* Uncomment to enable logging of stack usage to UART */ +/* #define TESTS_LOG_STACK_USAGE */ + + +#endif /* __ATOM_PORT_TESTS_H */ + diff --git a/ports/m32c/atomport.c b/ports/m32c/atomport.c new file mode 100644 index 00000000..033b23eb --- /dev/null +++ b/ports/m32c/atomport.c @@ -0,0 +1,277 @@ +/* + * Copyright (c) 2014, Juan Angel Hernandez Hdez. for Atomthreads Project. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. No personal names or organizations' names associated with the + * Atomthreads project may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE ATOMTHREADS PROJECT AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "atom.h" +#include "atomport-private.h" + +ATOM_TCB *asm_shell_new_tcb_ptr; +ATOM_TCB *asm_shell_old_tcb; +ATOM_TCB *asm_shell_new_tcb; + +/** Forward declarations */ +static void thread_shell (void); + + +/** + * \b thread_shell + * + * Shell routine which is used to call all thread entry points. + * + * This routine is called whenever a new thread is starting, and + * provides a simple wrapper around the thread entry point that + * allows us to carry out any actions we want to do on thread's + * first starting up, or returning after completion. + * + * We mainly just want to make sure interrupts are enabled when a + * thread is run for the first time. This can be done via stack + * restores when threads are first run, but it's handy to have this + * wrapper anyway to run some common code if threads run to + * completion. + * + * A thread shell is also handy for providing port users with a place + * to do any other initialisation that must be done for each thread + * (e.g. opening stdio files etc). + * + * @return None + */ +static void thread_shell (void) +{ + ATOM_TCB *curr_tcb; + + /* Get the TCB of the thread being started */ + curr_tcb = atomCurrentContext(); + + /** + * Enable interrupts - these will not be enabled when a thread + * is first restored. + */ + asm("FSET I"); + + /* Call the thread entry point */ + if (curr_tcb && curr_tcb->entry_point) + { + curr_tcb->entry_point(curr_tcb->entry_param); + } + + /* Thread has run to completion: remove it from the ready list */ + curr_tcb->suspended = TRUE; + atomSched (FALSE); +} + + +/** + * \b archThreadContextInit + * + * Architecture-specific thread context initialisation routine. + * + * This function must set up a thread's context ready for restoring + * and running the thread via archFirstThreadRestore() or + * archContextSwitch(). + * + * The layout required to fill the correct register values is + * described in archContextSwitch(). + * + * @param[in] tcb_ptr Pointer to the TCB of the thread being created + * @param[in] stack_top Pointer to the top of the new thread's stack + * @param[in] entry_point Pointer to the thread entry point function + * @param[in] entry_param Parameter to be passed to the thread entry point + * + * @return None + */ +void archThreadContextInit (ATOM_TCB *tcb_ptr, void *stack_top, void (*entry_point)(uint32_t), uint32_t entry_param) +{ + uint16_t *stack_ptr; + + /** Start at stack top */ + stack_ptr = (uint16_t*)stack_top; + + /** + * After restoring all of the context registers, the thread restore + * routines will perform a RTS or REIT which expect to find the + * address of the calling routine on the stack. In this case (the + * first time a thread is run) we "return" to the entry point for + * the thread. That is, we store the thread entry point in the + * place that RTS or REIT will look for the return address: the + * stack. + * + * Note that we are using the thread_shell() routine to start all + * threads, so we actually store the address of thread_shell() + * here. Other ports may store the real thread entry point here + * and call it directly from the thread restore routines. + * + * Because we are filling the stack from top to bottom, this goes + * on the stack first (at the top). + */ + + /* | Ret ADD High PC (H) | */ + *stack_ptr-- = ((uint32_t)thread_shell >> 16L); + /* | Ret ADD Low PC (L) | */ + *stack_ptr-- = (uint16_t)((uint32_t)thread_shell & 0x0000FFFFL); + /* | FB | */ + *stack_ptr-- = (uint16_t)0xFBFB; + *stack_ptr-- = (uint16_t)0xFBFB; + /* | FLG | */ + *stack_ptr-- = (uint16_t)0x00C0; //User stack pointer activated and interrupts enabled + /* | SB | */ + *stack_ptr-- = (uint16_t)0x3B3B; + *stack_ptr-- = (uint16_t)0x3B3B; + /* | A1 | */ + *stack_ptr-- = (uint16_t)0xA1A1; + *stack_ptr-- = (uint16_t)0xA1A1; + /* | A0 | */ + *stack_ptr-- = (uint16_t)0xA0A0; + *stack_ptr-- = (uint16_t)0xA0A0; + /* | R3 | */ + *stack_ptr-- = (uint16_t)0x3333; + /* | R2 | */ + *stack_ptr-- = (uint16_t)0x2222; + /* | R1 | */ + *stack_ptr-- = (uint16_t)0x1111; + /* | R0 | */ + *stack_ptr = (uint16_t)0x0000; + + + /** + * All thread context has now been initialised. Save the current + * stack pointer to the thread's TCB so it knows where to start + * looking when the thread is started. + */ + tcb_ptr->sp_save_ptr = stack_ptr; + +} + +/** + * \b archFirstThreadRestore + * + * Architecture-specific function to restore and start the first thread. + * This is called by atomOSStart() when the OS is starting. + * + * This function will be largely similar to the latter half of + * archContextSwitch(). Its job is to restore the context for the + * first thread, and finally enable interrupts (although we actually + * enable interrupts in thread_shell() for new threads in this port + * rather than doing it explicitly here). + * + * It expects to see the context saved in the same way as if the + * thread has been previously scheduled out, and had its context + * saved. That is, archThreadContextInit() will have been called + * first (via atomThreadCreate()) to create a "fake" context save + * area, containing the relevant register-save values for a thread + * restore. + * + * Note that you can create more than one thread before starting + * the OS - only one thread is restored using this function, so + * all other threads are actually restored by archContextSwitch(). + * This is another reminder that the initial context set up by + * archThreadContextInit() must look the same whether restored by + * archFirstThreadRestore() or archContextSwitch(). + * + * @param[in] new_tcb_ptr Pointer to the thread being scheduled in + * + * @return None + * + * void archFirstThreadRestore (ATOM_TCB *new_tcb_ptr) + */ +void archFirstThreadRestore(ATOM_TCB *new_tcb_ptr) +{ + asm_shell_new_tcb_ptr = new_tcb_ptr; + + asm("MOV.L _asm_shell_new_tcb_ptr,A0"); + asm("LDC [A0],SP"); + asm("POPM R0,R1,R2,R3,A0,A1,SB"); + asm("POPC FLG"); + asm("POPC FB"); + asm("RTS"); +} + +/* + * \b archContextSwitch + * + * Architecture-specific context switch routine. + * + * Note that interrupts are always locked out when this routine is + * called. For cooperative switches, the scheduler will have entered + * a critical region. For preemptions (called from an ISR), the + * ISR will have disabled interrupts on entry. + * + * @param[in] old_tcb_ptr Pointer to the thread being scheduled out + * @param[in] new_tcb_ptr Pointer to the thread being scheduled in + * + * @return None + * + * void archContextSwitch (ATOM_TCB *old_tcb_ptr, ATOM_TCB *new_tcb_ptr) + */ +void archContextSwitch(ATOM_TCB *old_tcb, ATOM_TCB *new_tcb) +{ + asm_shell_old_tcb = old_tcb; + asm_shell_new_tcb = new_tcb; + + /* Save context */ + asm("PUSHC FLG"); + asm("PUSHM R0,R1,R2,R3,A0,A1,SB"); + asm("MOV.L _asm_shell_old_tcb,A0"); + asm("STC SP,[A0]"); + + /* Restore Context */ + asm("MOV.L _asm_shell_new_tcb,A0"); + asm("LDC [A0],SP"); + asm("POPM R0,R1,R2,R3,A0,A1,SB"); + asm("POPC FLG"); + asm("POPC FB"); + asm("RTS"); +} + +/** + * \b init_timerb2 + * + * Initiate 1MS timer. Not used in simulator mode. + * + * @return None + */ +void init_timerb2(void) +{ +#ifndef HEW_SIMULATOR + TB2MR = 0x40; // M32C_OSC_FREQUENCY/8 + TB2 = COUNT_10MS; + TB2IC = INTERRUPT_LVL_1; +#endif +} + +void init_pin_P0(void) +{ + PD0 = 0xFF; //All outputs. + P0 = 0x00; //Outputs low. +} + +void toggle_pin_P0(void) +{ + P0 ^= 1 << 0; + P0 ^= 1 << 1; +} \ No newline at end of file diff --git a/ports/m32c/atomport.h b/ports/m32c/atomport.h new file mode 100644 index 00000000..2126fefe --- /dev/null +++ b/ports/m32c/atomport.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2014, Juan Angel Hernandez Hdez. for Atomthreads Project. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. No personal names or organizations' names associated with the + * Atomthreads project may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE ATOMTHREADS PROJECT AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __ATOM_PORT_H +#define __ATOM_PORT_H + +/* Portable uint8_t and friends available from stdint.h on this platform */ +#include "stdint.h" + +/* Definition of NULL is available from stddef.h on this platform */ +#include + +/* Required number of system ticks per second (normally 100 for 10ms tick) */ +#define SYSTEM_TICKS_PER_SEC 100 + +/* Size of each stack entry / stack alignment size (8 bits on AVR) */ +#define STACK_ALIGN_SIZE sizeof(uint16_t) + +/** + * Architecture-specific types. + * Most of these are available from stdint.h on this platform, which is + * included above. + */ +#define POINTER void * + +/* Critical region protection */ +#define CRITICAL_STORE uint8_t dummy_to_avoid_warning=0 +#define CRITICAL_START() asm("FCLR I"); //if(dummy_to_avoid_warning){} +#define CRITICAL_END() asm("FSET I") + +/* Uncomment to enable stack-checking */ +/* #define ATOM_STACK_CHECKING */ + + +#endif /* __ATOM_PORT_H */ diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.Hbp b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.Hbp new file mode 100644 index 00000000..ff4ea30f --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.Hbp @@ -0,0 +1,2 @@ +[Setting] +ToolChain=0 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.hws b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.hws new file mode 100644 index 00000000..a38f5307 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.hws @@ -0,0 +1,40 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"11.0" +[WORKSPACE_DETAILS] +"hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws" "M16C/80,M32C" "Renesas M32C Standard" +[SHARED_WORKSPACE_CONTROL_STATUS] +"" "" "" +"" "" "" +[PROJECTS] +"hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\hew_tst_sem1.hwp" 0 +[INFORMATION] +"No workspace information available" +[SCRAP] +[PROJECT_DEPENDENCY] +[WORKSPACE_PROPERTIES] +[HELP_FILES] +[GENERAL_DATA_PROJECT] +[USERMENUTOOLS] +[CUSTOMPLACEHOLDERS] +[MAKEFILE_BUILD_INFO] +"$(WORKSPDIR)\make\$(PROJECTNAME)_$(CONFIGNAME).mak" "" "$(WORKSPDIR)\make" 0 0 0 +[VD_CONFIGURATION_OPTIONS] +"ACTIVE_DESKTOP" "0" +[VD_CONFIGURATIONS] +"0" "Default1" "1" +"1" "Default2" "1" +"2" "Default3" "1" +"3" "Default4" "1" +[OPTIONS_DEBUG_TAB] +0 0 0 0 0 +[VCS] +"" "" "" 0 +[VCS_PROJECT] +[MAKEFILE_ENV_STRINGS] +[MAKEFILE_ENV_FLAGS] +1 0 0 +[MAKEFILE_CLEAN_INFO] +"" +[END] diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws new file mode 100644 index 00000000..4cc0da6b --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws @@ -0,0 +1,17 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"1.2" +[CURRENT_PROJECT] +"hew_tst_sem1" +[GENERAL_DATA] +[BREAKPOINTS] +[OPEN_WORKSPACE_FILES] +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" +[WORKSPACE_FILE_STATES] +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" -8 -30 1114 570 1 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" 0 0 919 353 0 0 +[LOADED_PROJECTS] +"hew_tst_sem1" +[END] diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log new file mode 100644 index 00000000..87f06244 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log @@ -0,0 +1,31 @@ +[CommunicationLog] +R [0764E98A] : 0 +S [0764E98A] : (4100020000200) +R [0764E98A] : 0 +S [0764E98A] : (53) +R [0764E96B] : 000 +S [0764E96B] : (7D) +R [0764E96B] : 002000080001 +S [0764E96B] : (75) +R [0764E96B] : 0FFFF800100000000 +S [0764E96B] : (78) +R [0764E96B] : 0400000FE05A8 +S [0764E96B] : (34) +R [0764E96B] : 010000000000FE05A8 +S [0764E96B] : (35) +R [0764E8DE] : 0 +S [0764E8DE] : (53) +R [0764E890] : 000 +S [0764E890] : (7D) +R [0764E890] : 002000080001 +S [0764E890] : (75) +R [0764E890] : 0FFFF800100000000 +S [0764E890] : (78) +R [0764E890] : 0400000FE05A8 +S [0764E890] : (34) +R [0764E890] : 010000000000FE05A8 +S [0764E890] : (35) +R [0764E890] : 00001111100003333000989A1A1A10008403B3B3B000000000000000000000000000000000000040000082E00174300C0FE05A8FFFD000000000000000000000000000000000000000000000000000000000000000000000000000000 +S [0764E890] : (40) +R [0764E890] : 000 +S [0764E890] : (7D) diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/Debug.hdp b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/Debug.hdp new file mode 100644 index 0000000000000000000000000000000000000000..f85afab7730c2ddd0cf4b7e50466e4227466d395 GIT binary patch literal 13855 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 Jkz`r<@PF+YvYY?_ literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.lst b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.lst new file mode 100644 index 00000000..5ebc8e97 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.lst @@ -0,0 +1,93 @@ +* M32C SERIES ASSEMBLER * SOURCE LIST Wed Mar 05 18:52:21 2014 PAGE 001 + + SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 + + 1 ;/* + 2 ; * Copyright (c) 2014, Juan Angel Hernandez Hdez. for Atomthreads Project. + 3 ; * All rights reserved. + 4 ; * + 5 ; * Redistribution and use in source and binary forms, with or without + 6 ; * modification, are permitted provided that the following conditions + 7 ; * are met: + 8 ; * + 9 ; * 1. Redistributions of source code must retain the above copyright + 10 ; * notice, this list of conditions and the following disclaimer. + 11 ; * 2. Redistributions in binary form must reproduce the above copyright + 12 ; * notice, this list of conditions and the following disclaimer in the + 13 ; * documentation and/or other materials provided with the distribution. + 14 ; * 3. No personal names or organizations' names associated with the + 15 ; * Atomthreads project may be used to endorse or promote products + 16 ; * derived from this software without specific prior written permission. + 17 ; * + 18 ; * THIS SOFTWARE IS PROVIDED BY THE ATOMTHREADS PROJECT AND CONTRIBUTORS + 19 ; * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + 20 ; * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + 21 ; * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE + 22 ; * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + 23 ; * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + 24 ; * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + 25 ; * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + 26 ; * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + 27 ; * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + 28 ; * POSSIBILITY OF SUCH DAMAGE. + 29 ; */ + 30 + 31 + 32 ;/** + 33 ; * \b _timer_b2 + 34 ; * + 35 ; * Timer B2 1ms interrupt. + 36 ; * On interrupt, the U flag is cleared meaning that the interrupt stack (IStack) + 37 ; * is selected. FLG and PC are saved on IStack, this routine then cuts and pastes + 38 ; * FLG and PC from IStack to UStack (User stack) so that all data relevant to a + 39 ; * thread is kept on the same stack area. This also makes the IStack available to + 40 ; * use for interrupt nesting. + 41 ; * + 42 ; * @return None + 43 ; */ + 44 + 45 .GLB _atomIntEnter + 46 .GLB _atomTimerTick + 47 .GLB $atomIntExit + 48 .GLB __timer_b2 + 49 .FB 0 + 50 + 51 .SECTION program,CODE,ALIGN + 52 .align + 53 .GLB __timer_b2 + 54 .rvector 23, __timer_b2 + 55 000000 __timer_b2: + 56 000000 D12B PUSHC FB ;Save FB temporary on I stack. + 57 000002 D1EF FSET U ;Select user stack + 58 000004 D12F PUSHC ISP ;Save ISP in U stack + 59 000006 D32B POPC FB ;POP ISP to FB + 60 000008 C3CE08 PUSH.W 8H[FB] ;Copy FLG from Istack to Ustack + 61 00000B A2C104 PUSH.L 4H[FB] ;Copy TskX ReturnAddress from Istack to Ustack + 62 00000E D3EF FCLR U ;Select Istack + * M32C SERIES ASSEMBLER * SOURCE LIST Wed Mar 05 18:52:21 2014 PAGE 002 + + SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 + + 63 000010 D32B POPC FB ;restore original value of FB + 64 000012 63 Q ADD.L #6,SP ;Clean Istack, so it is free for interrupts. + 65 000013 D1EF FSET U ;Carry on, on Ustack + 66 + 67 000015 CD000000r A JSR.A _atomIntEnter + 68 000019 CD000000r A JSR.A _atomTimerTick + 69 + 70 00001D F8A1 Q MOV.B:Q #1H,R0L ;Pass the TRUE parameter + 71 00001F CD000000r A JSR.A $atomIntExit + 72 000023 9E REIT + 73 .END + +Information List + +TOTAL ERROR(S) 00000 +TOTAL WARNING(S) 00000 +TOTAL LINE(S) 00073 LINES + +Section List + +Attr Size Name +CODE 00000036(000024H) program +ROMDATA 00000004(000004H) vector diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.r30 new file mode 100644 index 0000000000000000000000000000000000000000..ea8cb650032fec13e410a2887e586248a583c307 GIT binary patch literal 1133 zcmcJOO-~a+7{_O3x3r;%211MnvdzLnN2#nXFDthBWYu)s<1dm{!EsGHC#K`%EJH8mmds~) z7rHqZId0xDt&vWcH0M_r{c+kpsFtBcM2Vw*)fZqAgXAIuJ4A3Pa5pojPWd4w!s=Wm zolVc&Rz@^GJwJQz9~6IlY19d$bFKXU^xtPeuxQaPSZyWybaT562bA$08rx@^wXUb& zW7$4nl&znU(xP--Yr?CouAi_wxTCPly60Alx!Tvdi|bR@iJQ~ zK0X}kiM2mnE4fXHbnKx<96X7Wab4!sID;01CW+KUSXXsj)ik)ZRx?2Uheyx-tC4^r z5+rC)UQN_sCqkUUm~8lT8Hpi{A<0Nrkh+krB88ByA%&5yBlRNPKstpqj?{-Vfz*$b zMjAkxL^^{sg>)8a8tEL;3{rHX)$H!Hov`qzs=@8M+dgK^FdSW4qwBO46S2fr5N}p#sLtMgqB1b#AxDdT7y9Mhw}|w{`?R#g7@^DoV|uTua3 literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.m32cc new file mode 100644 index 00000000..189f2ef0 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.m32cc @@ -0,0 +1,14 @@ +-I"E:\projects\atomthreads-master\kernel" +-I"E:\projects\atomthreads-master\tests" +-I"E:\projects\atomthreads-master\ports\m32c" +-D__STANDARD_IO__ +-D__STACKSIZE__=0X800 +-D__ISTACKSIZE__=0X300 +-DVECTOR_ADR=0x0fffd00 +-DATOM_STACK_CHECKING +-DTESTS_LOG_STACK_USAGE +-c +-finfo +-dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" +-M82 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.r30 new file mode 100644 index 0000000000000000000000000000000000000000..8c9f28c52bc2e0e3b11727ae76b36fdefa9fb00b GIT binary patch literal 11973 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 E07rHhZU6uP literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.m32cc new file mode 100644 index 00000000..037ded62 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.m32cc @@ -0,0 +1,14 @@ +-I"E:\projects\atomthreads-master\kernel" +-I"E:\projects\atomthreads-master\tests" +-I"E:\projects\atomthreads-master\ports\m32c" +-D__STANDARD_IO__ +-D__STACKSIZE__=0X800 +-D__ISTACKSIZE__=0X300 +-DVECTOR_ADR=0x0fffd00 +-DATOM_STACK_CHECKING +-DTESTS_LOG_STACK_USAGE +-c +-finfo +-dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" +-M82 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.r30 new file mode 100644 index 0000000000000000000000000000000000000000..aedbb79041a588b41925f7271791c29147042850 GIT binary patch literal 16970 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 literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.m32cc new file mode 100644 index 00000000..5c6a0939 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.m32cc @@ -0,0 +1,14 @@ +-I"E:\projects\atomthreads-master\kernel" +-I"E:\projects\atomthreads-master\tests" +-I"E:\projects\atomthreads-master\ports\m32c" +-D__STANDARD_IO__ +-D__STACKSIZE__=0X800 +-D__ISTACKSIZE__=0X300 +-DVECTOR_ADR=0x0fffd00 +-DATOM_STACK_CHECKING +-DTESTS_LOG_STACK_USAGE +-c +-finfo +-dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" +-M82 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.r30 new file mode 100644 index 0000000000000000000000000000000000000000..16019d749b6291eea286cdcc5b1f6cbf4e5949d4 GIT binary patch literal 14712 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 E2Qo(gRsaA1 literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.m32cc new file mode 100644 index 00000000..9753df4a --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.m32cc @@ -0,0 +1,14 @@ +-I"E:\projects\atomthreads-master\kernel" +-I"E:\projects\atomthreads-master\tests" +-I"E:\projects\atomthreads-master\ports\m32c" +-D__STANDARD_IO__ +-D__STACKSIZE__=0X800 +-D__ISTACKSIZE__=0X300 +-DVECTOR_ADR=0x0fffd00 +-DATOM_STACK_CHECKING +-DTESTS_LOG_STACK_USAGE +-c +-finfo +-dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" +-M82 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.r30 new file mode 100644 index 0000000000000000000000000000000000000000..1f08ef0e713bab05191f048f24b365a9514e4497 GIT binary patch literal 1227 zcmcgszfaph6u!GSF(O0NA6r$)p>9e5J0=MwVyOCyFtN0vQzR=T4$$HxwVjl9szUz& zwr<_hKclFsI;27o3WGaTsGNWnse|bhPxPG=2Qx5q!MeNeyLb1VzxVX)pZt6}^)Q)L z_)=Y4v?|7*q0kn!(L03D0<|&27t|(z|87fT0`I4g+#;s2ySWjoQ42j)0Ea z0=mUv264jH+r){1HHK0Rem4}plDWn<>D~7Qvzk`2vbLrPQfZ}JstA%SNOOXuXH&w+ z>`cCDRGx!0GheVOy0vU*g`z1`Ypbh*p}nkWrWHJp^nz(=M!s4xz(Y@`7W2#6E7gK) zW{;VcYHIrA+07&ES#2rbFM+J5l@X>c;|ZPu{V{ZhKqVNN4nLlKD(5`fGwkloS7&FE zzRu)%I)ev&ok>q;lIctiboN+Z=h=;~aIt)`FZ8m#x*#@KK2T5J!cN9#hR|a zR#(baR6XT$5zjN0E1q{Dfz}6=y_~ZG*XA17tNgT((*ou*;k`b^hxqeO$8TV|gGIW9 z*H2D<9Fi~FzS3WW&>e!0Zbnq~$pcmWEd~P}x5P_Bn6|_YLCvFhL^Z8~VRbR`qdH^g zZv&(DSlthrrRO7i9fpCFuL%5d+R+;0yHHMpMYc%Or+Z#9%PG1 zG$Si86qc0#m3O1?r@$S&L0pk>mfQw*v3r2&HrV@sn){zxBDeWJ>-RXfc|hnkMBK+8 G_Wl8ksn6N~ literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.m32cl b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.m32cl new file mode 100644 index 00000000..f8fe49ac --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.m32cl @@ -0,0 +1,19 @@ +-L "nc382lib" +-G +-MS +-O "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\hew_tst_sem1.x30" +-ORDER data_SE=0400,bss_SE,data_SO,bss_SO,data_NE,bss_NE,data_NO,bss_NO,stack,istack,heap_NE,rom_NE,rom_NO,data_6E=010000,bss_6E,data_6O,bss_6O,data_FE,bss_FE,data_FO,bss_FO,rom_FE=0FE0000,rom_FO,data_SEI,data_SOI,data_6EI,data_6OI,data_NEI,data_NOI,data_FEI,data_FOI,switch_table,program,interrupt,program_S,vector=0FFFD00 +-M82 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomkernel.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atommutex.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport-asm.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomqueue.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomsem.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomtimer.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\fvector.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\initsct.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\intprg.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\resetprg.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\sem1.r30" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\tests-main.r30" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.map b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.map new file mode 100644 index 00000000..91ee7fc1 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.map @@ -0,0 +1,817 @@ +########################################## +# (1) LINK INFORMATION # +########################################## +c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\bin\ln308.exe @E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\hew_tst_sem1.m32cl + +# LINK FILE INFORMATION +atomkernel (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomkernel.r30) + Mar 5 18:52:19 2014 + +atommutex (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atommutex.r30) + Mar 5 18:52:19 2014 + +atomport-asm (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport-asm.r30) + Mar 5 18:52:21 2014 + +atomport (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport.r30) + Mar 5 18:52:20 2014 + +atomqueue (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomqueue.r30) + Mar 5 18:52:20 2014 + +atomsem (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomsem.r30) + Mar 5 18:52:20 2014 + +atomtimer (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomtimer.r30) + Mar 5 18:52:20 2014 + +fvector (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\fvector.r30) + Mar 5 18:52:20 2014 + +initsct (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\initsct.r30) + Mar 5 18:52:20 2014 + +intprg (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\intprg.r30) + Mar 5 18:52:21 2014 + +resetprg (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\resetprg.r30) + Mar 5 18:52:21 2014 + +sem1 (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\sem1.r30) + Mar 5 18:52:21 2014 + +tests-main (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\tests-main.r30) + Mar 5 18:52:21 2014 + +init (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:56 2009 + +printf (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:30:00 2009 + +device (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:52 2009 + +fputc (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:54 2009 + +print (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:30:00 2009 + +_f8eq (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:43 2009 + +_f8ge (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:43 2009 + +_f8lt (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:43 2009 + +_f8mul (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:44 2009 + +_f8ne (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:44 2009 + +_i4modu (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:46 2009 + +_i8divu (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:46 2009 + +_i8modu (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:46 2009 + +cdata (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:50 2009 + +fgetc (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) + Dec 9 13:29:53 2009 + + +########################################## +# (2) SECTION INFORMATION # +########################################## +# SECTION ATR TYPE START LENGTH ALIGN MODULENAME +data_SE REL DATA 000400 000000 2 initsct +bss_SE REL DATA 000400 000000 2 initsct +data_SO REL DATA 000400 000000 initsct +bss_SO REL DATA 000400 000000 initsct +data_NE REL DATA 000400 00000A 2 atomkernel + REL DATA 00040A 000008 2 atomtimer + REL DATA 000412 000000 2 initsct +bss_NE REL DATA 000412 00000C 2 atomport + REL DATA 00041E 000000 2 initsct + REL DATA 00041E 000256 2 sem1 + REL DATA 000674 0001D0 2 tests-main + REL DATA 000844 00003C 2 init + REL DATA 000880 000108 2 print +data_NO REL DATA 000988 000001 atomkernel + REL DATA 000989 000000 initsct +bss_NO REL DATA 000989 000023 atomkernel + REL DATA 0009AC 000000 initsct + REL DATA 0009AC 00000A sem1 + REL DATA 0009B6 000023 tests-main + REL DATA 0009D9 00026A print +stack REL DATA 000C43 000800 resetprg +istack REL DATA 001443 000300 resetprg +data_FE REL DATA 010000 000000 2 initsct +bss_FE REL DATA 010000 000000 2 initsct +data_FO REL DATA 010000 000000 initsct +bss_FO REL DATA 010000 000000 initsct +rom_FO REL ROMDATA FE0000 0001FC sem1 + REL ROMDATA FE01FC 000035 tests-main + REL ROMDATA FE0231 00000A print + REL ROMDATA FE023B 000101 cdata +data_SEI REL ROMDATA FE033C 000000 initsct +data_SOI REL ROMDATA FE033C 000000 initsct +data_NEI REL ROMDATA FE033C 00000A atomkernel + REL ROMDATA FE0346 000008 atomtimer + REL ROMDATA FE034E 000000 initsct +data_NOI REL ROMDATA FE034E 000001 atomkernel + REL ROMDATA FE034F 000000 initsct +data_FEI REL ROMDATA FE034F 000000 initsct +data_FOI REL ROMDATA FE034F 000000 initsct +program REL CODE FE0350 0003F6 2 atomkernel + REL CODE FE0746 0002A4 2 atommutex + REL CODE FE09EA 000024 2 atomport-asm + REL CODE FE0A0E 000159 2 atomport + REL CODE FE0B68 0004D4 2 atomqueue + REL CODE FE103C 00026E 2 atomsem + REL CODE FE12AA 0001CC 2 atomtimer + REL CODE FE1476 000001 2 fvector + REL CODE FE1478 00004F 2 intprg + REL CODE FE14C8 0003C9 2 sem1 + REL CODE FE1892 0000EE 2 tests-main + REL CODE FE1980 00007B 2 init + REL CODE FE19FC 000098 2 printf + REL CODE FE1A94 000137 2 device + REL CODE FE1BCC 000047 2 fputc + REL CODE FE1C14 001573 2 print + REL CODE FE3188 000060 2 _f8eq + REL CODE FE31E8 000086 2 _f8ge + REL CODE FE326E 000084 2 _f8lt + REL CODE FE32F2 000258 2 _f8mul + REL CODE FE354A 000060 2 _f8ne + REL CODE FE35AA 00001E 2 _i4modu + REL CODE FE35C8 0000EC 2 _i8divu + REL CODE FE36B4 0000C9 2 _i8modu + REL CODE FE377E 0000D4 2 fgetc +interrupt REL CODE FE3852 0001B3 2 initsct + REL CODE FE3A06 00004D 2 resetprg +vector REL ROMDATA FFFD00 000100 atomport-asm +fvector ABS ROMDATA FFFFDC 000024 fvector +bss_MON1_E REL DATA 1000000 000000 2 initsct +bss_MON2_E REL DATA 1000000 000000 2 initsct +bss_MON3_E REL DATA 1000000 000000 2 initsct +bss_MON4_E REL DATA 1000000 000000 2 initsct +bss_MON1_O REL DATA 1000000 000000 initsct +bss_MON2_O REL DATA 1000000 000000 initsct +bss_MON3_O REL DATA 1000000 000000 initsct +bss_MON4_O REL DATA 1000000 000000 initsct +data_MON1_E REL DATA 1000000 000000 2 initsct +data_MON1_EI REL ROMDATA 1000000 000000 initsct +data_MON2_E REL DATA 1000000 000000 2 initsct +data_MON2_EI REL ROMDATA 1000000 000000 initsct +data_MON3_E REL DATA 1000000 000000 2 initsct +data_MON3_EI REL ROMDATA 1000000 000000 initsct +data_MON4_E REL DATA 1000000 000000 2 initsct +data_MON4_EI REL ROMDATA 1000000 000000 initsct +data_MON1_O REL DATA 1000000 000000 initsct +data_MON1_OI REL ROMDATA 1000000 000000 initsct +data_MON2_O REL DATA 1000000 000000 initsct +data_MON2_OI REL ROMDATA 1000000 000000 initsct +data_MON3_O REL DATA 1000000 000000 initsct +data_MON3_OI REL ROMDATA 1000000 000000 initsct +data_MON4_O REL DATA 1000000 000000 initsct +data_MON4_OI REL ROMDATA 1000000 000000 initsct +# Total ------------------------------------------------------------------- + DATA 0001343(00004931) Byte(s) + ROMDATA 0000473(00001139) Byte(s) + CODE 0003703(00014083) Byte(s) + +########################################## +# VARIABLE VECTOR TABLE INFORMATION # +########################################## +No. Address No. Address No. Address +0 __brk 1 __dummy_int 2 __dummy_int +3 __dummy_int 4 __dummy_int 5 __dummy_int +6 __dummy_int 7 __dummy_int 8 __dma0 +9 __dma1 10 __dma2 11 __dma3 +12 __timer_a0 13 __timer_a1 14 __timer_a2 +15 __timer_a3 16 __timer_a4 17 __uart0_trance +18 __uart0_receive 19 __dummy_int 20 __uart1_receive +21 __timer_b0 22 __timer_b1 23 __timer_b2 +24 __timer_b3 25 __timer_b4 26 __int5 +27 __int4 28 __int3 29 __int2 +30 __int1 31 __int0 32 __timer_b5 +33 __uart2_trance 34 __uart2_receive 35 __uart3_trance +36 __uart3_receive 37 __uart4_trance 38 __uart4_receive +39 __bus_collision_u2 40 __bus_collision_u3 41 __bus_collision_u4 +42 __ad_converter 43 __input_key 44 __intelligent_io_int0 +45 __intelligent_io_int1 46 __intelligent_io_int2 47 __intelligent_io_int3 +48 __intelligent_io_int4 49 __dummy_int 50 __dummy_int +51 __dummy_int 52 __dummy_int 53 __dummy_int +54 __dummy_int 55 __dummy_int 56 __dummy_int +57 __dummy_int 58 __dummy_int 59 __dummy_int +60 __dummy_int 61 __dummy_int 62 __dummy_int +63 __dummy_int + +########################################## +# (3) GLOBAL LABEL INFORMATION # +########################################## +$_pput fe1b92 $_sput fe1b7a $atomIntExit fe0524 +$atomSched fe0350 $fputc fe1bcc $speed fe1ab2 +__ad_converter fe14ba __brk fe1478 __bus_collision_ fe14b4 +__bus_collision_ fe14b6 __bus_collision_ fe14b8 __ctype fe023b +__dma0 fe147a __dma1 fe147c __dma2 fe147e +__dma3 fe1480 __dummy_int fe1476 __f8eq fe3188 +__f8ge fe31e8 __f8geti fe2e9c __f8lt fe326e +__f8mul fe32f2 __f8ne fe354a __f8prn fe2870 +__i4modU fe35aa __i8divU fe35c8 __i8modU fe36b4 +__init fe1980 __inmod fe3072 __input_key fe14bc +__int0 fe14a4 __int1 fe14a2 __int2 fe14a0 +__int3 fe149e __int4 fe149c __int5 fe149a +__intelligent_io fe14be __intelligent_io fe14c0 __intelligent_io fe14c2 +__intelligent_io fe14c4 __intelligent_io fe14c6 __iob 000844 +__istack_top 001743 __pri fe2dbe __print fe1c14 +__sget fe1b6a __stack_top 001443 __timer_a0 fe1482 +__timer_a1 fe1484 __timer_a2 fe1486 __timer_a3 fe1488 +__timer_a4 fe148a __timer_b0 fe1492 __timer_b1 fe1494 +__timer_b2 fe09ea __timer_b3 fe1496 __timer_b4 fe1498 +__timer_b5 fe14a6 __uart0_receive fe148e __uart0_trance fe148c +__uart1_receive fe1490 __uart2_receive fe14aa __uart2_trance fe14a8 +__uart3_receive fe14ae __uart3_trance fe14ac __uart4_receive fe14b2 +__uart4_trance fe14b0 _archContextSwit fe0b22 _archFirstThread fe0b0c +_archThreadConte fe0a44 _asm_shell_new_t 00041a _asm_shell_new_t 000412 +_asm_shell_old_t 000416 _atomCurrentCont fe0532 _atomIntEnter fe051e +_atomMutexCreate fe0746 _atomMutexDelete fe076a _atomMutexGet fe07f4 +_atomMutexPut fe08fc _atomOSInit fe0540 _atomOSStart fe057c +_atomOSStarted 000988 _atomQueueCreate fe0b68 _atomQueueDelete fe0bba +_atomQueueGet fe0c54 _atomQueuePut fe0d5a _atomSemCreate fe103c +_atomSemDelete fe105c _atomSemGet fe10e6 _atomSemPut fe11bc +_atomSemResetCou fe1252 _atomThreadCreat fe0406 _atomThreadStack fe04c8 +_atomTimeGet fe1344 _atomTimeSet fe134a _atomTimerCancel fe12ee +_atomTimerDelay fe1360 _atomTimerRegist fe12aa _atomTimerTick fe1352 +_dummy fe3a52 _exit fe3a4c _fgetc fe377e +_henkan1 fe2d2c _henkan2 fe2d5c _init_dev fe1a94 +_init_pin_P0 fe0b4a _init_prn fe1b36 _init_timerb2 fe0b48 +_initsct fe3852 _main fe1892 _printf fe19fc +_start fe3a06 _tcbDequeueEntry fe0670 _tcbDequeueHead fe062c +_tcbDequeuePrior fe06fa _tcbEnqueuePrior fe05ac _tcbReadyQ 000400 +_test_start fe14c8 _toggle_pin_P0 fe0b52 + +########################################## +# (4) GLOBAL EQU SYMBOL INFORMATION # +########################################## +__SB__ 00000400 + +########################################## +# (5) GLOBAL EQU BIT-SYMBOL INFORMATION # +########################################## + +########################################## +# (6) LOCAL LABEL INFORMATION # +########################################## +@ atomkernel ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomkernel.r30 ) +@ atommutex ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atommutex.r30 ) +@ atomport-asm ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport-asm.r30 ) +@ atomport ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport.r30 ) +@ atomqueue ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomqueue.r30 ) +@ atomsem ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomsem.r30 ) +@ atomtimer ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomtimer.r30 ) +@ fvector ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\fvector.r30 ) +@ initsct ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\initsct.r30 ) +@ intprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\intprg.r30 ) +@ resetprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\resetprg.r30 ) +@ sem1 ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\sem1.r30 ) +@ tests-main ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\tests-main.r30 ) +@ init ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ printf ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ device ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ fputc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ print ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8eq ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8ge ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8lt ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8mul ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8ne ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _i4modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _i8divu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _i8modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ cdata ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ fgetc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) + +########################################## +# (7) LOCAL EQU SYMBOL INFORMATION # +########################################## +@ atomkernel ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomkernel.r30 ) +@ atommutex ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atommutex.r30 ) +@ atomport-asm ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport-asm.r30 ) +@ atomport ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport.r30 ) +@ atomqueue ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomqueue.r30 ) +@ atomsem ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomsem.r30 ) +@ atomtimer ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomtimer.r30 ) +@ fvector ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\fvector.r30 ) +@ initsct ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\initsct.r30 ) +@ intprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\intprg.r30 ) +@ resetprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\resetprg.r30 ) +@ sem1 ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\sem1.r30 ) +@ tests-main ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\tests-main.r30 ) +@ init ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ printf ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ device ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ fputc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ print ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8eq ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8ge ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8lt ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8mul ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8ne ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _i4modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _i8divu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _i8modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ cdata ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ fgetc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) + +########################################## +# (8) LOCAL EQU BIT-SYMBOL INFORMATION # +########################################## +@ atomkernel ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomkernel.r30 ) +@ atommutex ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atommutex.r30 ) +@ atomport-asm ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport-asm.r30 ) +@ atomport ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport.r30 ) +@ atomqueue ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomqueue.r30 ) +@ atomsem ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomsem.r30 ) +@ atomtimer ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomtimer.r30 ) +@ fvector ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\fvector.r30 ) +@ initsct ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\initsct.r30 ) +@ intprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\intprg.r30 ) +@ resetprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\resetprg.r30 ) +@ sem1 ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\sem1.r30 ) +@ tests-main ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\tests-main.r30 ) +@ init ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ printf ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ device ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ fputc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ print ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8eq ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8ge ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8lt ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8mul ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _f8ne ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _i4modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _i8divu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ _i8modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ cdata ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) +@ fgetc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) + +*** Mapping List *** + +SECTION START END SIZE ALIGN + +data_SE + 00000400 00000400 0 2 +bss_SE + 00000400 00000400 0 2 +data_SO + 00000400 00000400 0 1 +bss_SO + 00000400 00000400 0 1 +data_NE + 00000400 00000411 12 2 +bss_NE + 00000412 00000987 576 2 +data_NO + 00000988 00000988 1 1 +bss_NO + 00000989 00000c42 2ba 1 +stack + 00000c43 00001442 800 1 +istack + 00001443 00001742 300 1 +data_FE + 00010000 00010000 0 2 +bss_FE + 00010000 00010000 0 2 +data_FO + 00010000 00010000 0 1 +bss_FO + 00010000 00010000 0 1 +rom_FO + 00fe0000 00fe033b 33c 1 +data_SEI + 00fe033c 00fe033c 0 1 +data_SOI + 00fe033c 00fe033c 0 1 +data_NEI + 00fe033c 00fe034d 12 1 +data_NOI + 00fe034e 00fe034e 1 1 +data_FEI + 00fe034f 00fe034f 0 1 +data_FOI + 00fe034f 00fe034f 0 1 +program + 00fe0350 00fe3851 3502 2 +interrupt + 00fe3852 00fe3a52 201 2 +vector + 00fffd00 00fffdff 100 1 +fvector + 00ffffdc 00ffffff 24 1 +bss_MON1_E + 01000000 01000000 0 2 +bss_MON2_E + 01000000 01000000 0 2 +bss_MON3_E + 01000000 01000000 0 2 +bss_MON4_E + 01000000 01000000 0 2 +bss_MON1_O + 01000000 01000000 0 1 +bss_MON2_O + 01000000 01000000 0 1 +bss_MON3_O + 01000000 01000000 0 1 +bss_MON4_O + 01000000 01000000 0 1 +data_MON1_E + 01000000 01000000 0 2 +data_MON1_EI + 01000000 01000000 0 1 +data_MON2_E + 01000000 01000000 0 2 +data_MON2_EI + 01000000 01000000 0 1 +data_MON3_E + 01000000 01000000 0 2 +data_MON3_EI + 01000000 01000000 0 1 +data_MON4_E + 01000000 01000000 0 2 +data_MON4_EI + 01000000 01000000 0 1 +data_MON1_O + 01000000 01000000 0 1 +data_MON1_OI + 01000000 01000000 0 1 +data_MON2_O + 01000000 01000000 0 1 +data_MON2_OI + 01000000 01000000 0 1 +data_MON3_O + 01000000 01000000 0 1 +data_MON3_OI + 01000000 01000000 0 1 +data_MON4_O + 01000000 01000000 0 1 +data_MON4_OI + 01000000 01000000 0 1 + +*** Symbol List *** + +SECTION= +FILE= START END SIZE + SYMBOL ADDR SIZE INFO COUNTS OPT + +SECTION=data_NE +FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomkernel + 00000400 00000409 a + _tcbReadyQ + 00000400 4 data ,g 0 + __SB__ + 00000400 1 data ,g 0 + +SECTION=bss_NE +FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/atomport + 00000412 0000041d c + _asm_shell_new_tcb_ptr + 00000412 4 data ,g 0 + _asm_shell_old_tcb + 00000416 4 data ,g 0 + _asm_shell_new_tcb + 0000041a 4 data ,g 0 + +FILE=init + 00000844 0000087f 3c + __iob + 00000844 0 none ,g 0 + +SECTION=data_NO +FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomkernel + 00000988 00000988 1 + _atomOSStarted + 00000988 1 data ,g 0 + +SECTION=istack +FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg + 00001443 00001742 300 + __stack_top + 00001443 0 none ,g 0 + +SECTION=rom_FO +FILE=cdata + 00fe023b 00fe033b 101 + __ctype + 00fe023b 0 none ,g 0 + +SECTION=program +FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomkernel + 00fe0350 00fe0745 3f6 + $atomSched + 00fe0350 93 func ,g 0 + _atomThreadCreate + 00fe0406 c2 func ,g 0 + _atomThreadStackCheck + 00fe04c8 56 func ,g 0 + _atomIntEnter + 00fe051e 5 func ,g 0 + $atomIntExit + 00fe0524 f func ,g 0 + _atomCurrentContext + 00fe0532 e func ,g 0 + _atomOSInit + 00fe0540 3c func ,g 0 + _atomOSStart + 00fe057c 29 func ,g 0 + _tcbEnqueuePriority + 00fe05ac 81 func ,g 0 + _tcbDequeueHead + 00fe062c 44 func ,g 0 + _tcbDequeueEntry + 00fe0670 8a func ,g 0 + _tcbDequeuePriority + 00fe06fa 4c func ,g 0 + +FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atommutex + 00fe0746 00fe09e9 2a4 + _atomMutexCreate + 00fe0746 24 func ,g 0 + _atomMutexDelete + 00fe076a 89 func ,g 0 + _atomMutexGet + 00fe07f4 109 func ,g 0 + _atomMutexPut + 00fe08fc b0 func ,g 0 + +FILE=atomport-asm + 00fe09ea 00fe0a0d 24 + __timer_b2 + 00fe09ea 0 none ,g 0 + +FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/atomport + 00fe0a0e 00fe0b66 159 + _archThreadContextInit + 00fe0a44 c8 func ,g 0 + _archFirstThreadRestore + 00fe0b0c 17 func ,g 0 + _archContextSwitch + 00fe0b22 26 func ,g 0 + _init_timerb2 + 00fe0b48 1 func ,g 0 + _init_pin_P0 + 00fe0b4a 9 func ,g 0 + _toggle_pin_P0 + 00fe0b52 15 func ,g 0 + +FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomqueue + 00fe0b68 00fe103b 4d4 + _atomQueueCreate + 00fe0b68 52 func ,g 0 + _atomQueueDelete + 00fe0bba 9a func ,g 0 + _atomQueueGet + 00fe0c54 106 func ,g 0 + _atomQueuePut + 00fe0d5a 100 func ,g 0 + +FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomsem + 00fe103c 00fe12a9 26e + _atomSemCreate + 00fe103c 1f func ,g 0 + _atomSemDelete + 00fe105c 8a func ,g 0 + _atomSemGet + 00fe10e6 d7 func ,g 0 + _atomSemPut + 00fe11bc 95 func ,g 0 + _atomSemResetCount + 00fe1252 1a func ,g 0 + +FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomtimer + 00fe12aa 00fe1475 1cc + _atomTimerRegister + 00fe12aa 44 func ,g 0 + _atomTimerCancel + 00fe12ee 56 func ,g 0 + _atomTimeGet + 00fe1344 5 func ,g 0 + _atomTimeSet + 00fe134a 9 func ,g 0 + _atomTimerTick + 00fe1352 d func ,g 0 + _atomTimerDelay + 00fe1360 66 func ,g 0 + +FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/fvector + 00fe1476 00fe1476 1 + __dummy_int + 00fe1476 1 func ,g 0 + +FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/intprg + 00fe1478 00fe14c6 4f + __brk + 00fe1478 1 func ,g 0 + __dma0 + 00fe147a 2 func ,g 0 + __dma1 + 00fe147c 2 func ,g 0 + __dma2 + 00fe147e 2 func ,g 0 + __dma3 + 00fe1480 2 func ,g 0 + __timer_a0 + 00fe1482 2 func ,g 0 + __timer_a1 + 00fe1484 2 func ,g 0 + __timer_a2 + 00fe1486 2 func ,g 0 + __timer_a3 + 00fe1488 2 func ,g 0 + __timer_a4 + 00fe148a 2 func ,g 0 + __uart0_trance + 00fe148c 2 func ,g 0 + __uart0_receive + 00fe148e 2 func ,g 0 + __uart1_receive + 00fe1490 2 func ,g 0 + __timer_b0 + 00fe1492 2 func ,g 0 + __timer_b1 + 00fe1494 2 func ,g 0 + __timer_b3 + 00fe1496 2 func ,g 0 + __timer_b4 + 00fe1498 2 func ,g 0 + __int5 + 00fe149a 2 func ,g 0 + __int4 + 00fe149c 2 func ,g 0 + __int3 + 00fe149e 2 func ,g 0 + __int2 + 00fe14a0 2 func ,g 0 + __int1 + 00fe14a2 2 func ,g 0 + __int0 + 00fe14a4 2 func ,g 0 + __timer_b5 + 00fe14a6 2 func ,g 0 + __uart2_trance + 00fe14a8 2 func ,g 0 + __uart2_receive + 00fe14aa 2 func ,g 0 + __uart3_trance + 00fe14ac 2 func ,g 0 + __uart3_receive + 00fe14ae 2 func ,g 0 + __uart4_trance + 00fe14b0 2 func ,g 0 + __uart4_receive + 00fe14b2 2 func ,g 0 + __bus_collision_u2 + 00fe14b4 2 func ,g 0 + __bus_collision_u3 + 00fe14b6 2 func ,g 0 + __bus_collision_u4 + 00fe14b8 2 func ,g 0 + __ad_converter + 00fe14ba 2 func ,g 0 + __input_key + 00fe14bc 2 func ,g 0 + __intelligent_io_int0 + 00fe14be 2 func ,g 0 + __intelligent_io_int1 + 00fe14c0 2 func ,g 0 + __intelligent_io_int2 + 00fe14c2 2 func ,g 0 + __intelligent_io_int3 + 00fe14c4 2 func ,g 0 + +FILE=E:/projects/atomthreads pull request/atomthreads-master/tests/sem1 + 00fe14c8 00fe1890 3c9 + _test_start + 00fe14c8 30f func ,g 0 + +FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/tests-main + 00fe1892 00fe197f ee + _main + 00fe1892 5a func ,g 0 + +FILE=init + 00fe1980 00fe19fa 7b + __init + 00fe1980 7b func ,g 0 + +FILE=printf + 00fe19fc 00fe1a93 98 + _printf + 00fe19fc 8c func ,g 0 + +FILE=device + 00fe1a94 00fe1bca 137 + _init_dev + 00fe1a94 1d func ,g 0 + $speed + 00fe1ab2 85 func ,g 0 + _init_prn + 00fe1b36 33 func ,g 0 + __sget + 00fe1b6a 10 func ,g 0 + $_sput + 00fe1b7a 19 func ,g 0 + $_pput + 00fe1b92 39 func ,g 0 + +FILE=fputc + 00fe1bcc 00fe1c12 47 + $fputc + 00fe1bcc 47 func ,g 0 + +FILE=print + 00fe1c14 00fe3186 1573 + __print + 00fe1c14 c5c func ,g 0 + __f8prn + 00fe2870 4bc func ,g 0 + _henkan1 + 00fe2d2c 30 func ,g 0 + _henkan2 + 00fe2d5c 62 func ,g 0 + __pri + 00fe2dbe dd func ,g 0 + __f8geti + 00fe2e9c 1d7 func ,g 0 + __inmod + 00fe3072 115 func ,g 0 + +FILE=_f8eq + 00fe3188 00fe31e7 60 + __f8eq + 00fe3188 60 func ,g 0 + +FILE=_f8ge + 00fe31e8 00fe326d 86 + __f8ge + 00fe31e8 86 func ,g 0 + +FILE=_f8lt + 00fe326e 00fe32f1 84 + __f8lt + 00fe326e 84 func ,g 0 + +FILE=_f8mul + 00fe32f2 00fe3549 258 + __f8mul + 00fe32f2 258 func ,g 0 + +FILE=_f8ne + 00fe354a 00fe35a9 60 + __f8ne + 00fe354a 60 func ,g 0 + +FILE=_i4modu + 00fe35aa 00fe35c7 1e + __i4modU + 00fe35aa 1e func ,g 0 + +FILE=_i8divu + 00fe35c8 00fe36b3 ec + __i8divU + 00fe35c8 ec func ,g 0 + +FILE=_i8modu + 00fe36b4 00fe377c c9 + __i8modU + 00fe36b4 c9 func ,g 0 + +FILE=fgetc + 00fe377e 00fe3851 d4 + _fgetc + 00fe377e d4 func ,g 0 + +SECTION=interrupt +FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/initsct + 00fe3852 00fe3a04 1b3 + _initsct + 00fe3852 1b3 func ,g 0 + +FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg + 00fe3a06 00fe3a52 4d + _start + 00fe3a06 45 func ,g 0 + _exit + 00fe3a4c 6 func ,g 0 + diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.mot b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.mot new file mode 100644 index 00000000..4cf41da3 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.mot @@ -0,0 +1,496 @@ +S0030000FC +S224FE00004572726F7220706F7374696E672073656D32206F6E2077616B6575700A005465AB +S224FE00207374322074687265616420776F6B6520776974686F75742064656C6574696F6E8E +S224FE004020282564290A004572726F7220706F7374696E672073656D32206F6E2077616B74 +S224FE006065757020282564290A0054657374312074687265616420776F6B65207769746814 +S224FE00806F75742064656C6574696F6E20282564290A00537461636B5573653A25640A009D +S224FE00A0537461636B4F766572666C6F772025640A00537461636B436865636B0A004572AB +S224FE00C0726F72206372656174696E6720746573742074687265616420320A004661696C0D +S224FE00E065642073656D322064656C6574650A004E6F74696679206661696C2028256429D1 +S224FE01000A004661696C65642073656D312064656C6574650A004661696C65642074696DAB +S224FE012065722064656C61790A004572726F72206372656174696E67207465737420746859 +S224FE01407265616420310A004572726F72206372656174696E6720746573742073656D6188 +S224FE016070686F726520320A004572726F72206372656174696E6720746573742073656D46 +S224FE01806170686F726520310A004261642073656D6170686F72652064656C6574696F6E23 +S224FE01A020636865636B730A004261642073656D6170686F7265206372656174696F6E2021 +S224FE01C0636865636B730A004572726F72206372656174696E672073656D6170686F726546 +S220FE01E00A004572726F722064656C6574696E672073656D6170686F72650A0092 +S224FE01FC4661696C282564290A00506173730A004D61696E5573653A25640A004D61696EDB +S219FE021C20737461636B206F766572666C6F770A00476F0A0036 +S20EFE02312D496E66696E6974790049 +S224FE023B002020202020202020202828282828202020202020202020202020202020202098 +S224FE025B2048101010101010101010101010101010848484848484848484841010101010B0 +S224FE027B1010818181818181010101010101010101010101010101010101010110101010E6 +S224FE029B1010828282828282020202020202020202020202020202020202020210101010AC +S224FE02BB200000000000000000000000000000000000000000000000000000000000000000 +S224FE02DB000000000000000000000000000000000000000000000000000000000000000000 +S224FE02FB0000000000000000000000000000000000000000000000000000000000000000E0 +S224FE031B0000000000000000000000000000000000000000000000000000000000000000BF +S205FE033B00BE +S20EFE033C00000000000000000000B4 +S20CFE03460000000000000000AC +S205FE034E00AB +S224FE0350EC068F2830FE32FAB2D1FA001888099A048E14FCD3EE580404E211159A1BB6533E +S224FE037000040000CFB70253C3E3FAA2C1FAA6C10404CF610073BB57E2D1FE9A0B580404B4 +S224FE03900192CB04FEBB18580404E210048B0D58040401988B04E9BF31FE5AF3EFFE39FE59 +S224FE03B0DB2D38FEC88EB65300040000CF3D0363C3E3FADA1AA6C10404B65300040000CF38 +S224FE03D0DC0173A2C1FAA6C10404CF090073D1EE8E14FCDEEC008F0893F10C08DA1197F3D8 +S224FE03F00C0404A2C10CA2C108CD220BFE737808F220158E10FCEC0A8F2832FA7808DA0D10 +S224FE0410780EDA097816DA05781A9A0734FEC9CEA3007808F220157808923B0C04B8910007 +S224FE04307808C3230D7808C323117808C32317780893330E0578089333120999B31AD8B09A +S224FE045099B216F8BEC3E3F6381EDA2678089333161B780893331A1F93F31AFAA2D1FA0083 +S224FE0470EB1078FAF0BF91B216902F5AF2FFFABBECA2C112A2C10EA2C1F6A2C108CD440A84 +S224FE0490FEB60310D3EEA2C108B65300040000CF0C0173E890DA08D1EE34FECCBB16D1EE53 +S224FE04B0E6D188099A0CCF7B00C9A3DA0502CF91FE32FE38FE8E14FCEC088F287808DA0934 +S224FE04D0780CDA0578109A0634FEC9BB3D780893C31BF833FC780839FCC99E99811FCA1341 +S224FE04F099B3F8F2F1F8C1A3902E5A9A06E3F1FCBBE439FCC99E09C3E310780899831F41E8 +S224FE051099B01009C3E30C32FE38FE8E14FCE7F10804DFDEEC0230FEE7FF080438FECF21DB +S224FE0530FEFC1908049A06B9B30404DFB89100DFEC028F20B89100C7E30404C7E300041018 +S224FE05508809C2CE10A2C10CA2C108B65300000000B653A605FE00AEFFB65389090000CFAB +S224FE057096FEB6031830FE38FE8E04FCEC048F20F6E18809AEFFB65300040000CF6D0163B0 +S224FE0590C3E3FCDA0E97F3FC0404A2C1FCCD0C0BFE538E04FCDEF9A19AFDDFDEEC0A8F2C91 +S224FE05B07808DA05780C9A0634FEC9BB6B4199B308C3E3F6C3E3FA78F6DA0B780C79F692DB +S224FE05D04604048B434193F108F69A1E0993F30C08780CB2110D00780C9333F61178F6DAE1 +S224FE05F03578F693330C0DBB2D780C9333FA0D780C9333F61178FA93330C1178F6DA1778B0 +S224FE0610F693330C0DBB0F93F3F6FA78F693C311F678FA9AA332FE38FE8E34FCEC048F088D +S224FE063078089A07B2D1FC00BB310978089A07B2D1FC00BB264193F308FC78FC0993C311E2 +S224FE065008097808DA08097808B2110D00B8910078FCC3230D78FCC3231199B3FC8E10FCBE +S224FE0670EC0C8F0C78089A07B2D1F400BB770978089A07B2D1F400BB6CB2D1F4004199B33E +S224FE069008C3E3F8C3E3FC78F8DA5A93F10CF89A484193F108F89A1678F80993C31108098B +S224FE06B07808DA22097808B2110D00BB1978F879FC9343111178F8918311DA0A78F89183A4 +S224FE06D0119333FC0D93F3F8F4B8910078F4C3231178F4C3230DBB0D93F3F8FC78F893C3A2 +S224FE06F011F8BBA499B3F48E30FCEC048F0878089A07B2D1FC00BB390978089A07B2D1FCC1 +S224FE071000BB2E09780892360C04CB214193F308FC0978080993C31108097808DA130978CD +S21AFE073008B2110D0078FCB21111005BB2D1FC0099B3FC8E10FCD4 +S224FE0746EC028F0878089A0634FEC9BB137808B21104007808F2200809B2D1080032FE3845 +S224FE0766FE8E10FCEC068F2832FA32FE78089A0634FFC9BB7432FFF9A1DA5CD3EEA2C1085B +S224FE0786CD2C06FE53C3E3FADA4B78FA922F16CAA2C1FAB65300040000CDAC05FE73E89057 +S224FE07A6DA08D1EE34FFCCBB2E78FA918317DA1E78FA809117A001CDEE12FE53E890DA085F +S224FE07C6D1EE34FFCDBB1078FAB2111700D1EEF2E1FEBBA4D1EEE2D1FE9A0ECD3205FEC968 +S224FE07E6A3DA0602CD5003FE38FF8E14FCDEEC1E8F2C32FA78089A0734FEC9CEF500CD32CB +S224FE080605FEC3E3FAD3EE78FA9A09D1EE34FEC8CEE00078089183049A04CEAD007808932B +S224FE082631FA049A04CEA200780C9B04CE9400A2C1FAA2C108CDAC05FE73E890DA09D1EE1C +S224FE084634FECCCEAD0078FAF2211532FE780CDA4A93F3FAF293F308F6B2F1E2AC09FE0076 +S224FE0866D3DAF283E3E693F30CEAD3DAE279FA836317D3DAE2A081CDAA12FE53E890DA210C +S224FE088634FECDA2C1FAA2C108CD7006FE7378FAF2201578FAB21117006B78FAB211170038 +S224FE08A6D1EE38FE9A4C02CD5003FE78FA92CB16FE9A3F78087908988B08E8B1C26B08BBC3 +S224FE08C631D1EEF2E3FEBB2A7808E21F089A0634FECBBB1C78087908988B08E8B1C26B0870 +S224FE08E678089183049A0778089333FA0432FED1EE38FE8E34FCEC068F2C32FA78089A0795 +S224FE090634FEC9CE9D00CD3205FEC3E3FAD3EE78089331FA04DA09D1EE34FECFCE84007856 +S224FE0926087908988B080E01C26B087808988B089A6C7808B2110400097808DA5CA2C10894 +S224FE0946CD2C06FE53C3E3FAA2C1FAB65300040000CDAC05FE73E890DA08D1EE34FECCBB73 +S224FE09664178FAF2201678089333FA0478FA918317DA1578FA809117A001CDEE12FE53E882 +S224FE098690DA0534FECD7B78FAB211170032FED1EE02CD5003FEBB0AD1EE32FE5BD1EE320A +S224FE09A6FE38FE8E34FCEC048F2832FC93F308FCDA30D3EE0978FCF222160978FCB2111714 +S224FE09C60078FCA00178FCF0B4A001CD7006FE7378FCA001B65300040000CDAC05FE73D1AA +S208FE09E6EE8E14FC7E +S224FE09EAD12BD1EFD12FD32BC3CE08A2C104D3EFD32B63D1EFCD1E05FECD5213FEF8A1CDC9 +S208FE0A0A2405FE9E20 +S224FE0A0EEC048F28CD3205FEC3E3FCD1EE78FCDA1878FC918305DA1199B3FC889109C1A30F +S224FE0A2EA00178FC9201055378FCF2211502CD5003FE8E14FCDEEC048F7893F30CFC99B39C +S224FE0A4EFCF2FEFCD7990E0AFEC9DBF960C1A3C13B99B3FCF2FEFCD7990E0AFEF960C1A343 +S224FE0A6EC13B99B3FCF2FEFCC1A3912FFBFB99B3FCF2FEFCC1A3912FFBFB99B3FCF2FEFC99 +S224FE0A8EC1A3912FC00099B3FCF2FEFCC1A3912F3B3B99B3FCF2FEFCC1A3912F3B3B99B379 +S224FE0AAEFCF2FEFCC1A3912FA1A199B3FCF2FEFCC1A3912FA1A199B3FCF2FEFCC1A3912FE5 +S224FE0ACEA0A099B3FCF2FEFCC1A3912FA0A099B3FCF2FEFCC1A3912F333399B3FCF2FEFC3B +S224FE0AEEC1A3912F222299B3FCF2FEFCC1A3912F11110933FC0993F3FC088E1EFCDEEC00C6 +S224FE0B0E97F3081204B1A3120400D1018E7FD3AAD32BDFFCEC0097F308160497F30C1A0431 +S224FE0B2ED1AA8FFEB1A3160400D111B1A31A0400D1018E7FD3AAD32BDFFCDFDEF6EFE2031E +S21DFE0B4E12E003DF01B8BBE003D89810E00301B8BBE003D89910E003DF63 +S224FE0B68EC028F287808DA05780C9A0634FEC9BB3D7810DA0578149A0634FEC9BB30780856 +S224FE0B8893330C0878089333100C780893331410B8910009C3E3087808C323047808C323D4 +S224FE0BA8147808C323187808C3231C30FE38FE8E14FCEC068F2832FA32FE78089A0734FFBB +S224FE0BC8C9CE850032FFF9A1DA6CD3EE7808F0B4A081CD2C06FE53C3E3FA9A0EA2C108CD07 +S224FE0BE82C06FE53C3E3FADA4B78FA922F16CAA2C1FAB65300040000CDAC05FE73E890DAE4 +S224FE0C0808D1EE34FFCCBB2E78FA918317DA1E78FA809117A001CDEE12FE53E890DA08D101 +S224FE0C28EE34FFCDBB1078FAB2111700D1EEF2E1FEBB94D1EEE2D1FE9A0ECD3205FEC9A33F +S224FE0C48DA0602CD5003FE38FF8E14FCEC228F2C32FA7808DA0578109A0734FEC9CEEF007F +S224FE0C68D3EE780891831CDA04CEC800780C9B04CEBA00CD3205FEC3E3FA9A04CEA700A282 +S224FE0C88C1FA7808F0B4A081CDAC05FE73E890DA04CE8B0078FAF2211532FE780CDA54939C +S224FE0CA8F3FAEE93F308F27808F0B483E3F6B2F1DE5A0EFE00D3DAEE83E3E293F30CE6D339 +S224FE0CC8DADE79FA836317D3DADEA081CDAA12FE53E890DA2434FECDA2C1FA7808F0B4A0C5 +S224FE0CE881CD7006FE7378FAF2201578FAB21117006B78FAB2111700D1EE38FE9A5002CD6A +S224FE0D085003FE78FA92CB16FE9A43D3EEA2C110A2C108CF7E017330FED1EEBB31D1EE348B +S224FE0D28FECCBB2AD1EE34FEC8BB23D1EEF2E3FEBB1CA2C110A2C108CF59017330FED1EE92 +S224FE0D48CD3205FEC9A3DA0602CD5003FE38FE8E34FCEC228F2C32FA7808DA0578109A07A9 +S224FE0D6834FEC9CEE900D3EE780879089341101CDA04CEBF00780C9B04CEB100CD3205FEE5 +S224FE0D88C3E3FA9A04CE9E00A2C1FAA2C108CDAC05FE73E890DA04CE850078FAF221153272 +S224FE0DA8FE780CDA4E93F3FAEE93F308F293F308F6B2F1DE5A0EFE00D3DAEE83E3E293F3BC +S224FE0DC80CE6D3DADE79FA836317D3DADEA081CDAA12FE53E890DA2134FECDA2C1FAA2C163 +S224FE0DE808CD7006FE7378FAF2201578FAB21117006B78FAB2111700D1EE38FE9A5002CDE2 +S224FE0E085003FE78FA92CB16FE9A43D3EEA2C110A2C108CF4C017330FED1EEBB31D1EE34BC +S224FE0E28FECCBB2AD1EE34FEC8BB23D1EEF2E3FEBB1CA2C110A2C108CF27017330FED1EEC3 +S224FE0E48CD3205FEC9A3DA0602CD5003FE38FE8E34FCEC048F2832FC93F308FCDA31D3EEFA +S224FE0E680978FCF222160978FCB211170078FCA00178FC809108A001CD7006FE7378FCA05E +S224FE0E8801B65300040000CDAC05FE73D1EE8E14FCDEEC068F7C7808DA05780C9A0734FE5C +S224FE0EA8C9CEB800780899C30C78089183087908919218790C8F5CC91BDA0F996F0080B023 +S224FE0EC893E9509AFBB90E9AF3C97BB083E9509AFB8E3A89B37808790899B30899C31899A7 +S224FE0EE8D20CC1A3C333187808790899831CF8BFC3631C780899830C780801831F1078080A +S224FE0F08C321188A077808B2111800A2C108CD2C06FE53C3E3FADA41A2C1FAB653000400FE +S224FE0F2800CDAC05FE73E8909A2B78FAF2201678FA918317DA1678FA809117A001CDEE124B +S224FE0F48FE53E890DA0634FECDBB1078FAB211170032FE6B34FECC4B32FE38FE8E3EFCDED7 +S224FE0F68EC068F7C7808DA05780C9A0734FEC9CEBF00780899C30C780C790891D30889A3D8 +S224FE0F88780891C214C1A38F5CC91BDA0F996F0080B093E9509AFBB90E9AF3C97BB083E9F6 +S224FE0FA8509AFB8E3A89B37808790899B30899C31499D20CC1A3C333147808790899831C5A +S224FE0FC8F8B1C3631C780899830C780801831F107808C321148A077808B21114007808F070 +S224FE0FE8B4A081CD2C06FE53C3E3FADA41A2C1FAB65300040000CDAC05FE73E8909A2B78F8 +S224FE1008FAF2201678FA918317DA1678FA809117A001CDEE12FE53E890DA0634FECDBB109B +S218FE102878FAB211170032FE6B34FECC4B32FE38FE8E3EFC53 +S224FE103CEC028F0878089A0634FEC9BB0E7808923B0C0409B2D1080032FE38FE8E10FCDE59 +S224FE105CEC068F2832FA32FE78089A0634FFC9BB7432FFF9A1DA5CD3EEA2C108CD2C06FEF7 +S224FE107C53C3E3FADA4B78FA922F16CAA2C1FAB65300040000CDAC05FE73E890DA08D1EEB4 +S224FE109C34FFCCBB2E78FA918317DA1E78FA809117A001CDEE12FE53E890DA08D1EE34FF0F +S224FE10BCCDBB1078FAB2111700D1EEF2E1FEBBA4D1EEE2D1FE9A0ECD3205FEC9A3DA0602D6 +S224FE10DCCD5003FE38FF8E14FCDEEC1E8F2C32FA78089A0734FEC9CEC300D3EE7808988B1E +S224FE10FC04DA04CEA700780C9B04CE9900CD3205FEC3E3FA9A04CE8600A2C1FAA2C108CDC7 +S224FE111CAC05FE73E890DA09D1EE34FECCCE8D0078FAF2211532FE780CDA4A93F3FAF293A4 +S224FE113CF308F6B2F1E26C12FE00D3DAF283E3E693F30CEAD3DAE279FA836317D3DAE2A009 +S224FE115C81CDAA12FE53E890DA2134FECDA2C1FAA2C108CD7006FE7378FAF2201578FAB26A +S224FE117C1117006B78FAB2111700D1EE38FE9A2C02CD5003FE78FA92CB16FEBB1FD1EE34E6 +S224FE119CFEC8BB18D1EEF2E3FEBB1178087908988B040E01C26B04D1EE32FE38FE8E34FCEE +S224FE11BCEC068F2C32FA78089A0734FEC9CE8200D3EE097808DA5EA2C108CD2C06FE53C3CB +S224FE11DCE3FAA2C1FAB65300040000CDAC05FE73E890DA08D1EE34FECCBB5678FAF22016F8 +S224FE11FC78FA918317DA1578FA809117A001CDEE12FE53E890DA0534FECD7B78FAB21117CE +S224FE121C0032FED1EECD3205FEC9A3DA2402CD5003FEBB1D7808E21F049A0634FECBBB0F70 +S224FE123C78087908988B04E8B1C26B0432FED1EE38FE8E34FCDEEC028F0878089A0534FE06 +S224FE125CC97B7808923B0C0432FE38FE8E10FCDEEC048F2832FC93F308FCDA30D3EE097845 +S224FE127CFCF222160978FCB211170078FCA00178FCF0B4A001CD7006FE7378FCA001B65332 +S212FE129C00040000CDAC05FE73D1EE8E14FCF1 +S224FE12AAEC028F0832FE7808DA0D097808DA0878089183089A0634FEC9BB25D3EE580A045C +S224FE12CA9A0E7808B2110C0097F3080A04BB0D7808B3330A040C97F3080A04D1EE32FE385B +S224FE12EAFE8E10FCEC0A8F2C34FECE32FA78089A0634FEC9BB40D3EEB9B30A04C3E3F6C3BC +S224FE130AE3FA78F6DA2E93F108F69A1CB3F10A04F69A0978F697C30C0A047B78F679FA9319 +S224FE132A430C0C32FEBB0D93F3F6FA78F693C30CF6BBD0D1EE38FE8E34FCB9B30E04DFDE98 +S224FE134AEC0097F3080E04FC188809DA08F6F10E04CF6A00DFDEEC1A8F2C32F6CD3205FE8F +S224FE136AC3E3F678089A0634FEC9BB4B78F69A0634FEC8BB42D3EE78F6F2211593F3F6FAD1 +S224FE138AB2F1E65414FE00D3DAFA83E3EA93F308EED3DAE679F6836317D3DAE6A081CF015B +S224FE13AAFF53E890DA08D1EE34FECDBB0AD1EE32FE02CD5003FE38FE8E34FCDEEC148F2C55 +S224FE13CAB2D1EC00B9B30A04C3E3F0C3E3F478F0DA5178F093C30CF878F0998308F8BF78D7 +S224FE13EAF0C323089A33B3F10A04F09A0978F097C30C0A047B78F079F493430C0C78EC9AD8 +S224FE140A0B99B3F0C3E3FCC3E3EC6B78FC9333F00C78F0B2110C005B93F3F0F493F3F8F039 +S224FE142ABBAD78ECDA2193F3ECF078F0DA190978F0DA0C78F0F0B4A00178F090015378F063 +S224FE144A93C30CF0BBE58E34FCDEEC048F0832FC93F308FCDA14D3EE78FCA001B6530004E1 +S210FE146A0000CDAC05FE73D1EE8E10FC2B +S205FE14769ED4 +S224FE14789EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE91 +S224FE14989EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE71 +S213FE14B89EDE9EDE9EDE9EDE9EDE9EDE9EDE9E20 +S224FE14C8EC0E8F0833FEB2D1F200A2F1F2E8030000CA45AE00B653AC090000CD3C10FE6365 +S224FE14E8E8909A20B653AC090000CD5C10FE53E890DA20B653E201FE00CDFC19FE53E3F104 +S224FE1508FEBB15B653C801FE00CDFC19FE53E3F1FE6AF2F1F2BBB4AE00B65300000000CDEB +S224FE15283C10FE63E8909A0FB653A901FE00CDFC19FE53E3F1FEB65300000000CD5C10FEDC +S224FE154853E8909A0FB6538A01FE00CDFC19FE53E3F1FEAE00B653AC090000CD3C10FE638F +S224FE1568E890DA12B6536901FE00CDFC19FE53E3F1FECEE800AE00B653B1090000CD3C1046 +S224FE1588FE63E890DA12B6534801FE00CDFC19FE53E3F1FECEC600AE01B65308010000B61B +S224FE15A85364040000B65300000000B653D817FE00AE10B6531E040000CD0604FEB60318D7 +S224FE15C8E890DA12B6532A01FE00CDFC19FE53E3F1FECE8800B65364000000CD6013FE5311 +S224FE15E8E890DA11B6531601FE00CDFC19FE53E3F1FEBB68B653AC090000CD5C10FE53E807 +S224FE160890DA11B6530201FE00CDFC19FE53E3F1FEBB49B653F4010000B653B1090000CDA3 +S224FE1628E610FE7330F2DA170198BBF2C98EB653F000FE00CDFC19FE63E3F1FEBB1EB6539A +S224FE1648B1090000CD5C10FE53E890DA0FB653DC00FE00CDFC19FE53E3F1FEAE00B653AC8F +S224FE1668090000CD3C10FE63E890DA12B6536901FE00CDFC19FE53E3F1FECEE800AE00B6E8 +S224FE168853B1090000CD3C10FE63E890DA12B6534801FE00CDFC19FE53E3F1FECEC600AEBD +S224FE16A801B65308010000B6536C050000B65300000000B6533818FE00AE10B65341040026 +S224FE16C800CD0604FEB60318E890DA12B653BE00FE00CDFC19FE53E3F1FECE8800B6536468 +S224FE16E8000000CD6013FE53E890DA11B6531601FE00CDFC19FE53E3F1FEBB68B653AC09E7 +S224FE17080000CD5C10FE53E890DA11B6530201FE00CDFC19FE53E3F1FEBB49B653F40100C0 +S224FE172800B653B1090000CDE610FE7330F2DA170198BBF2C98EB653F000FE00CDFC19FE20 +S224FE174863E3F1FEBB1EB653B1090000CD5C10FE53E890DA0FB653DC00FE00CDFC19FE53AC +S224FE1768E3F1FE33F2E3D2F2BA5FD3DAF6A081D3DAFAA08139F2899F2300F92088B11E0431 +S224FE17880000A881CDC804FEB6030CE890DA11B653B200FE00CDFC19FE53E3F1FEBB257840 +S224FE17A8F69A12C3CEF2B653A000FE00CDFC19FE63E3F1FE39FAC98EB6539300FE00CDFC50 +S224FE17C819FE63E3F1F2BB9E39FEC99E8E10FCDEEC02B65300000000B653AC090000CDE6E7 +S224FE17E810FE7330FE76FECADA140198BBFEC98EB6536A00FE00CDFC19FE63BB21B653B110 +S224FE1808090000CDBC11FE5330FEDA120198BBFEC98EB6534700FE00CDFC19FE63F9A1DA01 +S224FE18280EB65364000000CD6013FE53BBF0FCDEEC02B653F4010000B653AC090000CDE6AF +S224FE184810FE7330FE76FECADA140198BBFEC98EB6531E00FE00CDFC19FE63BB1BB653B101 +S224FE1868090000CDBC11FE5330FEDA0CB6530000FE00CDFC19FE53F9A1DA0EB6536400002C +S20DFE188800CD6013FE53BBF0FC1C +S224FE1892EC02CD480BFECD4A0BFEAE00B653A4000000B653A0070000CD4005FEB6030A30F9 +S224FE18B2FE9A32AE01B6532C010000B65374060000B65300000000B653EC18FE00AE10B659 +S224FE18D253B6090000CD0604FEB6031830FE9A05CD7C05FEF9A19AFD03FCEC0C8F28B6533A +S224FE18F22D02FE00CDFC19FE53CDC814FEC3E3F49A3CD3DAF8A081D3DAFCA081B653B60904 +S224FE19120000CDC804FEB6030CE8909A2178F89A0FB6531802FE00CDFC19FE53F2F1F4A23D +S224FE1932C1FCB6530C02FE00CDFC19FE7378F49A0EB6530602FE00CDFC19FE53BB0FA2C1EA +S224FE1952F4B653FC01FE00CDFC19FE7378F499BF64000C0031F4F9A1DA12CD520BFE39F4F3 +S212FE1972C99EA881CD6013FE53BBEC8E14FCFE +S224FE19808F20B6F1720800000200F7E17608B6F1630800001000F7E26708B6F154080000AF +S224FE19A00200F7E15808B6F1450800000100F7E14908B6F14B086A1BFE00B6D15A0800B6B0 +S224FE19C0F169086A1BFE00B6D1780800D7987A1BFEC7E34F08C7E35E08C7E36D08B6F17CC3 +S21FFE19E008921BFE00AF0100AF0000AF000003CDB21AFE63CD361BFE8E04DF9E +S224FE19FCEC068F2833FED3DA0883E3FAF2F4FA093808DA74097608259A4DF2F1080976085D +S224FE1A1C259A20B65353080000052500CDCC1BFE53E99F9A06F9AF8E14FCF2F108E3F1FE0A +S224FE1A3CBBCED3DAFEA081D3DAFAA081A2C108B653881AFE00CD141CFEB60310C3E3089A4A +S224FE1A5CAFF9AF8E14FCB65353080000780801888BCDCC1BFE53E99F9A06F9AF8E14FCF215 +S21CFE1A7CF108E3F1FEBB8939FE8E14FCB65353080000CDCC1BFE53DF23 +S224FE1A94EC008F08390CE991DA0AE992DA06F9AF8E10FC7808C32B05F9A18E10FCDEEC00FB +S224FE1AB48F4054B003B0126D03E990DA12E991DA17E992DA1DE993DA22F9AF8E02FC14699C +S224FE1AD40381126C03BB1C1469031FF6E16C03BB1214690340F6E16C037B14690381F6E108 +S224FE1AF46C033908DA0AE991DA09F9AF8E02FCF9A54BF9A47F0ADA13E9D1DA0AE9D2DA0972 +S224FE1B14F9AF8E02FC44604BD8BE7F0CDA0DE9D19A04D8BC6AF9AF8E02FC106803F9A18E56 +S224FE1B3402FC14E8030C14EA038C12E903F6EFEB03F6E4E80303E9B1475000FAFA14E8033B +S224FE1B540C03E9B1475000FAFA18E8034C1099BF0100FFFFDFDED6FA6D031B6D03DAFC0125 +S224FE1B74B8BB6E03DFDED6F86D030B6D03DAFC106A03186D034CF099BF0100FFFFDF2AE895 +S224FE1B9403DA04F9AFDF2BE803DAFC10E90303E9B1470A00FAFA14E8030803E9B1470A0007 +S21BFE1BB4FAFA14E8030C3AE8039AFC18E8034C1099BF0100FFFFDFC8 +S224FE1BCCEC008F68780898CB0398FE0DDA06F9AF8E16FCE311059A18470A009A134F050D58 +S224FE1BEC0092010BE99F9A06F9AF8E16FCC9BBA081C92BCD7E37FE534FC98B99EE1300DA45 +S20BFE1C0CEF92010B8E16FCA1 +S224FE1C14EC648F5E03D3DA9C83E3C493F310C8F9E0C93BC3CBD0C92B09380C462DDA0D4680 +S224FE1C342BDA094620DA0546239A3DC94B99B30CF2F10CC1A3888B462DDA11462BDA144625 +S224FE1C5423DA174620DA1AC99BBBCCD2F8D0C99BBBC5D2F9D0C99BBBBED2FAD0C99BBBB7AC +S224FE1C74D2FBD0C99BBBB034FD2033D2C82BC883B8AB3C02FED882DA64982E309A07F2F19C +S224FE1C940C34FD3009760C2A9A1FF2F10CC94B4199B3C8C1A3F8B209C3E3C883CBD29B6357 +S224FE1CB4D2F8D0A3EFD2BB5709380CC883B82B3C02FED802DA23C94B99B30CF2F10CC1A3B0 +S224FE1CD4888B4C0FF82091BBD2819F0A0081ABC1A883EBD2C91BBBD1C94BBB2309760C2A33 +S224FE1CF49A1FF2F10CC94B4199B3C8C1A3F8B209C3E3C883CBD29B07D2F8D0A3EFD2C91B93 +S224FE1D14C94BF3EFD409760C2E9A51F2F10C09760C2A9A1AF2F10C4199B3C8C1A3F8B2098B +S224FE1D34C3E3C883CBD49B34F3EFD4BB2F33D409380CC883B82B3C02FED802DA1F99B30CA4 +S224FE1D54F2F10CC1A3888B4C0FF82091BBD4819F0A0081ABC1A883EBD4BBD509760C6CDA11 +S224FE1D740709760C689A2299B30CF2F10CC1A301888B780CF0BF902E6C9A1C09760C6C9A33 +S224FE1D9416F9A2F2F10CBB0C09760C4C9A07F2F10CC9BB4FC9BB4192FB0CFE7EFE98EE64C9 +S224FE1DB4DA5198EE69DA4C98EE759A04CEEC0098EE6F9A04CEE40098EE789A04CEDC009856 +S224FE1DD4EE589A04CED40098EE659A04CE1D0198EE459A04CE150198EE669A04CE0D0198A6 +S224FE1DF4EE679A04CE380198EE479A04CE3001CE5601476C009A284F4199B3C8C1A3F8B41A +S224FE1E1409C3E3C883C3BC9B0DD2FCD0B8910099B0BCC3E3BC93F3BCCCC9BBCE2A01E99236 +S224FE1E349A494F4199B3C8C1A388910809C3E3C883C3A493C304A8A2D1A800AB21FA07A292 +S224FE1E54D1A400CA19D2FCD0A3DEAAA3DEA8A3DEA6A3EFA4B3DEA6B3DEA8B3DEAA93F3A4EF +S224FE1E74AC93F3A8B0C9BBCEDE004F4199B3C8C1A3F8B209C3E3C8898BC99EC3E3BC9B0DE3 +S224FE1E94D2FCD0B8910099B0BCC3E3BC99B3BCF920C3E3CCC9BBCEAF00476C009A164F4156 +S224FE1EB499B3C8C1A3F8B409C3E3C883C3CCC9BBCE9500E9929A1A4F4199B3C8C1A3889127 +S224FE1ED40809C3E3C883C3AC93C304B0C9BBBB774F4199B3C8C1A3F8B209C3E3C8898BC9B4 +S224FE1EF49EF920C3E3CCC9BBBB5D4F4199B3C8C1A388910809C3E3C893C304A083C39C7812 +S224FE1F14C499830488A1F088A1F14D0100893F0000C9A3DA30D2FCD0D23707BB280978C82D +S224FE1F3493C304A083C39C78C44F99830488A1F088A1F14D0100893F0000C9A3DA07D2FC9F +S224FE1F54D0D23707C9BB7EFE98EE64DA1A98EE69DA1598EE6FDA1098EE75DA0B98EE78DA37 +S224FE1F740698EE589A0EE3DFD49A06D2C0D0DA0434FD20B2D1D61E7EFE98EE64DA7198EE49 +S224FE1F9469DA6C98EE75DA6798EE789A04CE770198EE589A04CE6F0198EE6F9A04CECC0274 +S224FE1FB498EE659A04CEBC0398EE459A04CEB40398EE669A04CEAC0398EE679A04CEA403FF +S224FE1FD498EE479A04CE9C0398EE639A04CEC70598EE709A04CEE70598EE6E9A04CEA70696 +S224FE1FF498EE739A04CEF50699B30C8E7AFCE9929A7439D49A12A2D1AC009A0CA2D1B000E4 +S224FE20149A0633DACE020791BBD6E3FFD693F3ACBC93F3B0C099B3BC99F3C0B6530000000A +S224FE203400B6530A000000CDB436FE730630A09330DE99B3BC99F3C0B65300000000B65371 +S224FE20540A000000CDC835FE73C3E3B4C3F3B893F3B4AC93F3B8B0A2D1B4009AABA2D1B8F1 +S224FE2074009AA5BB3739D49A0A78CC9A0633DACE97067FD6E3FFD6B6530A00000099B3CCD3 +S224FE2094CDAA35FE530630A8D330DE99B3CCB8D10A01A9CFC3E3CCC9E39AD8051E0099BA43 +S224FE20B4D631DA93F6D4DABA1039D6E3FFD6A89334DE30E3F1DABBECD2C4D09A0BD2C1D020 +S224FE20D49A06D2C3D0DA07E3F1DAF3E1D8D2C4D0DA09A2D3D634DE2DBB1DD2C1D0DA09A216 +S224FE20F4D3D634DE2BBB10D2C3D0DA08A2D3D634DE205AE3F1D639D6F920D3DADE89A2C3AF +S224FE2114E3A4CE0406E992DA04CEB40039D49A12A2D1AC009A0CA2D1B0009A0633DACEE86A +S224FE21340576FE5898BF4161A2D1AC009A0AA2D1B0009A04D2F2D030DC99B3AC99F3B0B6B0 +S224FE21545300000000B65310000000CDB436FE73A2D3D630DE39D6F920D3DADEC1A27EDC0B +S224FE2174902E0A8A12C2D3D698BBDE0E0AC8B8A2D3D630DEBB0BD3DADE89A2C1A3802E3099 +S224FE2194E3FFD6C2FBDC99B3AC99F3B0B65300000000B65310000000CDC835FE73C3E3BCE4 +S224FE21B4C3F3C093F3BCAC93F3C0B038DCA2D1BC009A85A2D1C000DA04CE7DFFBB5C39D4CD +S224FE21D49A0A78CC9A0633DACE3E0576FE5898BF416178CC9A04D2F2D0983BCC883F0FA2F0 +S224FE21F4D3D6C2CBDE7FD6F960D3DADEC1B2902E0A8A14C2D3D6983BDE883E0AC828A2D351 +S224FE2214D6C2CBDEBB0BD3DADE89E2C1B3802E30E3FFD682E1CCFC9AC1051E0099BAD6319D +S224FE2234DAD2C2D0DA07E3F2DAF3E2D893F6D4DABA1039D6E3FFD6A89334DE30E3F1DABB5E +S224FE2254ECD2C2D0DA1339D6E3FFD6A89392FBFEDEA2D3D634DE305AE3F1D639D6F920D333 +S224FE2274DADE89A2C3E3A4CE9F04E992DA04CE840039D49A12A2D1AC009A0CA2D1B0009AC3 +S224FE22940633DACE8304A2D1AC009A0AA2D1B0009A04D2F2D091BBD6E3FFD693F3ACB49354 +S224FE22B4F3B0B899B3B499F3B8B65300000000B65308000000CDB436FE730630A09330DEAF +S224FE22D499B3B499F3B8B65300000000B65308000000CDC835FE73C3E3BCC3F3C093F3BC34 +S224FE22F4AC93F3C0B0A2D1BC009AABA2D1C0009AA5BB2D39D49A0A78CC9A0633DACE0904DA +S224FE231478CC9A04D2F2D039D6E3FFD67ECC88FF0788EE30A893C2FBDE82E1CCFD9AE90561 +S224FE23341E0099BAD631DAD2C2D0DA04E3F1DA93F6D4DABA1039D6E3FFD6A89334DE30E31C +S224FE2354F1DABBECD2C2D0DA08A2D3D634DE305AE3F1D639D6F920D3DADE89A2C3E3A4CE27 +S224FE2374A703D2FFD078C499830488A1F088A1FC4DFF07893F0000A8B1FF0700009A44BC4D +S224FE23943102FED2C4D09A028C888BDA2189A3C1A3F8B1C9E301888B92C108E99F9A07B824 +S224FE23B491008E7AFC09E3F114C1B3BBDD76FE67DA0976FE47DA04CE4F030982D1C808CE03 +S224FE23D4470339D49A26C3DBDCA2C1A0A2C19CB65300000000B65300000000CD4A35FEB641 +S224FE23F40310E8909A0333DA997BDCE3DFD493CFD4060076FE669A04CEE500C3DBDCA2C1C7 +S224FE2414A0A2C19CB65300000000B65300000000CD8831FEB60310E890DA04CEBF00A2C161 +S224FE2434A0A2C19CB6530000F03FB65300000000CDE831FEB60310E8909A51A2C1A0A2C12F +S224FE24549CB6530000F03FB65300000000CDE831FEB60310E8909A2DB65300002440B65326 +S224FE247400000000A2C1A0A2C19CCDF232FEB60310C3DBA2C3CBA0C3FB9E319C39DCE9B145 +S224FE249431DCBBB8D2FDD039DCBB4FA2C1A0A2C19CB65300002440B65300000000CD6E3202 +S224FE24B4FEB60310E8909A2DB6539999B93FB6539A999999A2C1A0A2C19CCDF232FEB603B4 +S224FE24D410C3DBA2C3CBA0C3FB9E319C39DCE9B131DCBBB8D2F5D039DC31DC997BDC76FEF2 +S224FE24F467DA0676FE479A7ED2FED039D493CFD40100D2C5D0DA05E954AB0BD2C5D09A1B72 +S224FE25149976D4FA1676FE679A0534FE657A76FE4792CFFE45E3FFD4BB4734FE660978C82E +S224FE253493C304A083C39C78C499830488A1F088A1F14D0100893F0000C9A3DA04D23707A9 +S224FE2554D2C5D09A0CC99BE971C3DAD4C96BBB11D2C5D0DA0CC99BA96FE971C3DAD4C96B60 +S224FE25740982D1C808C3CED0A2C114C3CED2C2CEFDC94EC2CEFEC3CED4A2C1A0A2C19CA2A2 +S224FE2594C108CFD902B6031CE9909A04CE7A01B891008E7AFC34FD204199B3C8C1A3F8B27B +S224FE25B409C3E3C8888BA2D3D630DEF3E1DA39D6F920D3DADE89A2C3E3A4CE4C0134FD20DF +S224FE25D478C84183C3CC33CE037ECC88FF0FA2D3D6C2FBDE7FD6F960D3DADEC1B2902E0A13 +S224FE25F48A0DD3DADE89E2C1B3802E37BB0BD3DADE89E2C1B3802E30E3FFD682E1CCFCE904 +S224FE2614B1E994FAC539D6E3FFD6A89334DE3A4199B3C8C1A3F8B409C3E3C883C3CC99B32E +S224FE2634CCC98BF9204DFF00893F0000C3E3CC037ECC88FF0FA2D3D6C2FBDE7FD6F960D37A +S224FE2654DADEC1B2902E0A8A0DD3DADE89E2C1B3802E37BB0BD3DADE89E2C1B3802E30E399 +S224FE2674FFD682E1CCFCE9B1E992FAC5051E0099BAD631DA39D6E9B1F920D3DADE89A2C3DD +S224FE2694E3A4CE8400476C009A12093914C99E0978C809C12309F2F4C8BB39E9929A2A0905 +S224FE26B43914C99E993E008099FF0000FFFFC97BC3E3B4C3F3B878C84181839133B4933393 +S224FE26D4B80409F2F4C8BB0C0978C849913B1409F2F4C899B30CF8B18E7AFC34FD20419950 +S224FE26F4B3C8C1A3F8B409C3E3C883C3A433DA93F6D4DADA1339DAC99EC1A391B2A4888BCE +S224FE2714DA06E3F1DABBE938D09B04CE480193F6D2DAFA04CE1501D2C0D0DA4A33D693F683 +S224FE2734DAD6BA1E99B3A4F2F1A4C1A301888B92C108E99F9A07B891008E7AFCE3F1D6BBD5 +S224FE2754DE33D639D299BADAC3E6D6FA04CED60005200092C108E99F9A07B891008E7AFC2C +S224FE2774E3F1D6BBDF39D8DA7576FD309A7033D693F6D8D6BA1E99B3A4F2F1A4C1A3018875 +S224FE27948B92C108E99F9A07B891008E7AFCE3F1D6BBDE33D639D299BADAC3E6D6BA1605EE +S224FE27B4300092C108E99F9A07B891008E7AFCE3F1D6BBE233D639DA99BAD8C3E6D6BA65D5 +S224FE27D499B3A4F2F1A4C1A301888B92C108E99F9A07B891008E7AFCE3F1D6BBDA33D639A1 +S224FE27F4D299BADAC3E6D6BA170198BBFD92C108E99F9A07B891008E7AFCE3F1D6BBE133D8 +S224FE2814D693F6DAD6BA1E99B3A4F2F1A4C1A301888B92C108E99F9A07B891008E7AFCE317 +S224FE2834F1D6BBDE93FBD2DABB2633D693F6DAD6BA1E99B3A4F2F1A4C1A301888B92C108A2 +S224FE2854E99F9A07B891008E7AFCE3F1D6BBDE0993F8DA1499B30CF8B18E7AFCEC208F780E +S224FE28740331EC31EED3DAE0A081D3DA0CA081CFA8047377E2FF079A06F9A18E1EFC03C187 +S224FE2894ABE9B1942FD90930473501FAF303C1ABE9B1942F0E0B30473501FAF3D3DAE0A0F1 +S224FE28B481B65380080000CFE00573D3DAE0A081CF970453C3DB12C3CB10C3FB0E310CF115 +S224FE28D4A03914E9B1C1A6BA29B65300002440B65300000000A2C110A2C10CCDF232FEB613 +S224FE28F40310C3DB12C3CB10C3FB0E310CE0B1BBD1D3DAE0A081D3DA0CA081CF1C0473B29E +S224FE2914D1F040D3DAF0A081AF1027D3DAF4A081B65380080000CF4707B6030EE990DA2C45 +S224FE2934F9E091BBF2E3F1F239F4F920B0130A00C98B073000C42BD90939F4F920B0130A21 +S224FE29540031F4E9F1E9D4FADABBB9D3DAE0A081B65380080000CF31057335F0400033F617 +S224FE2974D3DAF0A081AF1027D3DAF4A081B65380080000CFEA06B6030EE990DA5239F69A55 +S224FE29941D39F4F920B0130A00E9158A04D2F92339F4F920B0130A0031F4F9A34BF9A4F9C1 +S224FE29B4E0C9E6BABC91BBF6E3F1F6C96B39F4F920B0130A00C98B073000C42B0E0B39F4E8 +S224FE29D4F920B0130A0031F4E9F1C99BBBD4D2C123DA27037114BA1BC1AB942E0E0B399ADA +S224FE29F40C942F0E0B30E0B189ABBBE9E4310E0B89AB71149A04D2FA23D2C622DA29D2C27A +S224FE2A14229A2433EE93F6F6EEAB1091BBEE942E0E0B309A06E3F1EEBBEC39EEE9BF71F6F2 +S224FE2A349A0533EE33F6391499BAEEC3E8ECD2C223DA66761665DA067616459A1E56D909E8 +S224FE2A54399A1814D90931D2C522DA0AF3DF184AD2F522BB44E3F118BB3F0371F2BA1BC1B2 +S224FE2A74AB942ED909399A0C942FD90930E0B189ABBBE9E431D90989AB71F29A11E990DA47 +S224FE2A940DA2D3F214D90931E3F1F2BB0C39F29A0814D90931F3E1F239F2DA17E3FFF23914 +S224FE2AB4F2DB1091BBF2942ED909309A06E3FFF2BBEE39F2E9B1C3E8ECD2C4229A0BD2C1A7 +S224FE2AD4229A06D2C322DA07E3F1ECD2F823D2C422DA0DE3F1F2A2D3F214D9092DBB21D23B +S224FE2AF4C122DA0DE3F1F2A2D3F214D9092BBB10D2C322DA0BE3F1F2A2D3F214D90920E31A +S224FE2B14D014EB0FD2C622DA0A39F69A06D2C222DA0EE3D014AB06D2C222DA04E3F1EC7673 +S224FE2B341665DA067616459A6EF3E4F87FF8E3FFF83918C96BC99EB0530A00C98B0630A8FF +S224FE2B54D330FAC99BC99EB0530A0031184F9ADDE3D3F89A07F3E2F834FD30D2C522DA0D5D +S224FE2B7439F8E3FFF8A89334FA2DBB0B39F8E3FFF8A89334FA2B7616659A09A2D3F834FA09 +S224FE2B9465BB0C7616459A07A2D3F834FA45F9A599BAF8C3E8EC93F61CECFA04CE3A01D2B6 +S224FE2BB4C022DA5CC3CE22C3CE14C3CEF8C3CEEEC3CEF6C3CEF2D3DAFAA081B6530E0B0092 +S224FE2BD400B653D9090000C2CE16A2C108CFDC01B6031EE990DA06F9A18E1EFC33F6391C46 +S224FE2BF499BAECC3E6F6FA04CEE80005200092C108E99F9A06F9A18E1EFCE3F1F6BBE0D20B +S224FE2C14C023DA75761A309A7091BBF2E3FFF201A88BD90992C108E99F9A06F9A18E1EFCB4 +S224FE2C3433F6391C99BAECC3E6F6BA1505300092C108E99F9A06F9A18E1EFCE3F1F6BBE3F0 +S224FE2C54C3CE22C3CE14C3CEF8C3CEEEC3CEF6C3CEF2D3DAFAA081B6530E0B0000B653D927 +S224FE2C74090000C2CE16A2C108CF4001B6031EE990DA5FF9A18E1EFC33F6391C99BAECC3C8 +S224FE2C94E6F6BA160198BB1A92C108E99F9A06F9A18E1EFCE3F1F6BBE2C3CE22C3CE14C3BC +S224FE2CB4CEF8C3CEEEC3CEF6C3CEF2D3DAFAA081B6530E0B0000B653D9090000C2CE16A291 +S224FE2CD4C108CFE700B6031EE990DA06F9A18E1EFC93FB1CECBB39C3CE22C3CE14C3CEF881 +S224FE2CF4C3CEEEC3CEF6C3CEF2D3DAFAA081B6530E0B0000B653D9090000C2CE16A2C1084E +S224FE2D14CFA900B6031EE990DA06F9A18E1EFC0993F8EC1E038E1EFCEC008F2C780C7908BD +S224FE2D34F022D24707D9B8C22B01999B06E98B4DFF07C32B029993044DFFFF893F0F00C3C5 +S224FE2D5423048313088E34FCEC088F087808D20001D2D7FF08998B02C99E99F3FC88A110FD +S224FE2D7488A1044D0000893FF07F89FFFFFF897F0F80C9E5C945C3F3FC99830499F3FC4D0B +S224FE2D94FFFF893F0F0089FF0000897FF0FFC9E5C945C3F3FC93C308F8D3DAF8994B0699DC +S224FE2DB40B0499CB02898B8E10FCEC008F7C391A78087F1CE9909A0709760E30DA22E99028 +S224FE2DD4DB3FC96BC99EC1E391F20E01889B9081E99F9A06F9A18E3EFCE97FC99BBBE0D2FA +S224FE2DF4C225DA0F0531009081E99F9A14F9A18E3EFC0530009081E99F9A06F9A18E3EFC3D +S224FE2E14E3D022EB13D2C624DA0EE9D09A0AD2C2249A05038E3EFCE3D022AB06D2C224DA8D +S224FE2E340F052E009081E99F9A06F9A18E3EFCE3D022EB253922E9BF711EFA1D4FC99EC199 +S224FE2E54E391F21201889B9081E99F9A06F9A18E3EFCE9FFC9BBBBE1760C65DA06760C458E +S224FE2E749A22E3D420AB1D3920C99EC1E391F21601889B9081E99F9A06F9A18E3EFCE3F150 +S224FE2E9420BBE0038E3EFCDEEC0E8F7C780C034FE9B1C9DEC1F381F291F208F1604744000D +S224FE2EB4FAEE998B029A0E91C3049A0991C3089A048E3EFC932E02FF03BA048E3EFC7908BC +S224FE2ED4F3617E9983044DF0FF893F0F0088A1FCC36B80998B044D0F00E987E983C36B82F3 +S224FE2EF49983084D0000893FF0FF88A1EC999582C36B829983084DF0FF893F0F0088A1FCC2 +S224FE2F14C36B84998B084D0F00E987E983C36B86998B020FFF03C99EB053100031F6DA50CE +S224FE2F34034F99B8F6474400BA27C9BB99F8F6C9DEC9F299F208C1EBC99E83E3FAC1A3811D +S224FE2F54A291B20889BBC1F3811BE9B178FABBD299EE4400BA13C9BBC9DEC1F381F291F2D3 +S224FE2F7408F160E9B14FBBE939F6E983C32A02998B020FFF0331F6932F02FF03E990DA4013 +S224FE2F9405100099BAF631FA987BFAF9AFA9BE31F233FE054300C96BC99EC9A299B208C1BF +S224FE2FB4E389DB99FDF2C9BB987BFAA86FA9BE987BF6A17E9175FE31FEE97FC99B9BD87909 +S224FE2FD408999B86E98FE98B31F233F4999B84F92088A104C3E5F2C3C5F4999B82F9208877 +S224FE2FF4A114C3E5F2C3C5F4999B82E98FE98B31F633F8999B80F92088A104C3E5F6C3C5DB +S224FE3014F89333F6049333F20891C3049A0C91C3089A07F320028E3EFCE33F029983044DB8 +S224FE30340000893F0800C3E3F699830888A1F088A1F14D0100893F0000C9A3DA05B891010B +S224FE30545AB89100C3E3F282210801822104019335F2049335F40679F6DABF8E3EFCEC147A +S224FE30748F7C093912B2F1EC0809000093F308F033F4F9E0C9E6BA1EC96B99B3ECF2F2ECF9 +S224FE3094C1A3F12099B3F0F2F2F0C1A383C5F4E9F1C99BBBE07FF49A05038E3EFC93F308B0 +S224FE30B4F033F671F6EB1299F3F0F2F2F0C1B389CB9A06E3F1F6BBEC99BAF631F8E9833144 +S224FE30D4FA33FC35F4008039F64FC99EC9A299B208C3E3F04193FBF0FEF9A1C9F8F96088D5 +S224FE30F4F108090000C3F3ECF2FEECF9E0E9D0DA0509C3E5ECE3FFFADB39E9889A07050024 +S224FE311480F2F2EC7FF49A0D35F40080F2F2F04193FBF0FE7FFE99FDF4D9F2E3C8F4E3C0E0 +S224FE3134FCC3F5FC93F6FC10CBC293FA10FCF9E1BBBC39F6C9A8F92088B108090000C3E313 +S224FE3154EC93F308F00371F8BA1B99F3ECF2F2ECC1AB99B3F0F2F2F0C1E389ABC1B3814BD1 +S217FE3174E9B1BBE30993FBF8120993FBFC0CF9A18E3EFC6B +S224FE3188EC00C9CE39164DF07F9A093116311431123110390E4DF07F9A09310E310C310A86 +S224FE31A8310839107F08C9E69A3339127F0AC9E69A2B39147F0CC9E69A2339164DFF7F7F5A +S224FE31C80E89FFFF7FC9E69A1439167F0ED80701D86F8A060DF07F9A04F9A14A03B9EFFC3B +S224FE31E8EC00C9CE39164DF07F9A093116311431123110390E4DF07F9A09310E310C310A26 +S224FE3208310839167F0ED80701D86F8A1A0DF07F9A0C99FEF07F9A06F9A1CE4800D8070369 +S224FE3228D89000CE3F0039167F0E4DFF7F89FFFF7FC9E6DA04CE200039147F0CC9E6DA0481 +S224FE3248CE150039127F0AC9E6DA04CE0A0039107F08C9E6DA0C7F1601D86F03B9AED8982B +S20AFE32684BF9A1B9EFFCD4 +S224FE326EEC00C9CE39164DF07F9A093116311431123110390E4DF07F9A09310E310C310A9F +S224FE328E3108390E7F16D80701D86F8A190DF07F9A0B99FEF07F9A0503CE4700D84703D866 +S224FE32AE9008CE3E00390E7F164DFF7F89FFFF7FC9E6DA04CE2000390C7F14C9E6DA04CEFE +S224FE32CE1500390A7F12C9E6DA04CE0A0039087F10C9E6DA0C7F0E01D86F03B9AED8984A31 +S208FE32EE03B9EFFC32 +S224FE32F2EC2C93F314E893F310E493F30CF093F308ECD2C7EBD9B8D2C7F3D9F8C8B97FEA4D +S224FE3312E9CB89FFFF0730FE39F2E98B4DFF0799EEFF079A04CE9C0147FF079A04CE940152 +S224FE3332E9D09A04CEE101E9909A04CEDA01C9E8C3FBFC3FFCFF037DEA0F0075EA10007DA7 +S224FE3352F20F0075F210008FFC7FE499F4ECC3FBD4F9E0F1A039E699B4ECC96801C184B9F5 +S224FE3372DE39E499B4EEC96801C184B9DEC3DBD6F96039E899B4ECC1A801C9C4B95E39E6A0 +S224FE339299B4EEC1A801C9C4B95E39E499B4F0C1A801C9C4B95E83EBD8F1A039EA99B4EC34 +S224FE33B2C9E801C944B19E39E899B4EEC9E801C944B19E39E699B4F0C9E801C944B19E39DD +S224FE33D2E499B4F2C9E801C944B19EC3FBDAF9E039EA99B4EEC96801C184B9DE39E899B45C +S224FE33F2F0C96801C184B9DE39E699B4F2C96801C184B9DEC3DBDCF96039EA99B4F0C1A8B2 +S224FE341201C9C4B95E39E899B4F2C1A801C9C4B95E83EBDE39EA99B4F2C9E801C944C3FB59 +S224FE3432E0C3DBE2997BE0993BDE7FDC39DAE948A92EA9EEA9AEE948A92EA9EEA9AEE948E6 +S224FE3452A92EA9EEA9AE997EC0FFDA0CE948A92EA9EEA9AEE3F1FCE9B1B9DEB91EB95E9958 +S224FE34727EC0FFDA0CE948A92EA9EEA9AEE3F1FCE948A92EA9EEA9AEC3DBFAC3CBF8C3FB7C +S224FE3492F631F48E3F38FEE3D0FCEB7977FCFF07BA567FFCE9C389FFF07F7DFA0F80C3F581 +S224FE34B2FAD880D2D7FB02997BFA993BF87FF639F4FC7DEA0F007DF20F0099EEFF079A0D5F +S224FE34D2A2D1E8009A60A2D1E4009A5A47FF079A0DA2D1F0009A4FA2D1EC009A49E9D0DA22 +S224FE34F245E990DA4138FEB2D1F400B2D1F80075FAF07FD880D2D7FB02997BFA993BF87F81 +S224FE3512F639F4FC30FEB2D1F400B2D1F8007DFA0F8038FED880D2D7FB02997BFA993BF843 +S21CFE35327FF639F4FCB2D1F4FFB2D1F8FF997BFA993BF87FF639F4FC78 +S224FE354AEC00C9CE39164DF07F9A093116311431123110390E4DF07F9A09310E310C310AC0 +S224FE356A310839107F08C9E69A3239127F0AC9E69A2A39147F0CC9E69A2239164DFF7F7F97 +S224FE358A0E89FFFF7FC9E69A1339167F0ED80701D86F8A060DF07F9A03034BF9A1B9EFFC76 +S222FE35AA8F508FA0B9CF0CB94F0E01A9CF0189CFB9CF00B94F02C9E0C9B3538E0ADFF5 +S224FE35C8EC108F04F1E093FB0EF8DA7993FB0CFA93FB0AFC93FB08FEB2D1F000B2D1F400F3 +S224FE35E8D2C7F9CA169976F88B11A1CEE3C0FEB3EEFCB3EEFAB3EEF89BEC99BAFE01993622 +S224FE3608FC0199F6FA019976F8CA1299B8FE019934FC0199F4FA019974F8D3E8B3EEF6B389 +S224FE3628EEF4B3EEF2B3EEF0E3C8F8A3EEFAA3EEFCA3EEFEB1CE9BC339F6993BF47FF29951 +S224FE36487BF0BB6693FB0CF8DA1093FB0AFA93FB08FC33FE9D1000BB8093FB0AF8DA0F930E +S224FE3668FB08FA33FC33FE9D2000CE6DFF31F6C3CBF4C3FBF2C3DBF0F960F9E0F92039F090 +S224FE36889A0F39F29A1239F49A1439F69A17BB1A83CE08C96B39F283CE084F39F483CE0829 +S210FE36A8C1EB39F683CE08893B8E20FC71 +S224FE36B4EC088F04F1E093FB0EF8DA5B93FB0CFA93FB0AFC93FB08FED2C7F9CA169976F89D +S224FE36D48B11A1CEE3C0FEB3EEFCB3EEFAB3EEF89BEC99BAFE019936FC0199F6FA01997618 +S224FE36F4F8CA1299B8FE019934FC0199F4FA019974F8D3E8E3C8F8A3EEFAA3EEFCA3EEFE33 +S224FE3714B1CE9BCFBB6193FB0CF8DA1093FB0AFA93FB08FC33FE9D1000BB9E93FB0AF8DA4C +S224FE37340E93FB08FAB2D1FC009D2000BB8B31FEC3CBFCC3FBFAC3DBF8B8D100F92039F878 +S224FE37549A0F39FA9A1039FC9A1139FE9A12BB1783CE0839FA83CE0839FC83CE0839FE830A +S20DFE3774CE08C98BF9208E20FC5C +S224FE377EEC028F087808988B030C0EDA06F9AF8E10FC998B01DA0AF3200101888B8E10FCF6 +S224FE379EE31105DA04CE9C0092010731FE470D00DA16470A00DA11470800DA24471A00DAF6 +S224FE37BE39E99FDA50BB57A2110B00DA0D050D0092010B050A0092010B050A008E10FCA29E +S224FE37DE110B00DAC405080092010B05200092010B05080092010BBBB0A2110B00DA0D05E0 +S224FE37FE0D0092010B050A0092010B822F0304F9AF8E10FC822F0308F9AF8E10FCA2110B9A +S224FE381E00DA1B77FE2000BA10055E0092010B39FE07400092010B6A39FE92010B39FE8E12 +S218FE383E10FC92010731FEE99F9A05822F030839FE8E10FCEA +S224FE385202B0F100040000996F0000B80302B0F100040000996F0000B80302B0F1120400C6 +S224FE387200996F7605B80302B0F189090000996FBA02B80302B0F100000100996F0000B8DD +S224FE38920302B0F100000100996F0000B80302B0F100000001996F0000B80302B0F100009F +S224FE38B20001996F0000B80302B0F100000001996F0000B80302B0F100000001996F00001C +S224FE38D2B80302B0F100000001996F0000B80302B0F100000001996F0000B80302B0F100A7 +S224FE38F2000001996F0000B80302B0F100000001996F0000B803B0B13C03FE00B0F1000445 +S224FE39120000996F0000B083B0B13C03FE00B0F100040000996F0000B083B0B13C03FE003B +S224FE3932B0F100040000996F1200B083B0B14E03FE00B0F188090000996F0100B083B0B101 +S224FE395200000001B0F100000001996F0000B083B0B100000001B0F100000001996F000068 +S224FE3972B083B0B100000001B0F100000001996F0000B083B0B100000001B0F100000001BC +S224FE3992996F0000B083B0B100000001B0F100000001996F0000B083B0B100000001B0F195 +S224FE39B200000001996F0000B083B0B100000001B0F100000001996F0000B083B0B1000016 +S224FE39D20001B0F100000001996F0000B083B0B14F03FE00B0F100000100996F0000B08366 +S217FE39F2B0B14F03FE00B0F100000100996F0000B083DF52 +S224FE3A06D52F431700F6E20A00120400120A00D5AA8000D529431400D52A000400D1ECD542 +S224FE3A262A000400D3ECD52800FDFFCD5238FED529431400CD8019FED52B000000CD921812 +S211FE3A46FECF04009EDEF9A19AFDDFDE9E97 +S224FFFD007814FE007614FE007614FE007614FE007614FE007614FE007614FE007614FE009D +S224FFFD207A14FE007C14FE007E14FE008014FE008214FE008414FE008614FE008814FE0027 +S224FFFD408A14FE008C14FE008E14FE007614FE009014FE009214FE009414FE00EA09FE0060 +S224FFFD609614FE009814FE009A14FE009C14FE009E14FE00A014FE00A214FE00A414FE0007 +S224FFFD80A614FE00A814FE00AA14FE00AC14FE00AE14FE00B014FE00B214FE00B414FE0067 +S224FFFDA0B614FE00B814FE00BA14FE00BC14FE00BE14FE00C014FE00C214FE00C414FE00C7 +S224FFFDC0C614FE007614FE007614FE007614FE007614FE007614FE007614FE007614FE008F +S224FFFDE07614FE007614FE007614FE007614FE007614FE007614FE007614FE007614FE00BF +S224FFFFDC7614FE007614FE007614FE007614FE007614FE007614FE007614FE007614FE00C1 +S208FFFFFC063AFE00BF +S804000000FB diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.sni b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.sni new file mode 100644 index 0000000000000000000000000000000000000000..ed69ca689b4d034ce3e13fc95aacd9117244e484 GIT binary patch literal 15968 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

{BMmVXBAt)Ub?w9}BN(nICL9wJr0P zW$d#lIngo=)hF5h2E*+$CAq5gX=Ht>S;jtPk{!lAWs;j%AN!Q?F|BPm7>XqAPk0;4 z^tDX85XL@tlKWd9``k$$XqoG6l*4okVY*mmxQ(*Uo#dM=)7|=D%#f*Jj}WF$2xFf_ z$rv+dqB5+Hy~D%plPK9?28Q?yvdmapj(rj(JB)4BlkGhpev6HoVx#OAN3#7U3ZG?t z9OhQbXg5zuxcvr6o@L9q&H6aZ+z`e-3zF?Oh*@6{Prc+|5L{A8K?Ec1(H7KbqQxswuYeI8UFA7h^~DGAocez~OBXG-`o8|5(exsy`cMy;?u zbuIIF2=inJW1l-I_URCApF1gyY&rJ1lVYD2;r6-XW9&1<$Ji%GN;6x|HoJHGya>0? zloW?~Cd9`+Q&ODY=}zm@(wX>7`XK*%@Lc>v4xWoR%kgs2Oy(74PxTfB43;axSh?vG z$%M;tXxxhM6lVaN$&Dgqa-+aOax*XjLFB;E9u))Y2)S7dkCEAqqRnhav7TE|mdh-M z7U!8QKm@@Fp4*DeEJul+ImKoTv?N&r4Wr^j35-#3w;QdH9Tg{vV2p}$qZo{eD=BSM zT*)9A6(<5=jEb9wQE~HGEsTnrk1&ji6Ll~~#oYmj5o-%VM#U}opN@)K7&0nuA!>tt zh{_nF;^v zin|xbiV;!wnPbIGiBo`4Z}$z1w4A6M7DqzZn`%Q5JyY_)2hSA-R;xHCX z#MBr@w;07?Vi^%rW2D*xs-T0q0XZD5!1N%`F$S$YXdE9Q#GtiD3>0}Z2CY4+aY$NT zg`j2h!dSIs#!Gb0H85=yAnGncW{g#P%2-$VjWffLwN)HvwweWCpxSC*eQI(5kWLtd zF>7m0@FqH9blN6U^kzbgPupy)TVip7oYl}Uv~7$3YG`%CqG^^vV)byUw#MQtIRnEm ztZggKRUI#6Y$y~1*|wW~h|U-T*`77~c#c+#Kzq)23hJYtqA|w!ww=aH1jHEM_M$1{ zB?e)9+e^kOy5YtcPl^IdmQm1Od%w9)Pz%>|U=@WCe!B|Vqx#jVba<|1W zOU}7<(qG8kjsqPr^UA3J8Fzb(cjOg)!%xKB0fQdtdD=HR>w1s-G=~qL;Q`)Yrf|Zq zT_nOCohh8C$G!mvBD&yCX7D4tL>1f_S{mOa=makj1b1;JZc;I~87kQoLnU$EL;&2) z87E00cUMG;{I@&CNy0^xzdf9}n!3XU8dx(?Q%^Hd6Ygmd^!CD3Oo$LI?~P_0C1!#U zC2wzMX)_KLyiwBa{CR!JcOWKS!nR0s2VuaaIY|THJ`nCA%^i%9mT>u*r4PX{OXD(FOB4m}P_vpD z4psEG!!WfHZk3@ryAme$`W+C~KUl^HXM&|Lv?RkI;l!Rqd3%!?PzguT-Hr@g&}S#*`$mJ!MA7!YM-|7a`ekp+UP+c5|c)$Ldi z;p!p6+i@UNc$aO03z1Zbv%m8 zk!ykH7o#V_7O&AFxSa&Tx18C{Ksu6hA`WvBtC7sO$uJ~qTndRPAW|UBH7l1*1xhu$ zoPszJW~b3D7lt&%O@(J!5_urXGA^AcA1EE>JP_qbOaoEQ6vQmjWYisn$Ss;Le{oys zP|yOnRzNI;(-j$82%;hg3bU^uQ3T=&B`T4a4x*Blj$6L~G4NuESJGSz^OdYy6{1^! zsvw%>S0yn6L{%lOA~6$$E^Ahd6MYL@SXOn~X2DjSWz`_M6{v=W)+8|-L`|A&5#0t< z3+CA%t|l=D#MLy{CYlRW+f;jwJ-c;ixE+Q%h?@(~x+L5n>Ke~kklx&iqGh<6T##$% zQ38)^Sn{<*^MI~J0X)X~B<6#tZwi1f#%ICMkcK;8Xvnzhh!y}{N7RUDAy6X|bO(YK zh%noEQ7s6&=qWIwY<_eVK$2Y$PAX84?S8W~nJtBi9q~Lo7b>!)Fp*27y&EF2r3|qP zEbluyS~I5?)TP}(UvOwMrx&DwJwSi#FRpce46Owo3!el_YpDd};%Q$52y3|@8m9~U zCQw$(_0al({@!0y>;7KU=I$SZB(-jwNl4ByqMWbzJ#&k?&X~l{Oi1g8fc~>oIW1?y z;zVGVLd3M3=t`97k)>&AF$vW;s7%YmT}DeAhx{MyNte;mCaIjge5qR6@+xAld|54R zW&9XfeznrIwAJwAqPgB>wX|jGsf4}3<+ZeB8mOYZafp_-Ok>=()Y6J&VD{9`1=(3e z+4vP#fxx64*WSgcU!v;BB~(W)anv;_H(;{UaJ;X$d&TC~ zq4VccZheZgDL-3WZ?p(i(Z+)P9LuHgRIbrexrV25jqg-`joD!JRIZ~67#DlJPaNr9 zkEWZKdBf$;;|6<1a2_}MuEIu3V==XD0SZX>HZ;<5hOwC1(|-C#_tRGP`Z1<^4N^b4 zG5pai!S<(f8oWI2A07Cs-AZ*iTd~fTv$k3)6^p5L9YcL*%TXexQlgeRhkxce*4qj1 zaNr`shxzAG`QsQKBYa%`INVCYHS)*d))PMO{CSC6FZo?WvpQM>urG6VAY8;9dJ%W< zBJOZ5V(NZO5u_IpLo*ukBEI0e5-<2&iCve!j=QWIuH$aM-@|S^3Is{BK_T-tSxpQ98_qewKZwPT(Se^%Z-zoOU3MZCct$r=HY6rg7f5w43D*4D!H0?SfUTP%@`Y;j~29 z*I}*TVOH?4uY&oQjL0Wobz?+JD^~JYhl1c|vB=XjQmdA@cgPzN8S(V8WLJ;od;_io!hOd_ZBLfrkR& zYYLI*V#!Ap-frMAg(U`_2!y8;-f66FC`7J{MV$$RO!4smp?RY9ZG{kB5;D0*E7VSe z=M`=+kcmE86@I92m$7~n2tQT0+gLwS2qhCs{z~CK1HV`Js(}|3zGmQ$3X#8O>@NzB z8~AG={5=r#ckDIsQ7xtMT)yAp02pJ;@OIkQO~ogel($g*XDZePH+8OJCf-=SX(up$ND#h12x}{wxtf{6c!4OxC zU!?v_k#T<(uTlJf+O;)JeMGUgpQ(>2eo6f;-V=l=TVVOi)n6OURAlMpd>mB!O2vnQ z@Zlh=&1&i@^?zOMYZYrdo4Q`HHna}bme#@A)TTbC{@S>v?o@nM%YQ+!Hm|7`YfF~; zvf6)E|NV-!@k%|Q_z$%oR;;aAs>Oe+{dKkfqxiUDZSGPPyTStPu5iVsb;L+~#o8Xa z;(~Cz;tx#ut^~!}p1G2OaH`@T)jv(~FN(`5{!MXu5H25tD=Ge4{VN-sR#tJ9AY4^( zd9`1qxPszpLAXW`zFKh=^{=h?D#i7Ja3jUgJMn&XHCC+cn=A>3`#Y_X+FPpKVu~#M z?fQI4YpMS2)NXNm#ckByL2*09*9YN_LAaCR9_p{pr?g&*yQ$q`eIBLtR=Ylb96Uz- z2dG`!?=M7*1=0OewNxFQmpN@i_!(wXQA4c zD}Gq<6NCySXTZS_twDtdKu5H{^|8-ze#6f{a2%k3tWu~GqKMO%&sSRW=k4a z)C7sLY*K;|6eQVYlb9__MApWU6W|=+TXQ~70%Qc#0|1I1AQgH5(-X}g%++O9MS_B0 zq4APDJwyb|(<5jR%YcYrk%9LUViw%{k%3ywZ6x~_oATmNUOAMvgfx==OW^V#w~_RJ z(7059OB`GtCXGpCABKx0sgWyx1ly9KM&4U9)K|d065J(2jr{jAU&UF<<17W)ZfCJ0 zq`H~4uF5IkVM40=Nff%0+sJRPG||ArL9m*MF}c|@FyZ~UvFK6@SP(4iG7Ex*m9ik%)xisb)d^e>Ebc1w)%oihkg?x@ zI}m4OBaams`;9o(x>%cu5V`g(25yZXpFJgOrjx>FQhs2B?FM2(1>Jb@UAp$}INV9x zBQ?JbWh09%nR=w=pT#+Sjs+th@62h9Wc&_u`Rp=V&(j4-`RC0Q*+tmcOj(V)b~hn1 z@w<&xQufHizigo7>5+_Qo*vHo>5P2*e(d=bZX+503brMGj|}_)xV6v}K9cYUO+}jH zK5B_0dX*7K#=nY)!`wy={xBk1>q<*VzaIgtkA4#-enm`zQ2oY znY{}c_xH@nVj>>X!kU$qka>R}E|RxL=KTZX(hDvu@d8Uh2L1wEKH@eK?jK?MV{Rki zt`l_ihI=2le@Ys;cPE#Rg!^Zv#C}?$OvcsU%!7CtXLL}XP0>rEYlHo_v{bytSg;pfpbqS^6sM$?OzoS%1@+1Gw zBtNS1I~_Akk{?i#{A0{i$(cx#(VFFP|7i|zG>REx&b%b~$C@NR;{KuII3)RT@+HGR z-pTNf#o=ICEr!8|33q1r>w+jlf(ds{s%6sq%(lDC&T zdG|OaB=OI@d%RwB+~QM^l7|;7D>H2|5zm>nFe3n>nT1b6G|QLtKXdI&|C5mPKXdIV zrnr2Z;%P{xv#c~mGwq(nvdR)M=U!GrCFjp9dpgaM@Mo629Lyxj)1O)P@vB(`($a+r(6b}kazxxtC;GXaTZ zOpnwVZPwY4#PV5Oa2U=7CYF)pX3qM2P-6K!($kQd7$KMNFnO;j$^^1jtC}ky?668Pi!5(p>5CDdkE!eOlH3NGT&} zh}Ea?_7yKTL8hD-&a6=lH;OD2Rjnj~Kf~$?g)<9_MDjOoav?pc<7O0(>Ln3LHWMR> zjse*dCc(D=zoaC5Qf#{XN=s?mu+mbj*|nK=$Bkbm(;S?3O=n>$!JTB%%veVB^68Cv zj+>K_+0V?z0SCV7Y%#@}_Lc+RA!JT9?MwdoPX6GKf>j!LjHbel$$J*y$AUj*`K1NS z+$`{AZjj}?GvJ`^L<_=$y32P^cR97Cx;DQcyI2=$x(Drx%|_pAULnnyxfkt>7=DFD z_423TK3lMpHBI}A$McUp+OkeX%ceM7d1tE%oXgg9AZK?e%jsOoaypl?ZTP1H|8$l= zI7#v|@*&(qhTmJ zi*UAcMx4BO+3hs!a11XH?sNVe;?^NprCpRO&^c?$l(AVj1?fmF!+Mw^UYw4ddd_z8 zobB|Tv!h67`~N18&~7A0`ZLzI@&8S{h|dTyc(JriQejqc_V`Ts>M}o>m+Zt#zatr( zHco4iIR&j#W>MB8^v$^U*txZkJKY!LGSNIBkREO(JNec*?yZ zrcX+bCoF57)5{T7;-6{`$H|q_`Fl%uCQ?dwlH%#kWNGQ`>C&Bl`tVOb=MV2*nK?;L zIs`UZGwqqjD?}^!4x*kJM}0_7{2`wBL(Yj$$2@7T`Q@Bn!}k$y*VjXH&PYeMm6L+= zcJ%T$-%)#)IXUNa&JC1a;QX2Xe{1%eA~Zn-PS!aOhnW`^JqK?xd1(DM33A`AaGQbb zq@#7afy|i@?l+Jr5LLU|DlL-OQsP)LiE?u`c5ExS0S>Kw7#eCY6H&) z!Vd!BhYA}Q=Z^#7Ckn4K)-MzyEy*2ysj#_$Un@k?k=E}Nwl|Qea2^6ukhFRO;U$G# z#LAzo@wT{}VszLe8qayfy%kqb++T5B#ptjX|7(KqwTg$Ty+IIW!h^NFN$pJ(qk~?` z>!Emz;@*n!N-y>d#ps|HJWw$d7J>&Uo~C$65FV-+2~+VOp%@+Xf^Slc4tT+%g79d? zx2c^8Y90>~tl~d52s5GKZ)XC7*scCdNDwbj%!CB--HP)SBVj7#PgDGe;v&UJfQtPV z#j6$1P;A;lD87U6ZHk{&e{EUIB0(wT%~ksginXaNYjH`CT^rl7FRK5YYJW+wwy$MP zV~qKg)o!sinq`r&l>KWnS@x*nRqBrfq}W$0KBst%;`55v1z~Oe%6_c&O=|Zl-V%hj zD*jFFPY2=cicPbIwG|X!QvYXz@Qxt7)8O=I_16~H!LO(tQ!U8x9t^^V6sN0Q+vN0e zinUR8@DcU5c5Rl^E35x;wOf2jF%p!reEFvN)EzlipOfaw%6&}zPYNXz0et| zD=$p{o#IQ|Br%s)T zRRZ~)h!vyJ@74gp4b0nY1H8;O2;+-oG2bck|ED@ezjb>j@)I+=u&D4l*}`W7l#Pu8 zfgXnQ=2;Ilsuvbr4~J6E)CCDub-Mi74!>gFrAy~=LTlMIM$?ON?#syOr53+%T#;7> z#e{k47JKXQM3?c@D>kRx<+;Xm_4%D%8&n(hsclYgZPckYPH%0T-r6Cj7ugNjjXAfi z2H+ZA^jvGs?X@_!*E-(`t++&Tn{fV#_}@I$T0!Sj*FgpAghf}!Vbz)UZ!5fN0M!UU zH5Fxwt(KxGg05CHQxH!MOThycrPNXMpdh}y(6&+#UtNf{3aYPYw;;a8(1tgCl+sYq zSwYt+`bbbCMRli^T6jc(`QV|+H#I;h?K~P&oXmntsrUP|pjV1x8 zy`myP9Tb_PyIE!$h2l=S=|aaYXhXYd5$+d({K3&6Etxg=9f4wgTyhi9FjG5A#3b^ z=j#yYaAb<%vWmZw2&9RzEji*yXWVl*+98Mx+>#uQ@=Fd!BRLHB^$d+cM%a|j;j36- z(BxEOkyC}sCc4C7fHbx@b2}cRqm6qk+?n*=N;(0VRk&>9b|NyU*nXPZNgnsp#+@?> zP!aG9>10e60vE}!LJr_$SW}&W(8+M87GNjcp#_i?gSibM!1D-wf!k04ykJUCgL_%H zzepNt04%g*Qm#+~?8df?n1%%4CF5QW?&aaWhwe}V?178qU?Bn6i|u{nApzKD+$+NU z3b;!y7HWW3;3BzLNC2F%)JUysBDONzuY|iKVj%}`60wj2V38#=kQ!Qm*G%bE;m%?2 zuXCr61-uTIquj260oB+(#_gKO&l>mYaIXRP6Qm&sz|u-?54WKP@L>BSw;=`4WtD2d z{c52=^<7w(dNMZVlgzap#t7Tn*aJ96Zjd%Xtk z%%V%y6}fUJ>xx{tlXXR|T(hn=SN=XrL9X1%x;FM3EsZSsho&-(PDud?vhjOgq$i|er1WBF>)H)l2JuE{5Nx`o#5UX z?vhGHX8aGhNFEhwaV%71MoV|cXldi#74F^OE*VrL#GMQ(65{{D{Sx5WK)NV3mGuiii|rsTqj`T&KSpc@g?n?aH*?F&OB-6T=k4=9Q#nn4*r(I%)b zg8DH?a-#iVh^1Q`-39=~5ycY?1k!A1e*_I+kmNxJ!Qjh-4hBkMkR(Be0419}4MNah z2BosJp)jP#ODYY%F#`-o;LycvYsP>H0wD6K{qi- zlANPpxPn2IxZlx0m53z0$&u)l&7MXfXf%T)vB?qXRp?fgK^%@=l}K`%9E*OH2^xc- zECyAl8^@$qr&|pojzX_NRFjAq@tP)R9D>F(=xQ368NZrtwTYM+uT4~ki0SY;CWv|R z2@H~#GN#4r(d`<#F)e-#(X~X(iC=4iCL!o%1~s688Sn;lYe>ZOcSEA}~nDK5y)Ru@D@3tmrI)aMj-QIb4Yih)-Va1M3_j0^{VlXEeOS zGpA=26gA2$D#*$mmyH+<^G#nwl@<1JME7xo`#2)|ScI4)jVZ_;mp!SNK{XL{9~Y`e z&~Xhq&Yg~~pxOvp3~3dEPHE672Az_i#ePRKmUj@p(w1;S6!@Q2|FiTz zEB;IT{dqO&!+$B14fH>!{^#g_PW+ep`}6Ex2mgmTAqxD@tN(fWpBMj!{r!1%o5253 zN~_?1LH#e#|AP2G3jauc12>0nbNDW!t_r@Ns_&=t{ZxFHSzngR1keg9s^I&j`hH2@ zFU5C-^<|yg!uJVIiUQwn)%RQaek;CDSYO_49pJl?GorxPtG-_Pdc}98_2s$i2;Wr{ zOTqVN_5GQ?Ka1}w>&xrX1-@%2kb>{;>iau=e;401@U_3Hu{;;u;lGZvpTPfb_5Yjx ze~bS*_?x>D!aRFd_Cm}CG-Y83;$K}(Bn)AMyqh;5&fJ+z{BE*7uxvtLgak&|zz7M9 zkibpO4x9RRn1Q%0h>MZ97#kNOaWN9N#o1v~za0)l;5Gy%NMM2uOpw3?3EbxFu$ga% zLlCzeaVZj)V&hUIE=A(DJ3DOVx5MEGd=`P}5}0lS(#O^|DVrJHOR5`aey8tp3#APFHH{xnZTrC?{OX6xt+-}6h;b)gWy(n{X z_Dlp#M9|9!sw+WtZBShasw+V+BPgA})oh%e3E8 zF_T7OUuN*F7OyavNg%O5VX%9iB~~i2&=RYZxW^J}l(^p#>y&uV5*w6w#1iPBVy)cr zV#&+2MTsY^$2KKaTVlHs>n(wNmXxvC5<8T5+7izz@th@gDe;0O(Df%}ykrUVl?k!W z5_^?6Xo>wwyk?05N*uGqAtg>)0>6kj+bvdVM{+r*>v#tG(fUb0eZ_f~{s}|3vU?>v z)nW=bO#-{s1k&iwJWUy$tX{UV(<0biuPPz?7e|oF`gTYqjsWoipm_=Y51V7FvWU0L0I28Ds!+B zah}c?Fw_MeL;DTr0*`o47s%|p!b6D!PgjWKyG3RW?Adn^91=a<2BmnrM`jK-ILXs} zP@1<#bmqV=8jEN%8cAs=ilD=D_}zO7-*_6yv=yCUdYurFm`~6zlEH zLn!O%oq-Q-Zy$nmPagq&3Cel;0wj6+5tR4z6Ochr!IL3wLkKE*h7@~;a_b7u&|>c} zZdLLOGv`IS&_={w)y@^{_dTuKAj^tJq&q(8_ooAy-R`rZ7_GWVHDopz&P)qsQjsU_9H%0}JBshLoFQry4miS_6)`nyQtm}h7LF@9O)r!Zk&Q{HPzXL6+w}IfMQe7~g2x4o{|l7!A^Y)fLo*!a5Q zO40>}3*={cn<%u*eb^L7Fq4QRg8w*0WH~l*xX)((n33k#jP6Gnw&g;%gZX7^tBj?< zr{kril?*XLwqrY5O_L8mx??B8o@WtAcRX*xBG5I%@jAOnBi*qZE-!H#>5i9-3tMNp z?DGwLLjGeP2R`lh8~B9e$9@icdc}X>6S5$$aOlzjI_khDWJ3;ch||GB8M3Ls&C*EawD(uOdMt%kr8oH1IUOtbF8MC!CF|PRnh~Gc4K+@%16UlpwNtg4CMAGFv z&WU6tY9K3NT$pHKDId}WiIxxHB4fdjXt{vu)Y8NRaxG3`0tpr!4pv*EB}ai=%O{Aa zqoc!+Zuu0jrlu;8X8FuO$yOlK@;M;Ri6ktLZ21CvmO*03uyBwVhVFgkKdKYSp|65R zbzbd1sxv%jRA=3wQJrD_qdM#PkLtW8U{q)LWkz*|molpJ+Tc;04FX4XhGA6a*Z!kA zkuv%kw+7CNWL}Up`Uc0^P_rz^7CBj##>le3)JUhOMZ(Cd_XEaBHO5tAc0$uFNE?QsUnsr=@w*=oOBD)Mt{QnFS;Xb zr0JGcaBmHFNw*+_Un6y?7g-$Mqmw>LHnz z8$f90B^-lLI>3c}*^+$e2wS8&Oa7%32u?}c5FV0(=?sEX(slw7!}7a;h%qOzBdUhn z5?*9z=n4aer7=_zG2KAKE0I8t?jRCCbc2UvWO{%|RF5Qj^aPP)3h#=#c9)@-IxMXh zY$@t2sTro5Qk9VG3^PugkoHC|S}_*Kq?0CSdZD=9a&6G2(8jzI2dA;RW0awx=Ki%hxw^`rnr$f z(Rgc>6qV$8n4*I6iG4fRF;i6aHB_=a%u@NXJxonCgn2CdCE>&Dly5d#W~X#E+VS@6 zO8SS{sm6%oM9Go?VuGrPsnHnd{j-qu@=cfAj5T4>su}AgsUT*mnxg<7V+)#@tZHEj zaHdO^Z$jp+S}{(tK}=TpvO!E%wJ|}HQNJlXq4Ism^i(@7zP} z&XH&x{Abl?QmX^*fLs{ltCD%G>rrSv2>G~VK1)9@`BR^!_j@NE53^gH)VVVWCb&AA zy7Dn739ha*Fu~PTJ-d-$j;ot`qF4;SjOT&%pp6-?9_rka1jl&x^c8yxJ#VCe!#!_Q z&)y_B%(J(zSj;IPx3qjoay(~Wo@DuyGPi;p9F>!wS17Nd zC7=i6{SLoaR)iBW4;cY(&JueGtbF)#R_0+D;ef+qGc${`WIztQ?*Km>WzL61K86>7 z7?FW+5b{mD5X4RPtSsR1j^b|a1U-tUPQHxq0vc_d?xd4^9N!IkOok~ei&6K0$PzzS zN=cc!={S!3BJktNHi;)d%m%>=dK-x+LEL8Qn}jwCQ}iauzb9DYTzag8$6S_pJJC}> zx1)fSAlxKYfpCLhi6tafgDCNp_>?Vi6-%5?k2Ua^FGqI=;ab2u1TG+42e`n*ufb1m zEyM1lVLc3Yir-y?8vyT;a{#aP^ty-iM$q?UnEEUtu?fT?@#8t(NXPrgZw7y#6n8)2 z7Qp+B8*J6+_5k^<;2+TPmXO#6Vu{2(Ncc41gA#|!y%lB&eTb&*Fg+xm4--BE_^`l7 z2%iOf#0GAMSppxU={cAl6VGLYI{;-emlRy>=Ww!ExfQhRgk^&gLqsbpCEhz z@Cmz*oiJDS@j9cLT1np_r-mMGaj;<4Z8E(fzI^@iK_D61p(9^y><~E1>D7b!4FZdGio;t$6(;>D*TnaMB+FI`R?a6Jtj|%J>*Y- z-y^k+NWp(BU>|u8_>=<3%0(UHc8=EQEtH2KxN(PP>2V$&XYoL5SO&~nWZnn! z78v~eqQSjQ?gMadgL@zHZ9Hd9PtOMQ(Lrcpq%a%Mv*g}DDa;1+!GaE2J>X2Ks|R4R zg~}0_@+Ej&I!ZuY(QE2H7c@v27EHNN6_)q>$7zFpj~%O+*TtdD>H#0%H5&A{0h2s@ zix*P#&wLj$$-{RzZWt~GPV#UO@1ZEe%>3VP;6V1=VvoPzbrbaO0h2uZj!#LDe+N(U z@HgHn!CwlRoPwBuW1M5(hpfXCY)?Xe;AJb=TO9Bs*=Gd+Nm87R=XU+P>B;PGk2 z;EJWr_5dF5Wwci-b-IUYP}R|T^<}4fxEe1u^th(<=^m~@UYzEpm!IyTsjhL*@;|0~ zXo;767SmR)qzn`0==h7cU)w@jMpH*I4YW%L(9{vKF`BwqlbO4prY?AapsBmu0f>^N zDdaP@n0znGV{UW$_ri+<`97iZcGKJkZx1vNjo?cwnW1=zj07_>VnTM&I5H!-)B%{x zXfhMC3P@(+VN7yt1oHFZHWtreGUKDksM~lvi%Cw1$jQ#jVc-Njg~{9;m6KgikSB%R zjJGy&QzLWiPN(9bOR7L9ng5~yk5f|9BXjIN@tN=_shL8F7hds~lbREmgC!X-I1!t8 z?IATUD(4nVES61f9$s9?E#zTJ;6gmY$lT2%66S6^xyalbH9gnX>t4KIkXsyuY07eo z?4=s$wTtVm}0;9C-I;myE>-WuYlEf ztdLzFl~Xt_D_3^E9#0T*n<5=*6CNI+%`Nb$UPI4lQU&{;Y6N=XYjZrw=-tk zla&j6{gZ z!Q=vwiFr0k3}1vE`!N}xg>*`7Xq`G1Wp$bE{@LX3+eAUGZ#1$BcyYxk#ceJ z$6CvA>VtAu$RCH}WFqC-JCG9@lpEo|DTFf}cpu?%2XgY3a_>0seP`=i8vbygGvz>e z)}VYvYbamY*C#k@-215QgE|W2kByM^kro|XL6SoSk@3Z#$ zV%3M|;?O8%J0`r_n@j&Iw5d_%)qi1uiNab^e^> z)?4xiesX^|wl_HY9PlQJyljPY9KeFzzMwbo3%r3}aBkoV??MP0nV(gVg^}FuU92)@ zsCdygu?d<6bEi5BHB|T!JFVy}5mGVIRbc(CGfNPW}J%q`0=7i;ivi;?iAoum21u6Se+ z7U2}*%Nu`=<`;h?z8RlsaV3MtS$vhj6D@`kg8nxL;mH=aHTEeMBbiPAydYd;aUWwZ z4#FbLVtt1hJ4f?NeQz>Ygj%#Ko^9<@jQzGC%+dW4e~YotwRo1nvYLlDV15Hu*v;|% zLfogsykKI!B_30cJ1jx<7|RfG7;E{Y5_ee-OWbV zN*uPt!%B!~j}^1T5$o}kdc1ClHA)<{#Cj!;2NNeOaaKJ}1{0?&@u7OWVTq5GIBki~ zlsFSiydO+_V2PhKw`}x!^DR$36^=p`Xq)hNtRhXYyEz=={xn7xy;nv5#B2|pEOh@bEFr7mfj+y6Uvtqi9>KelIvdq=i z=SIuavrO+0rjKQsS)aa^X%VL{K7jlz3$oawf` zyw;BsU8W!5d^O*o4#;-FhD6Y&nL)pdEE0T$dkksWPf)cW`Vzg5bD1L)XgnqH#Fpb z3r%k}v)vHgx+U`j$=`j5le7~QekSV#2hMM>m~oK!EzW@CMHjD!xbFc|A9UE81p}b% zTLO8a%@0$IX)g!e%j_p*RIb1D`mK=IHGE~gW8gUfL+(Bnx` z3wps7_VlOWfF+X!q2LoZXHU`}ioYkVLpmHJeFf>@Q>Ktr^nrTNWUrX?<7^6&w}Oap zjqglKstTIFbtY~-Js-;kL!{Ms%gq&`N z@!UxW>EBMN3y-rVoFpv;5g@Zt7@i6jNC0=4h!+W=0({X#pgWw}8x^8L2KW-r@XPdp z2JmHs)YVBSpaI-tO4v&)G=O_e?U*vIXA`{Fpd`soK@{jL4ggW$D+q-s@Bl+0qdQ#jo{q!X6ZaBJ2x-o;rU8!@9%9 zqxg!3UR*H%USAX3sOtsrD0z^HaQ2CzlS%J6e8!%{$d{ zuq-tVz$hBxZxC>+`&op4ZTD8w@&A z8jHXyk!m#Oz)+tjp#j|}s%v24IdEbQ-L9j7!aAQclNvacX5MZ~YeF~5-h6X$Q0~?= z11w5uMl*G8J{cxOZq3ck?y#k_pxZ(iS|Dx#;#!iR%&jGe5)iFOQ0dl6iPj{jacd2N zXQB-WYTVlJxY`m?+13{3dqA}F7s*q$*DhEkKi^*^KQTxpzc5H8AK|Z(ztdkOe^-D? ze&S_R@)Ju@$=@BUl3x_4l8?9w$I;$jCQp@Kd)!1kLmha;ROxlV5#I}#9Uo*+ zPZ}uF>q)m>L{#YYGHwsSP0H>~1J!xG>DGsc(!4%IeTgW@>uZ7@LC~WtJA;O0Fl5lJ zKhbia{>E*YEqfphD_|IyVNSy!5|4uz1cJ)E!6cplF<3o@kf1Veh$(9#9wkubi6(Ct zZPerqQ|I9%D9anJ#0V0U zJ>Famy`2OVdH7<6q>YGzJU7g*fG8nB8D0s^^N6Uyn`icO(4O7-G*E>%A907^c?Ss! z@$N95`*5=MqiA^P1zAWBD)Sby^-D+X3OXxqD52?(L6GU zXciGfGz||Tnz(|9#$|$tMy%E1N=4be+GGsq*>6D4LBlh9cOBBTH|k57;9|7DC*b-3 z4}eO+2Y8%Ih$s+TLL}1FH-JRC3O5|}DVF~b-6#=!h;9!PQ5*O$(IZ3@1&VAHZU{QV zpvP#SJn%8PEhC~Za2b(&;Zqg3+??Mx5%d;=R?&_6z*TfxO+qv2f` z)}e0!Kc#EIZ6Nm^xDDjot10sH@6wrrr0E*#xy(^-b>8c%1}Z>r*$m*Wz6g)CScyxi{eT5qPtsY;vO| zyAsSct7~#^GupuCtg6Wk2|x{aJa08kZb)`(f!J*oP43-z*8;K6>Y3d8a8f`Va@0)j zLwHF7b40aFZir@@03TB&llvH6e}FxXj)^Z)Ex^3tsF>Uk)wBZhrccA{0l)k~Oc4_ib z&?>*H7b-B7j+WVsy*5N*3J$NXE+(JMl3@uYrKrvGDlA71jlYSk)PN{v~6)zplEK9j~{6LH3QnAqx#qxRzh2z1? zqvE!LGzBz6^dN4;M484dKiqQU`~BZ{j5+68d#w#<*6BItdG=m&j@vul`}>YD$C@jg z>btb&snbhI2ZZ(&bx)mM5zg;@ulA|a?-8N};M)49POl|qs>^k4oI2&;;(YZP-}=<) z_;6xxa#uUYXRjpxKSS5x4SbnEUDIhOf~yt$`*rOe0aVhH0Z4PNv~zjXCCUHF4I_ z$J{*X$FxjuIPnOZ86WKR(?>Tn({M}b7~K-N_z%PsD5Ot|?9@U4t+3!-08+f6MQhb>L`4 z{_&>n{DUst%cSVMR98FO)pr%Yj3!LR2292Zld%ORtND$z_S!$7&p5I!J%hNeOFZLv z**A574Q*;~Sgq%m)4E(b;;geS;oXY<`&!rgQML6E%YHc6?^m9G`+gkG4;THQ^86cz zX&v&0eEdiAyFn1xPv-^u>F3Y-9h^7lhtT?cAupb&;@9$`jxzSsFKPAru0F2T39S>} z?+LBao9XSamOVkr4{KcwXRqeS!vu1Ut0i_XP7cM%Ui?ugPVu4+p{O%Qa5VPTP@Lt( z8KL-ZUc9Tacy}l+^Hv=j5vXP_>hwmb_)sXm=Boce48>Eu^QMZT zY}5yHasbeNa6rIDgmQ<_9?Lo+p!Q2bd*@KTGL&^ZK<(etQ_xag+xD~2z7u&CI_j

=#X<2=XtI&gFnh)--(C&(g|3~p+j+P;>ltgmk-)t&fbDn$BM;KZ zkSW$0JHX$zqOlu=(-iB^5%KeQ5oy)?=WVY2;#~bF>v?YSX$|lUxMu(TWB(nWqW@9W z+fIYm>Rn*7Q*S~4$fc2%k;WqXIgOO3#V@Fsp0Cyho)@P>D0ep4r=30gtZ&qUz4M+C zlObb)eR}MDPHj4i-mlYp)U~nuh}t5^yAQoc-LFyi4&ZX(H%HV&X0M3M(6u5oJte}w zs5Uxz|6#{Q40_mVCsT zcg)iJPs)h@?HKh;mi~L1B`0NR({clN>s-71e69^s``77qX_h>cCI1K*=3{bZ=@LOV zBom+1q^hS=-&mhEcem>6vt+wi*N{x12s$et&5|KD5+c8Tgt;v$E zS<*2R@E%$ElXWT^2L+2;U16IRf_ zo54q1-1o8jZS20kv3A=m+0S?}KTDp@(ixy!o+A_{9%!h-%sCTG1H4bupg0Lgsn8>i zR$+%&n6$59;nRw6%008BQ6=*sgTR#9)sJTB1fSuCeX;~aSi8ykp+&2l(LMdr%`b2J#kqe(XB6aq z^r5@yd5}w`7Ibwjc>M-L87dKbVC_?;tPm$ncx_>BJP041zY=wrKO+hT1EFpL(ngqk z4mag=8dLky$D z&*ZmR(#yrO0al@?T;|Tm(i`>`^L&DIIrV@5{Hs}#gOFTh;LdySZ5(4D594m8Rfi5B z-I~Vqk885DBNqO07OVx13^peGag(OwwBv#-k#sOd#3k9G{qCcsADAM;yBH{jf7_ZTe%>4|)Zt_g zxAF34*bCj6VSw4U%#tD00tbh7Uk`H_?qn#-6VRX9e4b(9-r5+86GOpp(+)u+TB6sf zhJc}~ol#|o?uQ^Lv^m7>-Dxm8;B5AEQj-m&iZZp3F{4UH@s))%oh&}-xUI)W8X*pZ zheXq?-Hc0v<6;l(3}Qk)QNe%%wQkwmEU`|pSn#mqi_wt67l#57MG~b{#0ePoL%73i z6=|ea;3)LAEYr($_7IkCmTW>WuP5h))KGkW4Lf%m-3Gl7!{O@ z!TsV;^br~-p@RtBFAINR8qPTW6);N;0H*`-Q-Vz2sq>{S9) zVTJHcW&S|vpGsO>p*<_MX#qG$60{pj97_)k1z<^PIa%?oxRYj3kcQeRC!7^qbu!eXG>L)fZ-Ea$YA^BKpk{jSr#reu~ z$N-L3Ws!eIEWj|p&NN#d7Rjp$vvF2Ou26j`!HGi zdpeO8q|efi)-lVo8 z($_>q-ZHO(44yJ3A7&Ful?R$cs~Jd{#=_;WSof+nT@DFkRLbPaI3icCl2l3_1c{S} z%GlkU2rxxqc$M^&A@6QI2}(t71d9fnOAcJ4aV=>9n(ADnTwnnml;t!1ZuRWkgO=>Z zyVQ2pa*^ipLdfcb0WaK>|3C4+4~THz^t4%n#0JvO(n76rcRI=Q4UpsK`lVi|=Z0JC zepl5^ThX_9fxQJkK<|v^tTHGfz3eo>QLHjD67Q*viBvhX6>%qAP*6mimi?Eyk zC*OUydhq639>dL6;uXgn*b0@+x7>0|J!th?rcbXorhd!5`_>!tv5(bj>4CFA!S^-a zru=xF-QlCg53swXraACKYecGhBEWlRWDPyrQ@0RzH2!Mz@-ElSmu(1|R`l;f|FGxO zpWB7>{2}5Mh&~1a^-`gKeRx1!%90lSZ*I_@PP&ZC%UMG*=OMdK7f-PjHPxlM##ooU zyrM(%0=}x$Ggw2HbB!jYhgbuu-_i8Ejisw^Y>@h34&JS|g|9s9c#cO#ZqVWy5V%E| z(Ot`BAh012cDmqv6Y(t{pw$6B+()ZG@1oGRTp-plFV-{M9UVQ3Fa>>{MCEw~Q%sG) zYLg|Wq$U4Cu%Jhgow5egR;y2G-ffimjmp3wNZsnk6>;l014115yUJlFn^%0lIV}2* zy=hy-d2d`SR0l=KC4ksa9VGB4ET-VNoG)^Pe<%U1^E@9we{PIb4^mZjcNGaYCL*7gC)it_ zaBB%cG7@$zO3Y^pDmRmJ$4!52-+VW?vBE#&rSJt+%egtOlg!!JR0`yB)VKg&y-t{D z`7;IWfPR%6c1QE!+cW55wy#EJ>C8zyDa6e%0cq(2q~+YLqvw^hjVZT{KOjrT&5FqR z1Yz%781x0^BAZD0XVbnhbI*~{^ALQ=hDT{V!wlC$f$E{q3Ju8^R?wKWH#MQ*eY4~` zBi^gzJE;n$3veV~l>;oXT|y5xwfU~iB*M9P}-zysFLhVV-i;+l~rr zKzzOXSzIqk2$8r*kq$0pwp*bC!QoZt0IUqcf7Uc|+>FT036CplOC_EUSr?e4N*7|b z7;uZaaPQXX0#K@TfvVgP>ZgT&rz#Pa2i*_Kmj@`k*@4tIS3J-4Fpi zNqSc0XC6?g3%{%?E61haFH2FUwJDlc@0W`;`~M zo7IfbK{GrV!SKWt0&tlIMAVm!P3-6Iux^{eGG?FKZX2T?%DRds~jjCdDl{OhsU{PRf=3NSyL!;+5^gNo(!LorJY?8d4y3C zhEGC4!ycSEARDHz>C#zj{Hcz#v*^*|*(A14 z#Tu(=xdku~c-w4cZ@ktTONJ>!9l7VMHI9~7I5!yilP1Gd2)ho@j#*;|db|#y{5dm? zMq4t_rNyXa{3IK%X=z{JhF{h_JDt-F=r2e0DLAKUvooXgi37PeUm((DP}Ygzk~dq?jMJH{{x~twjg|ip?xTP<#In*)_{>s7eACE5rYP_T#f@455Gq_t=+jC|Xh%!dm$d|F zV8*B}WWcPI0#X|tH<~W687b?r9stlR#~?Q;9Yzp?X%uMgK$`-p^{>_$C~$ojZ=*n) zflzI~0$&w#=<#uo&vgT<=ab^ZL3w?K75O$z;pXrSD8En!7Yb-Appiw`9i*l01#Wl7 zgo6~F;{l4#w>mu0uX#bgF`G8Mv?AVQ?Jt+^ZN+DY1Kw*FQs&;5>!H&Q%?tRs&*5KE zlu2i<2}cxs?Th-%Y1n)NPZj8?)$--rRE)3_aMti3z{{Z8Ni}VKT{TDjhIZ@_)Ex15 z(U8u(H*0@TgB(R`CTkPn{kHcM#4!GgIsCCYduZ$uqhmWq6=9;yZ+DTM|6STo$oT{L zfj{C?q`!@Jo=5p1_}=)3X%?gYTYMG|r8_k*(60us=-j-ZGd~v`9LE7{#r%Gstl{t- z;N#oP4D5tF|jWZlK82)Oc<@sx=xEiBbpNix_M^1ujRZtCbrgh$w-0LX6;`G zupMtc(oXS$-~Fr;?y*z6%yv+BW;?^f^wcaFSk?ShH5XAlG&d($yl~wJ@@ihrT-*_< zIHfQ6^Xl|CpOuv1rM|Pv7(u?ntiot}2Y6>~fWGL7L(AAgOc;7y?V&o;+!i+ob%Oeq@=X#G^rOHx(_y8cS58xOF zus)|c=i_Tqzf0|@GD;1w9eAuhg*n% z$TcUeteb^g|AzW8VwC;Ey^I8MJbZZTB4que-3#){RF zhV%K`uw-zn6}(`z=U2_GNq4C-*N1xm;iPz`#O$pVoTIAX#52v^9M+jtUQN@m;K_G$ zNZ>_H;dWvABK<$x z-^KPhFiS4U67F%Nmu1O$S#nX9oTFH;nzORxLR;riqz_Hp@U@7q+me;mZ`$zA3YN*q z*5Ba_wVnVx*Jhz7L(YuD0mX`!N{7az-jjL&a!);-=`g}Rsi9Af!0x8qboiuwpMj~5 z{1Au&ht?CFT%vKvUzbL79X`OuGmLxxD+=g<$PJf5Rkst&*x)2WKil{T8<8N??Pg4_ zIqGl|9HV?L@6(#ev;vlHVC6E(m4_nrt_;jYv9%_kBo6uW1_2SfxLr>e3xr(#s`P;- zANxg944)kW*?M6*Za~Qa)|6x0GrDB!%~*4+BLKD_22YqY9}Xs9^&#;PR6jW6oYkO; zH$YM-iAxqjaxoogmDGDHO*enDrYYYcjkkYJ1DS%1nOOTnc7*j z<-l9hwOQa>#hf;{QBRt!>CJ6zGtk0 zI8@(<(YgV|23y#kYAV5?uprqhPt7mu5Qi5D=c=lN^ZvLDDlJF~z}wiI-_@MOmpGZ6 zn9O39pvVaw!|zjRWni>CsW-#4@x9(QTMzO)YeSK8X-|^uOMx{Gq>JH@5ov2p&?5Sx68qpYa=puqh` zB7XAY`*{xX&mFbsO<~Iadxbq%cI{PrhShdgE!#5ZgxZrU`koSMkF;7X@&)0TP(#Nj|^c9xBCmAzRMhrgLgb4((gu~gFuLAU)#~qlNRRD6Bu&$wdh-m z?e!10J$V{oc_(8t81H5p{RQ7;p3*z?cKP5&r{%|CI8BsZ8+1v1M2=Y zI5Pw0FILr0yU{^{EKTV7I>*#p96`;;_7Aq(dnfvZHwnmY!D*^7rZj^FI7--4M^^Y_ zuYVtCjf+c`fOi44pfKO>>_6GO4N9Pg!dMo5XXON2tngTBC4LmLA|JY&b28l0rag^u zSZC$3NRSRyf}GAo+%s+O=)wj--C&?to(1rH!7+f}nY&5W`mw-p9)h6&y-`JAj4~J_ zxWm48%Bwk|pl{TNdfY?kerQpDWnPJVVrOWCQm7JrPALaMObRw_`p(aEIxT(Ywk)~Y z43xgT=({i}z3@gp{_tM%cl!y1RAd0f8u;Vfa_ub4_3SLebTV`5J8 z>rl#Q$a#ai?;G_i>7_4Qys7J}ERAUqQ}4}^qq6iww713n7!-!rYSnfa1CO^IGkIFM zgiY+nzN{VZ^m)`5QE9=Z3uJE$U*5QgV(3GNQ6o?H@;)NteChzNI>7VLuL}GgJ~c35 z1RM}JzD^}{Y#zaY$P!W7X|5m&sTD-EYK3D5IJ~K*JoRY}E@sE4a?L;20vHxMZ?~Ur^e)A`rKvA43c7Z8_Z36c(Q#%pB2c&FZm@tIiIsfMRq&Q0zSpYVs1Sm-?Xy9|g2 zk{>|M0&bZO|A(K1NkqR-*&GnaJxu_imHUBqPg=tLAfxQF3_cFbW|?2mhBfYC?hN*A zt}j7?D>)=k^wB`&2x$(rKag%T3w|m~7j1C7yy90>yi=}tgo>7O#lKVWZn*-tvR{_) z&I?c`I4t7Z7%0=cF+7F5o2~p5SG#z$Q3JE4>}}cHR2@7sCk_{U^xzm5sM*5^#;F7< zp*y}B1CEO34fm36{}5SLJvSnEUT&6;0KHK%v3E34fRuequs)k9ZcR2KuG+d;$-?Jqv(RVyeTkwG zCLGQu=4`|@KqGOf)jS@ZuP~F)ONR7<9LCd|7?qFrnm*X%tvNd&uWPBx@ir*e%@i+T zE`iHo_5lT~;lb-1`x_iCsE?Y!Sh zq3)DY-E*Oigf;KCbK>xhEY*D^)SX?b+b-0xvzCt?9_mPR^SZ%!O3?f=7h>25_ocg= zFFnlp9Sv``xRo1TQ z3nm1}SzgkGHeKi`e1UV1-!ae39P_0BKcQ`ZG>!RC@y4EtbXTvL;JdM<`VqcZi?anLop9Zg8%Di#~0qnwc8?#r82Tbhq{l zvhA&yMBdny+$S+*zN*R<;A#t3z?0`-_Dd|$Qvts~p^LYG9R*SwwYb%HBe@|X!y`_$ zmPL=ruG9_9-!Ft(J9hTGy{Duafp3%%7~ut<^PGH6AOj3L{8n%VWruTdsJpo2Af8Hn zY}pAt+~9R(Cp0_Mm7UN%p|0$NZVPo~Cv;P&JEJu3Z&(nDHJ6m?{ut^mD%IT{Sa@lv z?$6YPP%-{HmNW)qxXe~p&R`ZnavJxT(||2qy-Zev=~3=r!EcE%D@6g620V|1HrYjf zf}z2~G3YU$l8Q!}C~3u4>`HZxkA7zF|DJ7403OwyKFQJ|^8Vln+8#V_m<={xF&me` zOmo~*&CY$+9P?QsjXEcVj74Qyy!?*>40-9Hs=@wN+iy{1! zrOkobC|j_YnVHqDV*GLWAS23*au+LjSp%PZ8j}|p0^DxSWj(t z!?Ixf9dK+vI~&AY%h#BBAemKI=o4lxP=JXoni~t~!lI^VNXXI0r0ZVElEwKT<|5?W z3hH3t;7QPd%d$9ts?lXn>(aeELB}d61MO{xniIgV8$#qNwP---)Y5C3}QJ2D|%Exi;b{Keedk$T;K7xi`E*S24~4ju8{Y*HqXqe zw3(l012tApL7OAz7`e0tnR9Qo#0j9v&(O8&Y(4$Bu{+fX3PyEPOF9pI4q|X%G$PIt zzvj;1s1sl$ez(QP-`#SA%NB&K%7U;}Su^n(a&`BZZJ7)=pt2iUpccLQ7iSsml#!rI z>3d)SmR~K&s-8I=TvINE>E$v=ryOY6z}Q1<8R8sCAAiy~b+xO}={Z~G-dE-<+Ygbm z071*f9_*~$J+d|e0_zfQn_1V)s^;xz%mgbZ_(4B5g$HhBuZtcpn-@BS4X{d1%S?JGep@suoqmiLuxb{(0VBxJ2;86$sUA3=@Ifg4MVh#QiQftn~}Ejv&4?5 zjKdqsBW}2tmB(_TESo~u#TcGSAdV>O<#1M$@J5)3NANQYq9CGwD?$(hPV|Uz6TAo zeNAwUR~j5ohSN#UC>=;Up#6^4*`^4N){1spH|^LVmDA?*@f~KvxEk@*EH`pP6ymQ} zL6~Zr03!DN4E=J% z@qf9RB801;lc?ZyqAx*h2-WGLUs*k}CVZ_t*>(;He4(1L?5#Bdi(I(HzJKX(nT9q( zHVGk+&&rbT6jP=XQA=u%^fZK_FcyRHzNqMCR-jw6{FK|Y#cc`YuGssHP{X3HX^9!g z{0j_+9ywuDhhBGH+^Q!|Ah%^Zthd0Wh*!|jJvKZa=klM-@xV96M-B7a8@35?_^gu8Pl^odiW{Nyn2=Id~4k%@ZCe*mCELyMp$l()t@K%TU z_5yhf{skJqu?RWa$5}$S3F{rbKP_aPmFd-XdHuLj#)No~KS~ud)lyrLspi>~Of+3N z+4K$Nbdrh`CuB4Sv|`X~bHZ9O%!@RIg_u3PU}<3?1)Yx}MSUUszY59h{Iz5WB-cnJ z0~^Gex@#omX-DN7l|9YO;2v7bzFTf{3UPA>8L#w+8Wlh|pMm2{Kh+*HV4eA}wDDlJ zlt$tMHu=^PPvh*xBjVj`)P9|ImCeQu70NMRLkO7&;#)426_; zF_B@K3fdti?^nknS_%BN7$l3-8k^{4gy;e_^!V#g18IGX zjKNz&21_Z!RSbeNV$kB8K@`sV;4)ZJnxd5qm?D1Dfq1aR+{arNEM|hgAdAyU??!D! zfj<7>O(dJ0w80bz7ZdgrOJ=)DQB3dcl!GNxq0Hx79tM`NIveG;7(2K6BGnz()}^+y zPJ|%$moj3WcKTp|EwmdjqPy``IETsmWa$gIDs&d7H;l;ElJQm~J%TTH>DHxH7mGsy z0i~}a?T`)gFC(A1w2YsS`Uyy#gi5_=`!Y%_yHkS4-HaZvUo$;AOyM>6=Vtt$%tC5h zkvUp^z<4DFIKmpqYfpgJm}A+!=BF2yu`@af?(JmUvpw+DS#qfNTmC*3?dK_T~o?XXB2yKCJ+t~DYVt@tyump}03Sb)~0GTA5gba`Nim7OGY zYF4h{|2dNq@PYe41uYf$3^73@!|V~qp?Eip*pupdguF8&9>4K(3^?NlZMR#@0!u{`E=oCDflww=W|*|IRi_fe!jXjMKnjf+ zWXARhGpKJ^*koezbLso!y?G&lLz`;3t?a{(|Ps;Q3idk6_Zl}@x`_|Qln{oD~Vx)2aC zQl*E%MEv>`wF97NPpsLIcb?#Nv^L8@}Pox$=Q)UxOv*0I6EZI6dq> ztt0HwdMwqfqo@YGBV1%uQ#d3t7j=KIg1G_*l7PqL3g=UUx%7<81quUtb@o8km;+hCXjjZA(b zikJ*tTITXbf_gOIoWsP02L8u6%7F(Ihbgo^7~ zzCfHw-n7l%LRr~kgEUty;r@8Uy<0v63#e#8=bb8LKlOC$B9!LUOfPu2TA#*u3e45l zY}~TSnFI)Z)mYYzZVo1tA!P*6LLDnnWuBprj2l(s(J_kgAHbs{@F>7!?F>`!gcm4< z?s6E4Df9W$@TjN74ojgrUFx>)8Exe(n+4sJ2Kp=vr`9#kdEf>GDixhr$aCn>vMW#s ziX%s`lUX-l+S^l_1435pTJu%9J}oiW1#MPI>5V`Kq}-gI z&unCIeT#)8U2qLdB6HRxtFPwDgf=Pn+mB@23jU8|avvKGpExALn*I?%jWt+|UCn*f zSRHA>LEvTNP`ET6XY@CAF}fO`G(^W?n#E5~iI?9s|A{rjQO4uzvB(qo)Q`p9p%CQPV@6Lmy z4|SyWu0*Qdq|kxK6?Y!BOb@MXu@}ajP|2d6n`MzCi}msMim{&5=qw|}Q$LDF8VSs` zoJGYz%SJt~A6Pk;d{3L=P!7O&rdn3whqhj@GdLIC_REy`3<%L8Z~juU?sc5nByvgS z*ua|8Z6SI@JENKS=0+ht17revi6KxR0IPtKQNYy3JNqZ?ZJN1>IUX$4>)VO|U-xy} z#COY(Nl5jhNyx}Bxuy%UWTa2aO!SdGul&FKkMYLQG>);E%k~H$0U$m${wPc6BRCaZ z>&$hH&jleh=DOA!Q_IpIDo=sB!yi&00_qZbcRKXK)5bYgbySv$e=y(^CjYdNJVk3M z*gYRsH#)25zUlDBEVrCNdwQd8g{}7)uf{zTWW&k`S;?YXOuUN#fLy{1tYFcwI+C=3 zPZbYDZkS)ggxhB2L~*Bux^cVRcIx(d4?#;qG@{0`=`{16um`t8ae<4s5S z*@T`jjVr&Awc4p$W4fzgDqGT!aB>ns=&4L%54FSd89{;dqjxbABL3-)$+(*|%2TEflGii)zQXu(aorM;Zk+P@7ui_bVm^<8K(=Z`y8`LU0N2Eco=K zK_CFgZPNWAcO9TeVTj2QLvdA?+&5<0#(@|fA}Bb}>jaRR#($yRVl7l32LIl*JM>mj zZ$4U~hfQO7FPyVTDS{Y)dUFwj6xfy+O?Xx*6!m&q)MD{j4>rac%0zLb3KoHT1v^+< zBDVCMHQbjYtmQU97d=g;j$^g3I5o8ck%|fUJ z7`1HdgxWo=FB4Gb3z0^|3@ysg#A)&K7vMI<_g7KRGJA(! z^jBdo`e!JKQ@H~4E3>yt1$(!#v=HVTCGN8P3fx6&sXW-}jzG7ByUr8hg!D3JVBjtm z0d~ZVipIcQrlhfZ-sq6D9I4`NYuz2X)|k7OyC4Moy5C`SulgOphy=kwtzy~o8!a#R_%`9@@N9>e%T-?XJ$n-_S+Krc07^&TjC6mIG0$gf|XW{~r0^llwOMn^PiWM$|Ftm)gv;q0)v0XDvy3$IG z2ihZbg#D5+3942eP5Qhy{}6QNFE(Fpyedl{+hmrBpRFFPq=j~X9XhX$jiiJcyegKD0c|K-VrR(0{_bIsX1zHRl-iL!a|fbs;UEr)TSL)cV__|D zIiCWXx13Fe6WDFavExqaSBI}5c^HOIHtPSnS=3OIZ$->TbbDBBZ_@yjJS0f$E1?Ud zAD$veJ-SsU3JmQPJ9%q4h*o4#xM%*zRF#F6!~C$jaL6a}Kb`t#EQ@>K1kGe$l4(fB zJ>&IAU-c;M{AK*lvWN8JiI4F`xx?leN4o>6J^qqT%7cl-C=7b_Z7&nn5R6(Fim~X9 zI7<2?wJ`mR5@kk3x_9hrlzkBD}vw^eTGDx}rS{G)#(SnB_M7#$j zjr*$$SL~}rR|oZ5Uv$k0o%Rcz&?f72nINUl;${Vu1+6Z416^=^y5KyuHlf=LN=&Z{ zWa$D;_dacyG?|dJB0kV830W~-N(#Xb>HROp2YBPWf`@@afmd({hp?|;CO`GS%CM1n zHy^fr&dwI=TpprS5|&-K$y^$!$jw2E+#I;b_d$!+eu}~@mZW=Nhl*`)_arRbqq**% zxJO^Phoju@V083nAq>SG(T@wlpirUbZ#FP?U`xqI$BJ~44fiv1t7c9|?_-Q4TPg7`R1$Yel@(a+XeTD|VREPsn*RW=QwzNCeKIO2w+ug(Vh+T4gRsUAU~A4dRUF9((GFZ6n(=|Ns4W=G>XN zcK)!OjmJ(!R-=~9t<7?2qx{rrxL>cq#{h7?UQ>AcZoQ^rtNvQA8L%~9sMn0Vy;-lB zu(f?zubHuR{!p)3T5ZD(&#G?l85Q36RsI=J8y<8$5ZkppGMENehPjA8`aD}I#G|X> z+>M-j>C)!brET|8*u8Ydy_8>#xxI;_>xJU>)!at8w4N<*=gU`$x$MP~yRdWZn!A{L zZzoqO%U~&=EtPY{^}==$ugJ$^8|znc?`O&wD~VpIoGIn<%g>9`xeGg&*Yza`=i^Z? zuWqGP@FA?<1BX>y3EnwkdNc7>IN9n7o}A zx;^Oj0PF3zaddmp?FH7?aaYjoL$?oDe`U{dFZn2)!X-!xY119LCXxfsIgXEs@ejFg5~gv>i)pqiBr+8*9gKv@!I? zfQ?u79IZn1#T>^G$AL{$_MMWQ(k3uI0n8=E`6|0G?gBO`#nDb_lNg@_HYLUR@=sxW z3fQz1M?0lWV|*Iej1=elGK29MV6##j?UXi)@mXMQDb6>{jkX(@M~b7J(md#UfO(}j z-$^gpUSM-l9PN}ghyEO}c`44fcpmL}U_L31c1rW1?*rzS;(YJ@X#0T$q&V6sEr5Oi zSdg{{4|))9GYD*fwkL_VxPY+*V4-#_t%cAE0b6XxaI{7A7UAzXb0%}{WG3^Mul>9} zyXWh(D)oE5eFbhc6`%*Y5rlts6{rTUHx_tLsV-b^gm_P_hHl`u0z!PE6*y=bIv4rz zYuFFRW5#+FZ>;LK;M>5h6OKdSD881%(P*@3Y+r%HsC?$eB3`)&$Kq-o8~$#ZaT4I{ zU>_&?{+9Aht8<5UnkIPZ-}4`~{u%)+GyoPnEY$$7uBGsdND5B|S3QE^f#Av|6dnVv z0z&acLbW0k?m1T{gu;E~YE3BIL9X5r>J_1`2(={Cj!J#<$v%B|I;vvF=ga>6jLU@?)u#CqDj}ji0@dV*{c{e=B8ULYJK9F*}Q;Sk}Fj+NgZ{|9C&Li7Lt literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.m32cc new file mode 100644 index 00000000..2d510fc7 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.m32cc @@ -0,0 +1,14 @@ +-I"E:\projects\atomthreads-master\kernel" +-I"E:\projects\atomthreads-master\tests" +-I"E:\projects\atomthreads-master\ports\m32c" +-D__STANDARD_IO__ +-D__STACKSIZE__=0X800 +-D__ISTACKSIZE__=0X300 +-DVECTOR_ADR=0x0fffd00 +-DATOM_STACK_CHECKING +-DTESTS_LOG_STACK_USAGE +-c +-finfo +-dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" +-M82 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.r30 new file mode 100644 index 0000000000000000000000000000000000000000..7a404f4253f51b0bea940880a21e79d020f45f3d GIT binary patch literal 13593 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 literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.m32cc new file mode 100644 index 00000000..503c5121 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.m32cc @@ -0,0 +1,14 @@ +-I"E:\projects\atomthreads-master\kernel" +-I"E:\projects\atomthreads-master\tests" +-I"E:\projects\atomthreads-master\ports\m32c" +-D__STANDARD_IO__ +-D__STACKSIZE__=0X800 +-D__ISTACKSIZE__=0X300 +-DVECTOR_ADR=0x0fffd00 +-DATOM_STACK_CHECKING +-DTESTS_LOG_STACK_USAGE +-c +-finfo +-dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" +-M82 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.r30 new file mode 100644 index 0000000000000000000000000000000000000000..b0a96d074316f71b1525dd0da7cfd6cb36859818 GIT binary patch literal 4841 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 literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.m32cc new file mode 100644 index 00000000..9fb2936f --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.m32cc @@ -0,0 +1,14 @@ +-I"E:\projects\atomthreads-master\kernel" +-I"E:\projects\atomthreads-master\tests" +-I"E:\projects\atomthreads-master\ports\m32c" +-D__STANDARD_IO__ +-D__STACKSIZE__=0X800 +-D__ISTACKSIZE__=0X300 +-DVECTOR_ADR=0x0fffd00 +-DATOM_STACK_CHECKING +-DTESTS_LOG_STACK_USAGE +-c +-finfo +-dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" +-M82 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\tests-main.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.r30 new file mode 100644 index 0000000000000000000000000000000000000000..308c69cae49aab318919bf3903e5a5599f3e1681 GIT binary patch literal 16362 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 literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug_M32C_Simulator/Debug_M32C_Simulator.hdp b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug_M32C_Simulator/Debug_M32C_Simulator.hdp new file mode 100644 index 0000000000000000000000000000000000000000..3a85b1f44b96d3a0cad313fd1726cbcd5e7a97bd GIT binary patch literal 1748 zcmchYL2H9R5QT-Fdu^}&fk>*i-a=CdDWT9@1=*Ns+}3qBGqY`fNPlqGN+CiI6Ir4c zU6t?c5Z^YxeFsNs{$cVefz)w1Z@A0JHk`1v(%_ zX^&6CX^qn@V4(aRPZ4MXScE%H#hvLo0s%Wbh(yJ3+<1mB5zSr50^Mn*nnjvcQ#GAr zE<|6%is5z`P7fm5a_Y{8x$fs##IaL3X9in$;#faNko4<9Xg=MET-ZcF_FdeYA_87& gm|j1^f5OTtbsN!ynIe-diuui`$rluIxf>Vx58U=*1poj5 literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/DefaultSession.hsf b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/DefaultSession.hsf new file mode 100644 index 00000000..8b2bf658 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/DefaultSession.hsf @@ -0,0 +1,99 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"2.3" +[SESSION_DETAILS] +"" +[INFORMATION] +"" +[GENERAL_DATA] +"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlECX_MAP_FIND_SYMBOL_LIST" "" +"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlViews" "0" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBatchFileName" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointFlag" "-1 " +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointStatus" "-1 " +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBrowseDirectory" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlLogFileName" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlSplitterPosition" "242" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlViews" "0" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}TclTkCtrlLogFileName" "" +"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" "" +"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileName" "" +"{7943C44E-7D44-422A-9140-4CF55C88F7D3}DifferenceCtrlViews" "0" +[LANGUAGE] +"English" +[CONFIG_INFO_VD1] +1 +[CONFIG_INFO_VD2] +0 +[CONFIG_INFO_VD3] +0 +[CONFIG_INFO_VD4] +0 +[WINDOW_POSITION_STATE_DATA_VD1] +"Help" "TOOLBAR 0" 59419 2 3 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 412 534 373 350 200 18 0 "36756|36757|36758|36759|<>|36746|36747|<>|39531|<>|39500|39534|<>|36687" "0.0" +"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 218 534 373 350 200 18 0 "" "0.0" +"{WK_TB00000001_STANDARD}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000002_EDITOR}" "TOOLBAR 0" 59419 0 0 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000003_BOOKMARKS}" "TOOLBAR 0" 59419 1 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000004_TEMPLATES}" "TOOLBAR 0" 59419 1 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000005_SEARCH}" "TOOLBAR 0" 59419 0 1 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000007_DEBUG}" "TOOLBAR 0" 59419 2 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000008_DEBUGRUN}" "TOOLBAR 0" 59419 2 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000009_VERSIONCONTROL}" "TOOLBAR 0" 59419 1 3 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000012_MAP}" "TOOLBAR 0" 59419 1 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000018_DEFAULTWINDOW}" "TOOLBAR 0" 59419 1 2 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000026_MACRO}" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000028_RTOSDEBUG}" "TOOLBAR 0" 59419 2 2 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000029_SYSTEMTOOL}" "TOOLBAR 0" 59419 2 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" +[WINDOW_POSITION_STATE_DATA_VD2] +[WINDOW_POSITION_STATE_DATA_VD3] +[WINDOW_POSITION_STATE_DATA_VD4] +[WINDOW_Z_ORDER] +[TARGET_NAME] +"" "" 1182035557 +[STATUSBAR_STATEINFO_VD1] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD2] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD3] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD4] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_DEBUGGER_PANESTATE_VD1] +[STATUSBAR_DEBUGGER_PANESTATE_VD2] +[STATUSBAR_DEBUGGER_PANESTATE_VD3] +[STATUSBAR_DEBUGGER_PANESTATE_VD4] +[DEBUGGER_OPTIONS] +"" +[DOWNLOAD_MODULES] +[CONNECT_ON_GO] +"FALSE" +[DOWNLOAD_MODULES_AFTER_BUILD] +"TRUE" +[REMOVE_BREAKPOINTS_ON_DOWNLOAD] +"FALSE" +[DISABLE_MEMORY_ACCESS_PRIOR_TO_COMMAND_FILE_EXECUTION] +"FALSE" +[LIMIT_DISASSEMBLY_MEMORY_ACCESS] +"FALSE" +[DISABLE_MEMORY_ACCESS_DURING_EXECUTION] +"FALSE" +[DEBUGGER_OPTIONS_PROPERTIES] +"1" +[COMMAND_FILES] +[DEFAULT_DEBUG_FORMAT] +"" +[FLASH_DETAILS] +"" 0 0 "" 0 "" 0 0 "" 0 0 0 0 0 0 0 "" "" "" "" "" +[BREAKPOINTS] +[END] diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Readme.txt b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Readme.txt new file mode 100644 index 00000000..67024d4f --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Readme.txt @@ -0,0 +1,40 @@ +-------- PROJECT GENERATOR -------- +PROJECT NAME : hew_tst_sem1 +PROJECT DIRECTORY : E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1 +CPU SERIES : M32C/80 +CPU GROUP : 80 +TOOLCHAIN NAME : Renesas M32C Standard Toolchain +TOOLCHAIN VERSION : 5.42.00 +GENERATION FILES : + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\typedefine.h + define scalar types. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c + initialize for C language. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.h + include some headder files. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c + initialize each sections. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.h + define the macro for initialization of sections. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\stackdef.h + define the size of stack. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c + define the fixed vector table. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\vector.h + define the top address of the interrupt vectors. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\cregdef.h + define the internal registers of MCU. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\sfr32c80.h + define the sfr register. (for C language) + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\sfr32c80.inc + define the sfr register. (for Assembler language) + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\heapdef.h + initialize the heap area. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c + interrupt program. + E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\hew_tst_sem1.c + main program file. + +SELECT TARGET : + M32C Simulator +DATE & TIME : 2/27/2014 11:51:11 AM diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Release/Release.hdp b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Release/Release.hdp new file mode 100644 index 0000000000000000000000000000000000000000..d816f0a60c635d5caa307111c8f780937f667ac1 GIT binary patch literal 1722 zcmchYPfNo<5XA$Yz3MezprIx=Z$*Wo6ro-h%9>8i+Wps^iHe`zjZtWB(`9LLNR}l0 z-ag*ET-4S4`{7pj;NGDn6q1~wE`Z!(>3glq0EZrsjvvg7M1ml^3-Jrn)UD{?b3^ep z9Pf}e2)R&AV V%p{s>(af(VO}@aG%hzd<{{U=#Sh)ZI literal 0 HcmV?d00001 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SIM308.INI b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SIM308.INI new file mode 100644 index 00000000..0ba365ca --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SIM308.INI @@ -0,0 +1,2 @@ +[INIT] +ATEXIT=1 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.hsf b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.hsf new file mode 100644 index 00000000..e76cb597 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.hsf @@ -0,0 +1,261 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"2.3" +[SESSION_DETAILS] +"" +[INFORMATION] +"" +[GENERAL_DATA] +"FIRST_CONNECTION_TAG" "NO" +"RESET_CPU_AFTER_DOWNLOAD_TAG" "VARIANT_TRUE_STORE_TAG" +"{06B7701B-5400-4F73-A98D-DFB20141B565}PDTaskTraceCtrlAnalyzeViews" "0" +"{06B7701B-5400-4F73-A98D-DFB20141B565}PDTaskTraceCtrlTraceViews" "0" +"{18AEA759-3561-4CC5-9908-97D74B956935}PDCoverageCtrlViews" "0" +"{1D0B3B27-B01D-4E8C-8848-E2E7F5EEFD73}PDOutputPortCtrlViews" "1" +"{1D0B3B27-B01D-4E8C-8848-E2E7F5EEFD73}PDOutputPortWnd0OportColumn" "0,0,0,0,16,16,16,16,16,16,16,16,1,1,1,0" +"{1D0B3B27-B01D-4E8C-8848-E2E7F5EEFD73}PDOutputPortWnd0OportData" "1, 1, 1" +"{1D0B3B27-B01D-4E8C-8848-E2E7F5EEFD73}PDOutputPortWnd0OportTempDir" "C:\Users\hernajua\AppData\Local\Temp" +"{1D0B3B27-B01D-4E8C-8848-E2E7F5EEFD73}PDOutputPortWnd0OportType" "1" +"{1D0B3B27-B01D-4E8C-8848-E2E7F5EEFD73}PDOutputPortWndInstanceKey0" "{WK_00000001_PDOUTPUTPORT}hew_tst_sem1SessionM32C_Simulator" +"{210D75A5-E8B6-462A-A69C-EFB481B02BD1}PDScriptCtrlViews" "0" +"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlECX_MAP_FIND_SYMBOL_LIST" "" +"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlViews" "0" +"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusCtrlViews" "0" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBatchFileName" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointFlag" "-1 " +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointStatus" "-1 " +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBrowseDirectory" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlLogFileName" "" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlSplitterPosition" "242" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlViews" "1" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlWindowProperties" "17" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineWndInstanceKey0" "{WK_00000001_CmdLine}" +"{313F4FC1-6566-11D5-8BBE-0004E2013C71}TclTkCtrlLogFileName" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_COMPARE_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_COMPARE_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_DEST_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_FILL_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_FILL_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_MOVE_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_MOVE_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SEARCH_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SEARCH_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SET_DEST_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_TEST_END_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_TEST_START_ADDRESS" "" +"{313F4FC2-6566-11D5-8BBE-0004E2013C71}MemoryCtrlViews" "0" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorCtrlViews" "1" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndRRAM Monitor AreaCount" "1" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndRRAM Monitor AreaSize0" "1" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndRRAM Monitor AreaStart0" "00000400" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0DataLength" "1" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0DispAddressTopPane" "1024" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0DispCode" "42208" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0DispColumnCount" "16" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0IsDispCode" "1" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0IsDispFloat" "0" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0IsDispLabel" "0" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0IsDispRegister" "0" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0LabelWidth" "96" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0Radix" "16" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0RegisterWidth" "96" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0Sampling" "100" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0ScrollEndAddress" "2047" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewA0ScrollStartAddress" "1024" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewAInstanceKey0" "{WK_00000001_RAMMONITOR}hew_tst_sem1SessionM32C_Simulator" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0DataLength" "1" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0DispAddressTopPane" "1024" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0DispCode" "42208" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0DispColumnCount" "16" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0IsDispCode" "1" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0IsDispFloat" "0" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0IsDispLabel" "0" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0IsDispRegister" "0" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0LabelWidth" "96" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0Radix" "16" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0RegisterWidth" "96" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0Sampling" "100" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0ScrollEndAddress" "2047" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewB0ScrollStartAddress" "1024" +"{348532CE-10A4-4D46-B946-95A8279582D2}RamMonitorWndViewBInstanceKey0" "{WK_00000001_RAMMONITOR}hew_tst_sem1SessionM32C_SimulatorViewB" +"{55384715-F881-421C-A548-D7D1ABE158E1}PDMRCtrlViews" "0" +"{5A6890B2-17C2-4AB3-B941-0F899F6A3D76}PDSwbreakwinCtrlViews" "0" +"{5F04F1E1-BD88-46BA-A9C2-A5DDBFED8D0C}PDMRTraceCtrlAnalyzeViews" "0" +"{5F04F1E1-BD88-46BA-A9C2-A5DDBFED8D0C}PDMRTraceCtrlTraceViews" "0" +"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" "" +"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileName" "" +"{7943C44E-7D44-422A-9140-4CF55C88F7D3}DifferenceCtrlViews" "0" +"{811C3B34-DDC2-42E9-8FA8-7AEAA822FF18}PDDataTraceCtrlViews" "0" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE" "00000000,00000000,0,0" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_ADDRESS_NAME" "" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_COMB_ADDRESS" ",,,," +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_COMB_BUFFER" ",,,," +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_SAMPLING_RATE" "1000" +"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}WaveformCtrlViews" "0" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersCtrlViews" "1" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0ColumnWidth" "51,61,36" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0ECX_REGISTER_COUNT" "36" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0ECX_REGISTER_DISPLAYED" "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0HideFLAGs" "0" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0HideRadix" "0" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0LastFileName" "" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0RadixList" "16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,2,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16," +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndInstanceKey0" "{WK_00000001_REGISTERS}hew_tst_sem1SessionM32C_Simulator" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0ColumnWidth" "51,61,36" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0ECX_REGISTER_COUNT" "36" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0ECX_REGISTER_DISPLAYED" "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0HideFLAGs" "0" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0HideRadix" "0" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0LastFileName" "" +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0RadixList" "16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,2,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16," +"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewBInstanceKey0" "{WK_00000001_REGISTERS}hew_tst_sem1SessionM32C_SimulatorViewB" +"{98DFB68C-498C-4346-A6B8-C7260C534267}PDTraceCtrlViews" "0" +"{99F424FE-E727-45AE-AE1F-11E29DEF272C}ECX_GuiIO_SAMPLING_RATE" "1000" +"{99F424FE-E727-45AE-AE1F-11E29DEF272C}PDGuiIOCtrlPDGuiIOLastSaveDirectory" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\led.pnl" +"{99F424FE-E727-45AE-AE1F-11E29DEF272C}PDGuiIOCtrlViews" "1" +"{99F424FE-E727-45AE-AE1F-11E29DEF272C}PDGuiIOWndInstanceKey0" "{WK_00000001_PDGUIIO}hew_tst_sem1SessionM32C_Simulator" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_ADDRESS_NAME" "" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_BUFFER" "00000000,00000000,0,0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COLOR" "0,0,0,0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COMB_ADDRESS" ",,,," +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COMB_PALETTE" ",,,," +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_PALETTE_NAME" "" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_REDRAW_CONTINUOUSLY" "0,2" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_SAMPLEING_RATE" "1000" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_VIEW" "0,0,0,0,0,0" +"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ImageCtrlViews" "0" +"{B13462A1-157A-4D86-9BA3-66117A68F1A2}FirstLoadOnV103" "0" +"{BFEEE25F-801F-44A7-A6F1-D8C60837CD32}PDHWBreakCtrlViews" "0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataInputAddrDataNum" "0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataInputColor" "8421504,65535,16777215,0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataInputCycleDataNum" "0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataInputIntrDataNum" "0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataInputMode" "0, 0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataInputView" "0,20,1,20,1,20,0,0,0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataIntrAddrDataNum" "0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataIntrColor" "8421504,65535,16777215,0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataIntrCycleDataNum" "0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataIntrMode" "0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataIntrView" "0,20,1,20,0,0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataIoScriptFileNum" "0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataOutputColor" "8421504,65535,16777215,0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataOutputCycleDataNum" "0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataOutputMode" "0, 0" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataSimpleTimer0" "E 00000017 1 10 m" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataSimpleTimerNum" "1" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}EcxPDIOTimingDataTimerTempDir" "C:\Users\hernajua\AppData\Local\Temp" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}PDIOTimingCtrlViews" "1" +"{C27248CC-BDC9-414E-A340-12AFD36A7AF8}PDIOTimingWndInstanceKey0" "{WK_00000001_PDIOTIMING}hew_tst_sem1SessionM32C_Simulator" +"{C62E6398-F79C-4FAB-801E-8B1A464777C3}CWatchCtrlViews" "0" +"{C62E6398-F79C-4FAB-801E-8B1A464777C3}CWatchWnd_InitialRadix" "Default" +"{C62E6398-F79C-4FAB-801E-8B1A464777C3}CWatchWnd_TAB" "Global,File Local,Local," +"{D465B72E-4328-4D5D-B49F-992C2C8B1EE9}ASMWatchCtrlViews" "0" +"{D465B72E-4328-4D5D-B49F-992C2C8B1EE9}ASMWatchWnd_AddressArea" "1" +"{D465B72E-4328-4D5D-B49F-992C2C8B1EE9}ASMWatchWnd_PointNum" "0" +"{D465B72E-4328-4D5D-B49F-992C2C8B1EE9}ASMWatchWnd_RramEnable" "1" +"{D465B72E-4328-4D5D-B49F-992C2C8B1EE9}ASMWatchWnd_Sampling" "100" +"{D465B72E-4328-4D5D-B49F-992C2C8B1EE9}ASMWatchWnd_SizeArea" "1" +"{D465B72E-4328-4D5D-B49F-992C2C8B1EE9}ECX_ASMWATCH_DLG_BIT_ADDR" "" +"{D465B72E-4328-4D5D-B49F-992C2C8B1EE9}ECX_ASMWATCH_DLG_SYMBOL_ADDR" "" +"{E6D16242-FB42-44CE-B289-ED9FE8563816}MR308DXCtrlViews" "0" +"{EEDC9301-6FBE-11D5-8613-00A024591A38}StackTraceCtrlViews" "0" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlIOFile" "" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlSaveFileDir" "$(CONFIGDIR)" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlSaveFileName" "" +"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlViews" "0" +[LANGUAGE] +"English" +[CONFIG_INFO_VD1] +1 +[CONFIG_INFO_VD2] +0 +[CONFIG_INFO_VD3] +0 +[CONFIG_INFO_VD4] +0 +[WINDOW_POSITION_STATE_DATA_VD1] +"Help" "TOOLBAR 0" 59419 2 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_00000001_CmdLine}" "WINDOW" 59422 0 2 "0.01" 412 0 0 350 200 17 0 "32771|32772|32778|<>|32773|32774|<>|32820|<>|32801|32824" "0.0" +"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 1 "0.21" 412 534 373 350 200 18 0 "36756|36757|36758|36759|<>|36746|36747|<>|39531|<>|39500|39534|<>|36687" "0.0" +"{WK_00000001_PDGUIIO}hew_tst_sem1SessionM32C_Simulator" "WINDOW" 59422 0 0 "0.18" 412 0 0 350 200 18 0 "45607|45602|<>|45605|45609|45606|45610|<>|<>|45601|45600|<>" "0.0" +"{WK_00000001_PDIOTIMING}hew_tst_sem1SessionM32C_Simulator" "WINDOW" 59422 0 5 "0.24" 412 0 0 350 200 18 0 "32771|32772|32773|<>|32774|<>|32775|32776|32778|<>|32777|32801" "0.0" +"{WK_00000001_PDOUTPUTPORT}hew_tst_sem1SessionM32C_Simulator" "WINDOW" 59422 0 3 "0.15" 412 0 0 350 200 18 0 "45717|45722|45718|45719|45720|45721" "0.0" +"{WK_00000001_RAMMONITOR}hew_tst_sem1SessionM32C_Simulator" "WINDOW" 59422 0 4 "0.23" 412 0 0 350 200 18 0 "45930|45931|<>|42302|42303|42300|<>|42202|42203|42204|42233|<>|42206|42205|42230|42229|42207|<>|42208|42209|42210|42227|42228|42231|42232|<>" "0.0" +"{WK_00000001_REGISTERS}hew_tst_sem1SessionM32C_Simulator" "WINDOW" 59421 0 0 "1.00" 208 0 0 350 200 18 0 "" "0.0" +"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 255 534 373 350 200 18 0 "" "0.0" +"{WK_TB00000001_STANDARD}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000002_EDITOR}" "TOOLBAR 0" 59419 0 0 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000003_BOOKMARKS}" "TOOLBAR 0" 59419 1 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000004_TEMPLATES}" "TOOLBAR 0" 59419 1 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000005_SEARCH}" "TOOLBAR 0" 59419 0 1 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000007_DEBUG}" "TOOLBAR 0" 59419 2 0 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000008_DEBUGRUN}" "TOOLBAR 0" 59419 2 1 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000009_VERSIONCONTROL}" "TOOLBAR 0" 59419 1 3 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000011_CPU}" "TOOLBAR 0" 59419 2 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000012_MAP}" "TOOLBAR 0" 59419 1 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000013_SYMBOL}" "TOOLBAR 0" 59419 2 3 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000014_CODE}" "TOOLBAR 0" 59419 2 8 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000016_GRAPHIC}" "TOOLBAR 0" 59419 2 7 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000018_DEFAULTWINDOW}" "TOOLBAR 0" 59419 1 2 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000021_TRACE}" "TOOLBAR 0" 59419 2 10 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000022_BREAK}" "TOOLBAR 0" 59419 2 9 "0.00" 0 0 0 0 0 18 0 "" "0.0" +"{WK_TB00000023_RTOS}" "TOOLBAR 0" 59419 2 11 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000026_MACRO}" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000028_RTOSDEBUG}" "TOOLBAR 0" 59419 2 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000029_SYSTEMTOOL}" "TOOLBAR 0" 59419 2 6 "0.00" 0 0 0 0 0 17 0 "" "0.0" +[WINDOW_POSITION_STATE_DATA_VD2] +[WINDOW_POSITION_STATE_DATA_VD3] +[WINDOW_POSITION_STATE_DATA_VD4] +[WINDOW_Z_ORDER] +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" +[TARGET_NAME] +"M32C Simulator" "" 0 +[STATUSBAR_STATEINFO_VD1] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD2] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD3] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_STATEINFO_VD4] +"MasterShowState" 1 +"ApplicationShowState" 1 +"DebuggerShowState" 1 +[STATUSBAR_DEBUGGER_PANESTATE_VD1] +[STATUSBAR_DEBUGGER_PANESTATE_VD2] +[STATUSBAR_DEBUGGER_PANESTATE_VD3] +[STATUSBAR_DEBUGGER_PANESTATE_VD4] +[DEBUGGER_OPTIONS] +"Unknown Options" +[DOWNLOAD_MODULES] +"$(CONFIGDIR)\$(PROJECTNAME).x30" 0 "IEEE695_RENESAS" 0 0 1 0 +[CONNECT_ON_GO] +"FALSE" +[DOWNLOAD_MODULES_AFTER_BUILD] +"TRUE" +[REMOVE_BREAKPOINTS_ON_DOWNLOAD] +"TRUE" +[DISABLE_MEMORY_ACCESS_PRIOR_TO_COMMAND_FILE_EXECUTION] +"FALSE" +[LIMIT_DISASSEMBLY_MEMORY_ACCESS] +"FALSE" +[DISABLE_MEMORY_ACCESS_DURING_EXECUTION] +"FALSE" +[DEBUGGER_OPTIONS_PROPERTIES] +"1" +[COMMAND_FILES] +[DEFAULT_DEBUG_FORMAT] +"IEEE695_RENESAS" +[FLASH_DETAILS] +"" 0 0 "" 0 "" 0 0 "" 0 0 0 0 0 0 0 "" "" "" "" "" +[BREAKPOINTS] +[END] diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.ini b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.ini new file mode 100644 index 00000000..6843984d --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.ini @@ -0,0 +1,13 @@ +[OTHER] +FMT=5 +OMF=14 +DISP_DA_FMT=1 +HIDE=0 +LOADFILE=E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\hew_tst_sem1.x30 +LOADMODE=4 +[MCU] +PATH=C:\Program Files (x86)\Renesas\Hew\Tools\Renesas\DebugComp\Platform\PDTarget\PD308SIM\McuFiles\M32c8x.mcu +NAME=M32c8x.mcu +[INIT] +MCUCYCLE=20 +MCUDIVIDING=1 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/cregdef.h b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/cregdef.h new file mode 100644 index 00000000..2bfc97bc --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/cregdef.h @@ -0,0 +1,38 @@ +/***********************************************************************/ +/* */ +/* FILE :cregdef.h */ +/* DATE :Thu, Feb 27, 2014 */ +/* DESCRIPTION :define the internal registers of MCU. */ +/* CPU GROUP :80 */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.18). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/***********************************************************************/ + +/********************************************************************* + * STARTUP for M32C/9X + * Copyright (C) 2004 (2010) Renesas Electronics Corporation. + * and Renesas Solutions Corporation. All rights reserved. + * + * cregdef.h : defined control register + * + * note: Do not modify + * + * $Date: 2005/11/01 04:35:51 $ + * $Revision: 1.6 $ + *********************************************************************/ + +#pragma CREG _flg_ flg +#pragma CREG _isp_ isp +#pragma CREG _sp_ sp +#pragma CREG _sb_ sb +#pragma CREG _fb_ fb +#pragma CREG _intb_ intb +_UINT _flg_; +_UBYTE _far * _sb_; +_UBYTE _far * _fb_; +_UINT *_sp_; +_UINT *_isp_; +_UBYTE _far *_intb_; + + diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/fvector.c b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/fvector.c new file mode 100644 index 00000000..fbc33ebe --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/fvector.c @@ -0,0 +1,42 @@ +/***********************************************************************/ +/* */ +/* FILE :fvector.c */ +/* DATE :Thu, Feb 27, 2014 */ +/* DESCRIPTION :define the fixed vector table. */ +/* CPU GROUP :80 */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.18). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/***********************************************************************/ + +/******************************************************************** + * M16C/M32C + * Copyright (C) 2004 (2010) Renesas Electronics Corporation. + * and Renesas Solutions Corporation. All rights reserved. + * + * resetprg.c : startup file + * + * Function:initialize each function + * + * $Date: 2005/11/01 04:35:50 $ + * $Revision: 1.7 $ + ********************************************************************/ +#include "vector.h" +#pragma sectaddress fvector,ROMDATA Fvectaddr + +//////////////////////////////////////////////////////////////////// + +#pragma interrupt/v _dummy_int //udi +#pragma interrupt/v _dummy_int //over_flow +#pragma interrupt/v _dummy_int //brki +#pragma interrupt/v _dummy_int //address_match +#pragma interrupt/v _dummy_int //single_step +#pragma interrupt/v _dummy_int //wdt +#pragma interrupt/v _dummy_int //dbc +#pragma interrupt/v _dummy_int //nmi +#pragma interrupt/v start //reset + + +#pragma interrupt _dummy_int() +void _dummy_int(void){} + diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/heapdef.h b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/heapdef.h new file mode 100644 index 00000000..384bb9a0 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/heapdef.h @@ -0,0 +1,48 @@ +/***********************************************************************/ +/* */ +/* FILE :heapdef.h */ +/* DATE :Thu, Feb 27, 2014 */ +/* DESCRIPTION :initialize the heap area. */ +/* CPU GROUP :80 */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.18). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/***********************************************************************/ +/********************************************************************* +* +* Device : M32C/80,M16C/80,M16C/70 +* +* File Name : heapdef.h +* +* Abstract : heap size definition +* +* History : 1.90 (2010-03-01) +* +* NOTE : THIS IS A TYPICAL EXAMPLE. +* +* Copyright (C) 2004 (2010) Renesas Electronics Corporation. +* and Renesas Solutions Corporation. All rights reserved. +* +*********************************************************************/ +#ifdef __HEAP__ +extern _UBYTE _far * _mnext; +extern _UDWORD _msize; +////////////////////////////////////////// +// It's size of heap +// When you want to change size of heap, +// please change this line. +// When you change this line, +// you must modify the value using hex character. + +#ifndef __HEAPSIZE__ +#define __HEAPSIZE__ 0x300UL +#endif +extern _UBYTE heap_area[__HEAPSIZE__]; +_inline void heap_init(void); +_inline void heap_init(void) +{ + _mnext = &heap_area[0]; + _msize = __HEAPSIZE__; +} + +#endif diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.hwp b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.hwp new file mode 100644 index 00000000..01ac5953 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.hwp @@ -0,0 +1,272 @@ +[HIMDBVersion] +2.0 +[DATABASE_VERSION] +"2.8" +[PROJECT_DETAILS] +"hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\hew_tst_sem1.hwp" "M16C/80,M32C" "Renesas M32C Standard" "C source startup Application" "M32C/80" "M32C/80" +[INFORMATION] +"No project information available" +[TOOL_CHAIN] +"Renesas M32C Standard Toolchain" "5.42.00" +[CONFIGURATIONS] +"Debug" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" +"Debug_M32C_Simulator" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug_M32C_Simulator" +"Release" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Release" +[BUILD_PHASES] +"Renesas M32C Assembler" 1 +"Renesas M32C C Compiler" 1 +"Renesas M32C Configurator" 1 +"Renesas M32C Librarian" 1 +"Renesas M32C Linker" 1 +"Renesas M32C Stype Converter" 1 +[TOOL_ENVIRONMENT] +[EXTENSIONS] +"Absolute file" "X30" +"Absolute list file" "ALS" +"Assembler error tag file" "ATG" +"Assembly include file" "INC" +"Assembly list file" "LST" +"Assembly source file" "A30" +"Branch Information file" "JIN" +"C header file" "H" +"C source file" "C" +"Configuration file" "CFG" +"Cross reference file" "XRF" +"Hex file" "HEX" +"ID file" "ID" +"Library file" "LIB" +"Library list file" "LLS" +"Linkage error tag file" "LTG" +"Linkage map file" "MAP" +"Preprocessed C source file" "I" +"Relocatable file" "R30" +"S-Record file" "MOT" +"Systemcall file" "MRC" +[FILE_GROUPS] +"Absolute file" "BIN" "NONE" "" +"Absolute list file" "TEXT" "EDITOR" "" +"Assembler error tag file" "TEXT" "EDITOR" "" +"Assembly include file" "TEXT" "EDITOR" "" +"Assembly list file" "TEXT" "EDITOR" "" +"Assembly source file" "TEXT" "EDITOR" "" +"Branch Information file" "TEXT" "EDITOR" "" +"C header file" "TEXT" "EDITOR" "" +"C source file" "TEXT" "EDITOR" "" +"Configuration file" "TEXT" "EDITOR" "" +"Cross reference file" "TEXT" "EDITOR" "" +"Hex file" "TEXT" "EDITOR" "" +"ID file" "TEXT" "EDITOR" "" +"Library file" "BIN" "NONE" "" +"Library list file" "TEXT" "EDITOR" "" +"Linkage error tag file" "TEXT" "EDITOR" "" +"Linkage map file" "TEXT" "EDITOR" "" +"Preprocessed C source file" "TEXT" "EDITOR" "" +"Relocatable file" "BIN" "NONE" "" +"S-Record file" "TEXT" "EDITOR" "" +"Systemcall file" "TEXT" "EDITOR" "" +[ASSOCIATED_APPLICATIONS] +[TOOLCHAIN_PHASE] +"Renesas M32C Assembler" +"Renesas M32C C Compiler" +"Renesas M32C Configurator" +"Renesas M32C Librarian" +"Renesas M32C Linker" +"Renesas M32C Stype Converter" +[UTILITY_PHASE] +[CUSTOM_PHASES] +[CUSTOM_PHASE_INPUT_GROUP] +[CUSTOM_PHASE_OUTPUT_SYNTAX] +[BUILD_ORDER] +"Renesas M32C C Compiler" 1 +"Renesas M32C Assembler" 1 +"Renesas M32C Linker" 1 +"Renesas M32C Stype Converter" 1 +"Renesas M32C Librarian" 0 +"Renesas M32C Configurator" 0 +[BUILD_PHASE_DETAILS] +"Renesas M32C Assembler" "Assembly source file" 1 +"Renesas M32C C Compiler" "C source file" 1 +"Renesas M32C Configurator" "Configuration file" 0 +"Renesas M32C Librarian" "Relocatable file" 0 +"Renesas M32C Linker" "Relocatable file" 0 +"Renesas M32C Stype Converter" "Absolute file" 0 +[BUILD_FILE_ORDER_Assembly source file] +"Renesas M32C Assembler" 1 +[BUILD_FILE_ORDER_C source file] +"Renesas M32C C Compiler" 1 +[SCRAP] +"Project Generator Setup File" "" +[MAPPINGS] +"Absolute file" "Renesas M32C Stype Converter" "Renesas M32C Linker" +"Assembly source file" "Renesas M32C Assembler" "Renesas M32C C Compiler" +"Relocatable file" "Renesas M32C Librarian" "Renesas M32C Assembler" +"Relocatable file" "Renesas M32C Librarian" "Renesas M32C C Compiler" +"Relocatable file" "Renesas M32C Linker" "Renesas M32C Assembler" +"Relocatable file" "Renesas M32C Linker" "Renesas M32C C Compiler" +[PROJECT_FILES] +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atom.h" "User" "C header file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atommutex.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atommutex.h" "User" "C header file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomport-template.h" "User" "C header file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomqueue.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomqueue.h" "User" "C header file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.h" "User" "C header file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.h" "User" "C header file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport-asm.A30" "User" "Assembly source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport-tests.h" "User" "C header file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.h" "User" "C header file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\stdint.h" "User" "C header file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\tests-main.c" "User" "C source file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\tests\atomtests.h" "User" "C header file" 2 +"E:\projects\atomthreads pull request\atomthreads-master\tests\sem1.c" "User" "C source file" 2 +[FOLDER] +"Assembly source file" "Assembly source file" +"C header file" "C header file" +"C source file" "C source file" +[GENERAL_DATA_PROJECT] +"USE_CUSTOM_LINKAGE_ORDER" "0" +[ON_DEMAND_COMPONENTS_LOADED] +[SYNC_SESSION_NAMES] +[SESSIONS] +"DefaultSession" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\DefaultSession.hsf" 0 +"SessionM32C_Simulator" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\SessionM32C_Simulator.hsf" 0 +[GENERAL_DATA_SESSION_DefaultSession] +[GENERAL_DATA_SESSION_SessionM32C_Simulator] +[OPTIONS_Debug_Renesas M32C Assembler] +"Assembly source file" "00ab06e22b33fc10" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport-asm.A30" "08e4f9442b33fc10" 2 +[OPTIONS_Debug_Renesas M32C C Compiler] +"C source file" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atommutex.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomqueue.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\tests-main.c" "0d0c6cf52b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\tests\sem1.c" "0d0c6cf52b33fc10" 1 +[OPTIONS_Debug_Renesas M32C Configurator] +"Single Shot" "03825b772b33fc10" 6 +[OPTIONS_Debug_Renesas M32C Librarian] +"Single Shot" "03825b772b33fc10" 5 +[OPTIONS_Debug_Renesas M32C Linker] +"Single Shot" "0df19b772b33fc10" 3 +[OPTIONS_Debug_Renesas M32C Stype Converter] +"Single Shot" "0df19b772b33fc10" 4 +[OPTIONS_Debug] +"" 0 +"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON3] " 6 +"[V|VERSION|1] [B|DATALENGTH|1] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] " 4 +"[V|VERSION|1] [B|STARTUPLINK|1] [B|DEBUG|1] [B|MAP-S|1] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).x30^"] [S|INPUTLIBRARY|^"L=nc382lib^"] [S|CPU|M32C80] [S|SECTION_ORDER|^"data_SE=400,bss_SE,data_SO,bss_SO,data_NE,bss_NE,data_NO,bss_NO,stack,istack,heap_NE,rom_NE,rom_NO,data_6E=010000,bss_6E,data_6O,bss_6O,data_FE,bss_FE,data_FO,bss_FO,rom_FE=0fe0000,rom_FO,data_SEI,data_SOI,data_6EI,data_6OI,data_NEI,data_NOI,data_FEI,data_FOI,switch_table,program,interrupt,program_S,vector=0fffd00^"] " 3 +"[V|VERSION|1] [S|LIST|LM] [B|INSPECTOR|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).r30^"] [S|CPU|M32C80] " 2 +"[V|VERSION|1] [S|MODE|CREATE|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] " 5 +"[V|VERSION|2] [S|INCLUDE|^"E:\projects\atomthreads-master\kernel^"|^"E:\projects\atomthreads-master\tests^"|^"E:\projects\atomthreads-master\ports\m32c^"] [S|DEFINE|__STANDARD_IO__|__STACKSIZE__=0X800|__ISTACKSIZE__=0X300|VECTOR_ADR=0x0fffd00|ATOM_STACK_CHECKING|TESTS_LOG_STACK_USAGE] [S|OUTPUT|OBJECTCODE] [B|INSPECTOR|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).r30^"] [S|CPU|M32C80] +" 1 +[EXCLUDED_FILES_Debug] +[LINKAGE_ORDER_Debug] +[GENERAL_DATA_CONFIGURATION_Debug] +[OPTIONS_Debug_M32C_Simulator_Renesas M32C Assembler] +"Assembly source file" "00ab06e22b33fc10" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport-asm.A30" "08e4f9442b33fc10" 2 +[OPTIONS_Debug_M32C_Simulator_Renesas M32C C Compiler] +"C source file" "00ab06e22b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" "0c3547e32b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atommutex.c" "0c3547e32b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomqueue.c" "0c3547e32b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.c" "0c3547e32b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.c" "0c3547e32b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.c" "08e4f9442b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "00ab06e22b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "00ab06e22b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "00ab06e22b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "00ab06e22b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\tests-main.c" "08e4f9442b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\tests\sem1.c" "004e82b42b33fc10" 1 +[OPTIONS_Debug_M32C_Simulator_Renesas M32C Configurator] +"Single Shot" "03825b772b33fc10" 6 +[OPTIONS_Debug_M32C_Simulator_Renesas M32C Librarian] +"Single Shot" "03825b772b33fc10" 5 +[OPTIONS_Debug_M32C_Simulator_Renesas M32C Linker] +"Single Shot" "0df19b772b33fc10" 3 +[OPTIONS_Debug_M32C_Simulator_Renesas M32C Stype Converter] +"Single Shot" "0df19b772b33fc10" 4 +[OPTIONS_Debug_M32C_Simulator] +"" 0 +"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON3] " 6 +"[V|VERSION|1] [B|DATALENGTH|1] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] " 4 +"[V|VERSION|1] [B|STARTUPLINK|1] [B|DEBUG|1] [B|MAP-S|1] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).x30^"] [S|INPUTLIBRARY|^"L=nc382lib^"] [S|CPU|M32C80] [S|SECTION_ORDER|^"data_SE=400,bss_SE,data_SO,bss_SO,data_NE,bss_NE,data_NO,bss_NO,stack,istack,heap_NE,rom_NE,rom_NO,data_6E=010000,bss_6E,data_6O,bss_6O,data_FE,bss_FE,data_FO,bss_FO,rom_FE=0fe0000,rom_FO,data_SEI,data_SOI,data_6EI,data_6OI,data_NEI,data_NOI,data_FEI,data_FOI,switch_table,program,interrupt,program_S,vector=0fffd00^"] " 3 +"[V|VERSION|1] [S|LIST|L|M] [B|INSPECTOR|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).r30^"] [S|CPU|M32C80] " 2 +"[V|VERSION|1] [S|MODE|CREATE|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] " 5 +"[V|VERSION|1] [S|OUTPUT|OBJECTCODE] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).r30^"] [B|INSPECTOR|1] [S|CPU|M32C80] [S|DEFINE|__STANDARD_IO__] [S|DEFINE|__STACKSIZE__=0X800] [S|DEFINE|__ISTACKSIZE__=0X300] [S|DEFINE|VECTOR_ADR=0x0fffd00] " 1 +[EXCLUDED_FILES_Debug_M32C_Simulator] +[LINKAGE_ORDER_Debug_M32C_Simulator] +[GENERAL_DATA_CONFIGURATION_Debug_M32C_Simulator] +[OPTIONS_Release_Renesas M32C Assembler] +"Assembly source file" "00ab06e22b33fc10" 2 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport-asm.A30" "08e4f9442b33fc10" 2 +[OPTIONS_Release_Renesas M32C C Compiler] +"C source file" "00ab06e22b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" "0c3547e32b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atommutex.c" "0c3547e32b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomqueue.c" "0c3547e32b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.c" "0c3547e32b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.c" "0c3547e32b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.c" "08e4f9442b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "00ab06e22b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "00ab06e22b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "00ab06e22b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "00ab06e22b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\tests-main.c" "08e4f9442b33fc10" 1 +"E:\projects\atomthreads pull request\atomthreads-master\tests\sem1.c" "004e82b42b33fc10" 1 +[OPTIONS_Release_Renesas M32C Configurator] +"Single Shot" "03825b772b33fc10" 6 +[OPTIONS_Release_Renesas M32C Librarian] +"Single Shot" "03825b772b33fc10" 5 +[OPTIONS_Release_Renesas M32C Linker] +"Single Shot" "0df19b772b33fc10" 3 +[OPTIONS_Release_Renesas M32C Stype Converter] +"Single Shot" "0df19b772b33fc10" 4 +[OPTIONS_Release] +"" 0 +"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON3] " 6 +"[V|VERSION|1] [B|DATALENGTH|1] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] " 4 +"[V|VERSION|1] [B|STARTUPLINK|1] [B|DEBUG|1] [B|MAP-S|1] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).x30^"] [S|INPUTLIBRARY|^"L=nc382lib^"] [S|CPU|M32C80] [S|SECTION_ORDER|^"data_SE=400,bss_SE,data_SO,bss_SO,data_NE,bss_NE,data_NO,bss_NO,stack,istack,heap_NE,rom_NE,rom_NO,data_6E=010000,bss_6E,data_6O,bss_6O,data_FE,bss_FE,data_FO,bss_FO,rom_FE=0fe0000,rom_FO,data_SEI,data_SOI,data_6EI,data_6OI,data_NEI,data_NOI,data_FEI,data_FOI,switch_table,program,interrupt,program_S,vector=0fffd00^"] " 3 +"[V|VERSION|1] [S|LIST|L|M] [B|INSPECTOR|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).r30^"] [S|CPU|M32C80] " 2 +"[V|VERSION|1] [S|MODE|CREATE|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] " 5 +"[V|VERSION|1] [S|OUTPUT|OBJECTCODE] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).r30^"] [B|INSPECTOR|1] [S|CPU|M32C80] [S|DEFINE|__STANDARD_IO__] [S|DEFINE|__STACKSIZE__=0X800] [S|DEFINE|__ISTACKSIZE__=0X300] [S|DEFINE|VECTOR_ADR=0x0fffd00] " 1 +[EXCLUDED_FILES_Release] +[LINKAGE_ORDER_Release] +[GENERAL_DATA_CONFIGURATION_Release] +[GENERAL_DATA_CONFIGURATION_SESSION_Debug_DefaultSession] +[SESSION_DATA_CONFIGURATION_SESSION_Debug_DefaultSession] +"MEMORY_MAPPING_OPTIONS" "" +[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionM32C_Simulator] +[SESSION_DATA_CONFIGURATION_SESSION_Debug_SessionM32C_Simulator] +"MEMORY_MAPPING_OPTIONS" "Unknown Options" +[GENERAL_DATA_CONFIGURATION_SESSION_Debug_M32C_Simulator_DefaultSession] +[SESSION_DATA_CONFIGURATION_SESSION_Debug_M32C_Simulator_DefaultSession] +"MEMORY_MAPPING_OPTIONS" "" +[GENERAL_DATA_CONFIGURATION_SESSION_Debug_M32C_Simulator_SessionM32C_Simulator] +[SESSION_DATA_CONFIGURATION_SESSION_Debug_M32C_Simulator_SessionM32C_Simulator] +"MEMORY_MAPPING_OPTIONS" "Unknown Options" +[GENERAL_DATA_CONFIGURATION_SESSION_Release_DefaultSession] +[SESSION_DATA_CONFIGURATION_SESSION_Release_DefaultSession] +"MEMORY_MAPPING_OPTIONS" "" +[GENERAL_DATA_CONFIGURATION_SESSION_Release_SessionM32C_Simulator] +[SESSION_DATA_CONFIGURATION_SESSION_Release_SessionM32C_Simulator] +"MEMORY_MAPPING_OPTIONS" "Unknown Options" +[EXT_DEBUGGER_INFO] +0 "" "" "" "" +[END] diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.nav b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.nav new file mode 100644 index 0000000000000000000000000000000000000000..8167a30dd38cef028619761caedbb5445411370b GIT binary patch literal 29757 zcmc&+U5s1Db(U<$@~^DO@?Yx6^iSgDMv^(h|FPqG#l8C@ahEHSD|uyA*Ie@MF1`F& zU0&)ZbPeul~>^355u4L;ZL8%Np7*WSvKA`SI%;~l|j3wx!p#gSnk1H9W;ARHQOkz zUR@{~=1PR4HU`a~Rn5yrsa)z|Um7$PL%p(TYyzkl>c*hmQyjEpC=*{Av=V3oQ5OU4 zR@aPTZ*=)VJBYesENqlkuN$WMMffe!Z4X*KX`1D&4P((*GR@bx(cM9#6K1KrxVm1( zB}J6?h8Yy+?nYzWz(>_7ch!wz(aaUrVPVU^!!3R5-?Lma@Mgy<%K5ORH;}d0@Yo=4L*&o?Bha8<3U@xyxV;DSmMa3Ws10SE_GZXI%60O3_$Y zG@%R@fXJ;~4(=P~iF(T+DbvYv10QW@5T~ZY9%PV8n9kcl29E+l#&j}4zdyYer#Z7w z%9%?=12Shlw2mc_Q5@F^;VG8N!LoErGo5Ec_LfLuPy`0Ahq+{(x(b;nOiYHl&HsFam$b3 zdmnXYN?VXd!1HSEa>?9)eXL~U#C-g?%5u2kjdEPy-uS#~*-H+Q7QVXlNV&LalsTF& z4Ib)x!4p@F9FzicVX-K>CSTQfG8b9u zwyI9O-Ey0+M_|PGg*&$VdhvFm`#=wE@!XW$R+7kwVjcplsK zzGwJSkm1YRu-gIbMx)+=ftX$DdHr-Uuej&+XOnp)Jg>hD@;c>>u-2@^JWI^$p_A@e z63-IlHo}t66jNh_C7&G@gQ1qs@o{#W&3h&&qkjks;MTW7+`Qg8=sM=UbZ>mYPK zH^AjA{K05T&cZiFTXGh@KH8GA@cW}J`MUn@Xv?HG_d7wBuXxPD+$~V(uGMnPdK)R` zRQ%1vj+~jlo!F5R^>-6Ha^C)NVnClpyiGAm0!2P=X}-gZycbixLF74P_>u1bMvU zE_}tV?&aE06Yn~uJ9VeJH|L)E%DId4k#?hII@RrSk=~D5)*bv&^xruuE??hy1~Z2Z7dCB?gNj{gM*k}aMh>j9-B-Qs=|S z_%N0&$6Gpe5a%L-Mx0!`>qJY?;}1oA(}%dx9fBBrl~dyzQhabVU3$v6S>-B?#&)H; zKgUmFk?OWtt2mYDPlLc5bu@+2Y75p07j8aM2aTAHt5_2vR`<>AwgcKZ7eNO3sAH3pU4}$tY9hNC{>+_^bURkf+`i{nonAiAM|Nz>@_rh9 zo(J_w<>KJ@dEg25{X8ezhy6L6kXuG@uSQmI)lt{c|K&QV_*CW_k6O_?p7-~7M4$JC zJ_a zib%6kZ+TPwBX0M>pxu|$Oh9|lhU~ztUT+!P#^%!?kaszVkkBpc4uG-_T=jYC>D&9b z8T6FiW_s)4fbDuXu5C5ja8h(t`9R!fgK#|}p(dNvgRV!=IX*X^Xgqnr1Vw{{x9&q# zW5`1T)XqiAB>|du`yNjqIM_g0fU@e*fh#u_( zK`jq~+OX?wyY4(_uwr=+xM}o10s{zB7^=~7=Q{?z7*&sqvq1sQtFna+$$^u)*FN{_ z);nm$ct)9n>i5CG;Vc;DdJxP@I9+!O!l7UXFU0cOTr9rGXZt3=JO4enAN1t-9{2MV z4X?O5?cH5CF{owcvq4qk*#Euu5c!z0I7_f3OR+S|uq-1nMhGL6kvJm>Mv{!A7)djd zVI<3Fj8VcUWi-xcg3%r&&D1;#ro6u>@fW z$`TMU!4gT9NU=nkB{D3LWyu&z5|*Sa8D~itP?9B6ESYA>3`=HND#lWTr6^0qZ?aV4 z;}i@y#ZqaO%CJion&d4PnxAOES+VU7|Rfrp)3<;nFPxuSti9Y zFx?ExWLY-GvV>(R%f?wY!Lmt~O|fj6Wq}Q(1NevmAu(Vi29(5rlNgW^16E={OAL64 zft|}6*dcRB9dd`{A$v$4@&^PGV2}WX1UMu>A^{c&&`5ws0z?vEk^q$ixFkR(0X7NH zNq|oRgc4ws0Hp*tB|s_xRteBbfL8*<5@419wFI~&KrR7x3D8S`UjhUZV3+{K1UM!@ zG69we&`f}50z?yFngG=VxF$gMP24=h1_DZQzrF&0KLdZZEOz6-Zhr(%kUKYUU-xpP zbG})@{@}(z+lF5>7HjO;Fn%zl&xiA)FN0rV{Be3iMh<@~q$B+tI9?b(BGy-YpI|Z<`Xab! z&Hy}FdOIO`VVdalc|g}(H=%#6?(@MvH&u9gMnAl)`k;kprwUI`1N@B<>YT8Ha_${i zKt0@0pq4*7|Zle*g@mj0nj5q~$ zoEjVmU?vnV%V+?iI6ivkMfY5ZCr2dU?NDwM-wHlIRx~`7V$XrE4o&1i@x|fHh!{#a zcP9rkt+y~-`Vh`E1j_#X6QTP&sCIW&@x}g_#pu(1%NP{189hZ zcBQe9uCT&i2G@5(PzHCZx4rDA`00bgL68DK-^xi9XqIT-FRoF9G1DhV}5L?CP|TDSnbphbZNCwX7MC;-_^kg=JMq8{UW+ zTHz>u=-_hL(GA&Tb9(XUMZlX?vMP5+3r7-`z6W8o_DTew5iK2VeR*3$Zvs>yER<5N zMR~y91s_Fe#-uj@^NNOX_IFwMkXt({y$-0iG>mn;El^xZZyiNcif=kEhn=fZ2(g#H zrVoqas~u$x<3fq|owzoq1WfTWUY)QbRx)uM)yPXN$X0xh;Rxc=BE;2NB|t$}^kdQu zz|_%@-l2=^PY;`Z1lXZl z1*MvL|A~7sz8s_#k?sMazI=co;(NK;j0>Ok08DOxs?(0p}{CN9PQVbH8rS9uP9>qx@VgBgbHb&mwg#;i#0g{8;-^M8_m z5x;+2YkzR;QYUrkzdt=r1Ipk79ybZs_y|{}7n7He!dLU_6*2{3qZM>b<>V{IKRInw zxQ3uj`i^=orBL2$e??%;FD3L8Dk-1ds>&qLJPGAyROm)yPb!$#k-4&w6rkGg>`3<) zU;D` z`WvN*6oprZVB`g(n9p<``~K^lfBW`zdjI%D%PU13Vtu6V?AJ%u2%YOA=QEY{p<;c= zi1btXC4364|m#?du zSTRz`(^HJhz)paiN4}(_^iJd4S*dq)Q&uaTidyBO=uxYL(@_HDYfeJ0x_U1xEqoW( zm{oG_A+k#PYHpE-G!KV-1@M!f|MJhfP&1Dp!(?{r5SM&hBb1;6R47(1r#{6>$O+Wt z>+zcH3YeqX(?_s-$to5}DXbk`5(I0+@UDd2A z#IP&P37ZpTLzvb=%M3Z1$7y1*XLTx49&CxwGgr8zT(iQdP`IvF*~Auf1Q{banw2ob zrJeHpVS*h^Y_PI_n>f*BML*03slY1LW!EsW<&PbnQL9nO{do7vWL;SeB2b~ z!4b49-~92#w>ogP(R_tD>>5$C9(tR&yjIs7p{F>RG@Th8YUL47d1#=u=?7f#%y3q% z%8(Z>G68goSCEwI-v7xZ@#r?3>gn`VFBPL%lReeT2uGkv8GBaR5vi!8gN_pHdj_sK V$K-SQS@G1%F}Xxxb4>16\n"\ + " push.w #(sizeof "X")&0ffffH\n"\ + " pusha (topof "X")\n"\ + " .stk 8\n"\ + " .glb _bzero\n"\ + " .call _bzero,G\n"\ + " jsr.a _bzero\n"\ + " add.l #8H,sp\n"\ + " .stk -8"); + + +#define scopy(X,Y,Z) _asm(" .initsct "X","Y","Z"\n"\ + " .initsct "X"I,rom"Y",noalign\n"\ + " mov.l #(topof "X"I),A0\n"\ + " mov.l #(topof "X"),A1\n"\ + " mov.w #sizeof "X",R3\n"\ + " smovf.b"); + +#define scopy_f(X,Y,Z) _asm(" .initsct "X","Y","Z"\n"\ + " .initsct "X"I,rom"Y",noalign\n"\ + " push.w #(sizeof "X") >> 16\n"\ + " push.w #(sizeof "X") & 0ffffH\n"\ + " pusha (topof "X")\n"\ + " pusha (topof "X"I)\n"\ + " .stk 12\n"\ + " .glb _bcopy\n"\ + " .call _bcopy,G\n"\ + " jsr.a _bcopy\n"\ + " add.l #8H,sp\n"\ + " .stk -12"); + diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/intprg.c b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/intprg.c new file mode 100644 index 00000000..f621ddab --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/intprg.c @@ -0,0 +1,224 @@ +/***********************************************************************/ +/* */ +/* FILE :intprg.c */ +/* DATE :Thu, Feb 27, 2014 */ +/* DESCRIPTION :interrupt program. */ +/* CPU GROUP :80 */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.18). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/***********************************************************************/ + +/*************************************************************************** + * COMPILER for M16C/80,M32C/80 + * Copyright (C) 2004 (2010) Renesas Electronics Corporation. + * and Renesas Solutions Corporation. All rights reserved. * + * intprg.c : define variable vector table for M32C/80 + * + * + * $Date: 2005/11/24 07:15:36 $ + * $Revision: 1.4 $ + **************************************************************************/ + +// BRK (software int 0) +#pragma interrupt _brk(vect=0) +void _brk(void){} + +// vector 1 reserved +// vector 2 reserved +// vector 3 reserved +// vector 4 reserved +// vector 5 reserved +// vector 6 reserved +// vector 7 reserved + +// DMA0 (software int 8) +#pragma interrupt _dma0(vect=8) +void _dma0(void){} + +// DMA1 (software int 9) +#pragma interrupt _dma1(vect=9) +void _dma1(void){} + +// DMA2 (software int 10) +#pragma interrupt _dma2(vect=10) +void _dma2(void){} + +// DMA3 (software int 11) +#pragma interrupt _dma3(vect=11) +void _dma3(void){} + +// TIMER A0 (software int 12) +#pragma interrupt _timer_a0(vect=12) +void _timer_a0(void){} + +// TIMER A1 (software int 13) +#pragma interrupt _timer_a1(vect=13) +void _timer_a1(void){} + +// TIMER A2 (software int 14) +#pragma interrupt _timer_a2(vect=14) +void _timer_a2(void){} + +// TIMER A3 (software int 15) +#pragma interrupt _timer_a3(vect=15) +void _timer_a3(void){} + +// TIMER A4 (software int 16) +#pragma interrupt _timer_a4(vect=16) +void _timer_a4(void){} + +#if defined (__STANDARD_IO__) && (defined(__FOUSB__) || defined(__E8__)) +// uart0 can't be used +#else +// uart0 trance/NACK (software int 17) +#pragma interrupt _uart0_trance(vect=17) +void _uart0_trance(void){} +#endif + +// uart0 receive/ACK (software int 18) +#pragma interrupt _uart0_receive(vect=18) +void _uart0_receive(void){} + +#if defined(__STANDARD_IO__) || defined(__FOUSB__) || defined(__E8__) +// uart1 can't be used +#else +// uart1 trance/NACK (software int 19) +#pragma interrupt _uart1_trance(vect=19) +void _uart1_trance(void){} +#endif + +// uart1 receive/ACK (software int 20) +#pragma interrupt _uart1_receive(vect=20) +void _uart1_receive(void){} + +// TIMER B0 (software int 21) +#pragma interrupt _timer_b0(vect=21) +void _timer_b0(void){} + +// TIMER B1 (software int 22) +#pragma interrupt _timer_b1(vect=22) +void _timer_b1(void){} + +#if 0 +// TIMER B2 (software int 23) +#pragma interrupt _timer_b2(vect=23) +void _timer_b2(void){} +#endif + +// TIMER B3 (software int 24) +#pragma interrupt _timer_b3(vect=24) +void _timer_b3(void){} + +// TIMER B4 (software int 25) +#pragma interrupt _timer_b4(vect=25) +void _timer_b4(void){} + +// INT5 (software int 26) +#pragma interrupt _int5(vect=26) +void _int5(void){} + +// INT4 (software int 27) +#pragma interrupt _int4(vect=27) +void _int4(void){} + +// INT3 (software int 28) +#pragma interrupt _int3(vect=28) +void _int3(void){} + +// INT2 (software int 29) +#pragma interrupt _int2(vect=29) +void _int2(void){} + +// INT1 (software int 30) +#pragma interrupt _int1(vect=30) +void _int1(void){} + +// INT0 (software int 31) +#pragma interrupt _int0(vect=31) +void _int0(void){} + +// Timer B5 (software int 32) +#pragma interrupt _timer_b5(vect=32) +void _timer_b5(void){} + +// uart2 trance/NACK (software int 33) +#pragma interrupt _uart2_trance(vect=33) +void _uart2_trance(void){} + +// uart2 receive/ACK (software int 34) +#pragma interrupt _uart2_receive(vect=34) +void _uart2_receive(void){} + +// uart3 trance/NACK (software int 35) +#pragma interrupt _uart3_trance(vect=35) +void _uart3_trance(void){} + +// uart3 receive/ACK (software int 36) +#pragma interrupt _uart3_receive(vect=36) +void _uart3_receive(void){} + +// uart4 trance/NACK (software int 37) +#pragma interrupt _uart4_trance(vect=37) +void _uart4_trance(void){} + +// uart4 receive/ACK (software int 38) +#pragma interrupt _uart4_receive(vect=38) +void _uart4_receive(void){} + +// Bus Collision/start/stop condition(uart2) (software int 39) +#pragma interrupt _bus_collision_u2(vect=39) +void _bus_collision_u2(void){} + +// Bus Collision/start/stop condition(uart3 or uart0) (software int 40) +#pragma interrupt _bus_collision_u3(vect=40) +void _bus_collision_u3(void){} + +// Bus Collision/start/stop condition(uart4 or uart1) (software int 41) +#pragma interrupt _bus_collision_u4(vect=41) +void _bus_collision_u4(void){} + +// A-D (software int 42) +#pragma interrupt _ad_converter(vect=42) +void _ad_converter(void){} + +// input key (software int 43) +#pragma interrupt _input_key(vect=43) +void _input_key(void){} + +// intelligent I/O interrupt 0 (software int 44) +#pragma interrupt _intelligent_io_int0(vect=44) +void _intelligent_io_int0(void){} + +// intelligent I/O interrupt 1 (software int 45) +#pragma interrupt _intelligent_io_int1(vect=45) +void _intelligent_io_int1(void){} + +// intelligent I/O interrupt 2 (software int 46) +#pragma interrupt _intelligent_io_int2(vect=46) +void _intelligent_io_int2(void){} + +// intelligent I/O interrupt 3 (software int 47) +#pragma interrupt _intelligent_io_int3(vect=47) +void _intelligent_io_int3(void){} + +// intelligent I/O interrupt 4 (software int 48) +#pragma interrupt _intelligent_io_int4(vect=48) +void _intelligent_io_int4(void){} + +// software int 49 for user +// software int 50 for user +// software int 51 for user +// software int 52 for user +// software int 53 for user +// software int 54 for user +// software int 55 for user or MR308 +// software int 56 for user +// software int 57 for user +// software int 58 for user or MR308 +// software int 59 for user or MR308 +// software int 60 for user or MR308 +// software int 61 for user or MR308 +// software int 62 for user or MR308 +// software int 63 for user or MR308 + diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg.c b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg.c new file mode 100644 index 00000000..48d61ba9 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg.c @@ -0,0 +1,87 @@ +/***********************************************************************/ +/* */ +/* FILE :resetprg.c */ +/* DATE :Thu, Feb 27, 2014 */ +/* DESCRIPTION :initialize for C language. */ +/* CPU GROUP :80 */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.18). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/***********************************************************************/ + +/********************************************************************* + * STARTUP for M32C + * Copyright (C) 2004 (2010) Renesas Electronics Corporation. + * and Renesas Solutions Corporation. All rights reserved. * + * + * restprg.c : startup file + * + * Function:initialize each function + * + * $Date: 2006/06/16 03:10:49 $ + * $Revision: 1.16 $ + ********************************************************************/ +#include "resetprg.h" +//////////////////////////////////////////// +// declare sfr register +#pragma ADDRESS protect 0AH +#pragma ADDRESS pmode0 04H +#pragma ADDRESS _SB__ 0400H +_UBYTE protect,pmode0; +_UBYTE _SB__; + +DEF_SBREGISTER; + +#pragma entry start +void start(void); +extern void initsct(void); +extern void _init(void); +void exit(void); +void main(void); + +#pragma section program interrupt +#pragma inline set_cpu() +void set_cpu(void) +{ + _isp_ = &_istack_top; // set interrupt stack pointer + protect = 0x02; // change protect mode register + pmode0 = 0x00; // set processor mode register + protect = 0x00; // change protect mode register + _flg_ = 0x0080; // set flag register + _sp_ = &_stack_top; // set user stack pointer + _sb_ = (char _far *)0x400; // 400H fixation (Do not change) + _asm(" fset b"); + _sb_ = (char _far *)0x400; + _asm(" fclr b"); + _intb_ = (char _far *)VECTOR_ADR; // set variable vector's address + +} + +void start(void) +{ + set_cpu(); // initialize mcu + initsct(); // initlalize each sections + _sp_ = &_stack_top; // set user stack pointer +#ifdef __HEAP__ + heap_init(); // initialize heap +#endif +#ifdef __STANDARD_IO__ + _init(); // initialize standard I/O +#endif + _fb_ = 0; // initialize FB registe for debugger + main(); // call main routine + + exit(); // infinite loop +} + +void exit(void) +{ + while(1); +} + + +//////////////////////////////////////////////////// +// declaration dummy function as interrupt routine +#pragma INTERRUPT dummy() +void dummy(void){} + diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg.h b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg.h new file mode 100644 index 00000000..0b017445 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg.h @@ -0,0 +1,35 @@ +/***********************************************************************/ +/* */ +/* FILE :resetprg.h */ +/* DATE :Thu, Feb 27, 2014 */ +/* DESCRIPTION :include some headder files. */ +/* CPU GROUP :80 */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.18). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/***********************************************************************/ + +/*********************************************************************** + * startup for M32C/90,M32C/80,M16C/80,M16C/70 + * Copyright (C) 2004 (2010) Renesas Electronics Corporation. + * and Renesas Solutions Corporation. All rights reserved. + * + * resetprg.h : include any headder files + * + * Function: include any Headder files and prototype difinition + * + * $Date: 2005/11/25 10:26:31 $ + * $Revision: 1.9 $ + **********************************************************************/ +/////////////////////////////////////////////// +// include some header files. +// declare prototype difinition +// +#include "typedefine.h" +#include "heapdef.h" +#include "cregdef.h" +#include "stackdef.h" +#include "vector.h" + +#define DEF_SBREGISTER _asm(" .glb __SB__\n"\ + "__SB__ .equ 0400H") diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/sfr32c80.h b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/sfr32c80.h new file mode 100644 index 00000000..f7da2bda --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/sfr32c80.h @@ -0,0 +1,3688 @@ +/***********************************************************************/ +/* */ +/* FILE :sfr32c80.h */ +/* DATE :Thu, Feb 27, 2014 */ +/* DESCRIPTION :define the sfr register. (for C language) */ +/* CPU GROUP :80 */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.18). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/***********************************************************************/ + +/************************************************************************************ +* * +* File name : sfr32c80.h * +* Contents : Definition of M32C/80 Group SFR * +* * +* Copyright (C) 2003 (2010) Renesas Electronics Corporation. * +* and Renesas Solutions Corporation. All rights reserved. * +* * +* Note : * +* * +* Version : Ver 0.01 (05-12-08) Preliminary * +* These data made based on M32C/80 Group H/W Manual Rev.1.0 * +* * +*************************************************************************************/ +/* + note: + This data is a freeware that SFR for M32C/80 group are described. + RENESAS ELECTRONICS CORPORATION and RENESAS SOLUTIONS CORPORATION assume + no responsibility for any damage that occurred by this data. +*/ + +/************************************************************************ +* declare SFR address * +************************************************************************/ +#pragma ADDRESS pm0_addr 0004H /* Processor mode register 0 */ +#pragma ADDRESS pm1_addr 0005H /* Processor mode register 1 */ +#pragma ADDRESS cm0_addr 0006H /* System clock control register 0 */ +#pragma ADDRESS cm1_addr 0007H /* System clock control register 1 */ + +#pragma ADDRESS aier_addr 0009H /* Address match interrupt enable register */ +#pragma ADDRESS prcr_addr 000aH /* Protect register */ +#pragma ADDRESS ds_addr 000bH /* External data bus width control register */ +#pragma ADDRESS mcd_addr 000cH /* Main clock division register */ +#pragma ADDRESS cm2_addr 000dH /* Oscillation stop detect register */ +#pragma ADDRESS wdts_addr 000eH /* Watchdog timer start register */ +#pragma ADDRESS wdc_addr 000fH /* Watchdog timer control register */ +#pragma ADDRESS rmad0_addr 0010H /* Address match interrupt register 0 */ +#pragma ADDRESS pm2_addr 0013H /* Processor mode register 2 */ +#pragma ADDRESS rmad1_addr 0014H /* Address match interrupt register 1 */ +#pragma ADDRESS vcr2_addr 0017H /* Voltage detection register 2 */ +#pragma ADDRESS rmad2_addr 0018H /* Address match interrupt register 2 */ +#pragma ADDRESS vcr1_addr 001bH /* Voltage detection register 1 */ +#pragma ADDRESS rmad3_addr 001cH /* Address match interrupt register 3 */ + +#pragma ADDRESS plc_addr 0026H /* PLL control register */ +#pragma ADDRESS plc0_addr 0026H /* PLL control register 0 */ +#pragma ADDRESS plc1_addr 0027H /* PLL control register 1 */ +#pragma ADDRESS rmad4_addr 0028H /* Address match interrupt register 4 */ + +#pragma ADDRESS rmad5_addr 002CH /* Address match interrupt register 5 */ + +#pragma ADDRESS rmad6_addr 0038H /* Address match interrupt register 6 */ +#pragma ADDRESS rmad7_addr 003CH /* Address match interrupt register 7 */ + +#pragma ADDRESS ewcr0_addr 0048H /* External space wait control register 0 */ +#pragma ADDRESS ewcr1_addr 0049H /* External space wait control register 1 */ +#pragma ADDRESS ewcr2_addr 004AH /* External space wait control register 2 */ +#pragma ADDRESS ewcr3_addr 004BH /* External space wait control register 3 */ + +#pragma ADDRESS dm0ic_addr 0068H /* DMA0 interrupt control register */ +#pragma ADDRESS tb5ic_addr 0069H /* Timer B5 interrupt register */ +#pragma ADDRESS dm2ic_addr 006aH /* DMA2 interrupt register */ +#pragma ADDRESS s2ric_addr 006bH /* UART2 receive/ack interrupt control register */ +#pragma ADDRESS ta0ic_addr 006cH /* Timer A0 interrupt control register */ +#pragma ADDRESS s3ric_addr 006dH /* UART3 receive/ack interrupt control register */ +#pragma ADDRESS ta2ic_addr 006eH /* Timer A2 interrupt control register */ +#pragma ADDRESS s4ric_addr 006fH /* UART4 receive/ack interrupt control register */ +#pragma ADDRESS ta4ic_addr 0070H /* Timer A4 interrupt control register */ +#pragma ADDRESS bcn0ic_addr 0071H /* Bus collision (UART0) interrupt control register */ +#pragma ADDRESS bcn3ic_addr 0071H /* Bus collision (UART3) interrupt control register */ +#pragma ADDRESS s0ric_addr 0072H /* UART0 receive interrupt control register */ +#pragma ADDRESS ad0ic_addr 0073H /* A/D0 conversion interrupt control register */ +#pragma ADDRESS s1ric_addr 0074H /* UART1 receive interrupt control register */ +#pragma ADDRESS iio0ic_addr 0075H /* Intelligent I/O interrupt control register 0 */ +#pragma ADDRESS tb1ic_addr 0076H /* Timer B1 interrupt control register */ +#pragma ADDRESS iio2ic_addr 0077H /* Intelligent I/O interrupt control register 2 */ +#pragma ADDRESS tb3ic_addr 0078H /* Timer B3 interrupt control register */ +#pragma ADDRESS iio4ic_addr 0079H /* Intelligent I/O interrupt control register 4 */ +#pragma ADDRESS int5ic_addr 007aH /* INT5~ interrupt control register */ + +#pragma ADDRESS int3ic_addr 007cH /* INT3~ interrupt control register */ +#pragma ADDRESS int1ic_addr 007eH /* INT1~ interrupt control register */ + +#pragma ADDRESS dm1ic_addr 0088H /* DMA1 interrupt control register */ +#pragma ADDRESS s2tic_addr 0089H /* UART2 transmit/nack interrupt control register */ +#pragma ADDRESS dm3ic_addr 008aH /* DMA3 interrupt control register */ +#pragma ADDRESS s3tic_addr 008bH /* UART3 transmit/nack interrupt control register */ +#pragma ADDRESS ta1ic_addr 008cH /* Timer A1 interrupt control register */ +#pragma ADDRESS s4tic_addr 008dH /* UART4 transmit/nack interrupt control register */ +#pragma ADDRESS ta3ic_addr 008eH /* Timer A3 interrupt control register */ +#pragma ADDRESS bcn2ic_addr 008fH /* Bus collision (UART2) interrupt control register */ +#pragma ADDRESS s0tic_addr 0090H /* UART0 transmit interrupt control register */ +#pragma ADDRESS bcn1ic_addr 0091H /* Bus collision (UART1) interrupt control register*/ +#pragma ADDRESS bcn4ic_addr 0091H /* Bus collision (UART4) interrupt control register */ +#pragma ADDRESS s1tic_addr 0092H /* UART1 transmit interrupt control register */ +#pragma ADDRESS kupic_addr 0093H /* Key input interrupt control register */ +#pragma ADDRESS tb0ic_addr 0094H /* Timer B0 interrupt control register */ +#pragma ADDRESS iio1ic_addr 0095H /* Intelligent I/O interrupt control register 1 */ +#pragma ADDRESS tb2ic_addr 0096H /* Timer B2 interrupt control register */ +#pragma ADDRESS iio3ic_addr 0097H /* Intelligent I/O interrupt control register 3 */ +#pragma ADDRESS tb4ic_addr 0098H /* Timer B4 interrupt control register */ +#pragma ADDRESS int4ic_addr 009aH /* INT4~ interrupt control register */ + +#pragma ADDRESS int2ic_addr 009cH /* INT2~ interrupt control register */ +#pragma ADDRESS int0ic_addr 009eH /* INT0~ interrupt control register */ +#pragma ADDRESS rlvl_addr 009fH /* Exit priority register */ +#pragma ADDRESS iio0ir_addr 00a0H /* Interrupt request register 0 */ +#pragma ADDRESS iio1ir_addr 00a1H /* Interrupt request register 1 */ +#pragma ADDRESS iio2ir_addr 00a2H /* Interrupt request register 2 */ +#pragma ADDRESS iio3ir_addr 00a3H /* Interrupt request register 3 */ +#pragma ADDRESS iio4ir_addr 00a4H /* Interrupt request register 4 */ +#pragma ADDRESS iio5ir_addr 00a5H /* Interrupt request register 5 */ + +#pragma ADDRESS iio0ie_addr 00b0H /* Interrupt enable register 0 */ +#pragma ADDRESS iio1ie_addr 00b1H /* Interrupt enable register 1 */ +#pragma ADDRESS iio2ie_addr 00b2H /* Interrupt enable register 2 */ +#pragma ADDRESS iio3ie_addr 00b3H /* Interrupt enable register 3 */ +#pragma ADDRESS iio4ie_addr 00b4H /* Interrupt enable register 4 */ + +#pragma ADDRESS g0rb_addr 00e8H /* SI/O receive buffer register 0 */ +#pragma ADDRESS g0tb_addr 00eaH /* Transmit buffer register 0 */ +#pragma ADDRESS g0dr_addr 00eaH /* Receive data register 0 */ + +#pragma ADDRESS g0ri_addr 00ecH /* Receive input register 0 */ +#pragma ADDRESS g0mr_addr 00edH /* SI/O communication control register 0 */ +#pragma ADDRESS g0to_addr 00eeH /* Transmit output register 0 */ +#pragma ADDRESS g0cr_addr 00efH /* SI/O communication control register 0 */ +#pragma ADDRESS g0cmp0_addr 00f0H /* Data compare register 00 */ +#pragma ADDRESS g0cmp1_addr 00f1H /* Data compare register 01 */ +#pragma ADDRESS g0cmp2_addr 00f2H /* Data compare register 02 */ +#pragma ADDRESS g0cmp3_addr 00f3H /* Data compare register 03 */ +#pragma ADDRESS g0msk0_addr 00f4H /* Data mask register 00 */ +#pragma ADDRESS g0msk1_addr 00f5H /* Data mask register 01 */ +#pragma ADDRESS ccs_addr 00f6H /* Communication clock select register */ + +#pragma ADDRESS g0rcrc_addr 00f8H /* Receive CRC code register 0 */ +#pragma ADDRESS g0tcrc_addr 00faH /* Transmit CRC code register 0 */ +#pragma ADDRESS g0emr_addr 00fcH /* SI/O expansion mode register 0 */ +#pragma ADDRESS g0erc_addr 00fdH /* SI/O expansion receive control register 0 */ +#pragma ADDRESS g0irf_addr 00feH /* SI/O special communication interrupt detect register 0 */ +#pragma ADDRESS g0etc_addr 00ffH /* SI/O expansion transmit control register 0 */ + +#pragma ADDRESS g1rb_addr 0128H /* SI/O receive buffer register 1 */ +#pragma ADDRESS g1tb_addr 012aH /* Transmit buffer register 1 */ +#pragma ADDRESS g1dr_addr 012aH /* Receive data register 1 */ + +#pragma ADDRESS g1ri_addr 012cH /* Receive input register 1 */ +#pragma ADDRESS g1mr_addr 012dH /* SI/O communication mode register 1 */ +#pragma ADDRESS g1to_addr 012eH /* Transmit output register 1 */ +#pragma ADDRESS g1cr_addr 012fH /* SI/O communication control register 1 */ +#pragma ADDRESS g1cmp0_addr 0130H /* Data compare register 10 */ +#pragma ADDRESS g1cmp1_addr 0131H /* Data compare register 11 */ +#pragma ADDRESS g1cmp2_addr 0132H /* Data compare register 12 */ +#pragma ADDRESS g1cmp3_addr 0133H /* Data compare register 13 */ +#pragma ADDRESS g1msk0_addr 0134H /* Data mask register 10 */ +#pragma ADDRESS g1msk1_addr 0135H /* Data mask register 11 */ + +#pragma ADDRESS g1rcrc_addr 0138H /* Receive CRC code register 1 */ +#pragma ADDRESS g1tcrc_addr 013aH /* Transmit CRC code register 1 */ +#pragma ADDRESS g1emr_addr 013cH /* SI/O extended mode register 1 */ +#pragma ADDRESS g1erc_addr 013dH /* SI/O extended receive control register 1 */ +#pragma ADDRESS g1irf_addr 013eH /* SI/O special communication interrupt detect register 1 */ +#pragma ADDRESS g1etc_addr 013fH /* SI/O extended transmit control register 1 */ + +/************************************************************************ +* * +************************************************************************/ +#pragma ADDRESS x0r_addr 02c0H /* X0 register */ +#pragma ADDRESS y0r_addr 02c0H /* Y0 register */ +#pragma ADDRESS x1r_addr 02c2H /* X1 register */ +#pragma ADDRESS y1r_addr 02c2H /* Y1 register */ +#pragma ADDRESS x2r_addr 02c4H /* X2 register */ +#pragma ADDRESS y2r_addr 02c4H /* Y2 register */ +#pragma ADDRESS x3r_addr 02c6H /* X3 register */ +#pragma ADDRESS y3r_addr 02c6H /* Y3 register */ +#pragma ADDRESS x4r_addr 02c8H /* X4 register */ +#pragma ADDRESS y4r_addr 02c8H /* Y4 register */ +#pragma ADDRESS x5r_addr 02caH /* X5 register */ +#pragma ADDRESS y5r_addr 02caH /* Y5 register */ +#pragma ADDRESS x6r_addr 02ccH /* X6 register */ +#pragma ADDRESS y6r_addr 02ccH /* Y6 register */ +#pragma ADDRESS x7r_addr 02ceH /* X7 register */ +#pragma ADDRESS y7r_addr 02ceH /* Y7 register */ +#pragma ADDRESS x8r_addr 02d0H /* X8 register */ +#pragma ADDRESS y8r_addr 02d0H /* Y8 register */ +#pragma ADDRESS x9r_addr 02d2H /* X9 register */ +#pragma ADDRESS y9r_addr 02d2H /* Y9 register */ +#pragma ADDRESS x10r_addr 02d4H /* X10 register */ +#pragma ADDRESS y10r_addr 02d4H /* Y10 register */ +#pragma ADDRESS x11r_addr 02d6H /* X11 register */ +#pragma ADDRESS y11r_addr 02d6H /* Y11 register */ +#pragma ADDRESS x12r_addr 02d8H /* X12 register */ +#pragma ADDRESS y12r_addr 02d8H /* Y12 register */ +#pragma ADDRESS x13r_addr 02daH /* X13 register */ +#pragma ADDRESS y13r_addr 02daH /* Y13 register */ +#pragma ADDRESS x14r_addr 02dcH /* X14 register */ +#pragma ADDRESS y14r_addr 02dcH /* Y14 register */ +#pragma ADDRESS x15r_addr 02deH /* X15 register */ +#pragma ADDRESS y15r_addr 02deH /* Y15 register */ +#pragma ADDRESS xyc_addr 02e0H /* X-Y control register */ + +#pragma ADDRESS u1smr4_addr 02e4H /* UART1 special mode register 4 */ +#pragma ADDRESS u1smr3_addr 02e5H /* UART1 special mode register 3 */ +#pragma ADDRESS u1smr2_addr 02e6H /* UART1 special mode register 2 */ +#pragma ADDRESS u1smr_addr 02e7H /* UART1 special mode register */ +#pragma ADDRESS u1mr_addr 02e8H /* UART1 transmit/receive mode register */ +#pragma ADDRESS u1brg_addr 02e9H /* UART1 bit rate generator */ +#pragma ADDRESS u1tb_addr 02eaH /* UART1 transmit buffer register */ +#pragma ADDRESS u1c0_addr 02ecH /* UART1 transmit/receive control register 0 */ +#pragma ADDRESS u1c1_addr 02edH /* UART1 transmit/receive control register 1 */ +#pragma ADDRESS u1rb_addr 02eeH /* UART1 receive buffer register */ + +#pragma ADDRESS u4smr4_addr 02f4H /* UART4 special mode register 4 */ +#pragma ADDRESS u4smr3_addr 02f5H /* UART4 special mode register 3 */ +#pragma ADDRESS u4smr2_addr 02f6H /* UART4 special mode register 2 */ +#pragma ADDRESS u4smr_addr 02f7H /* UART4 special mode register */ +#pragma ADDRESS u4mr_addr 02f8H /* UART4 transmit/receive mode register */ +#pragma ADDRESS u4brg_addr 02f9H /* UART4 bit rate generator */ +#pragma ADDRESS u4tb_addr 02faH /* UART4 transmit buffer register */ +#pragma ADDRESS u4c0_addr 02fcH /* UART4 transmit/receive control register 0 */ +#pragma ADDRESS u4c1_addr 02fdH /* UART4 transmit/receive control register 1 */ +#pragma ADDRESS u4rb_addr 02feH /* UART4 receive buffer register */ + +#pragma ADDRESS tbsr_addr 0300H /* Timer B3,4,5 count start flag */ + +#pragma ADDRESS ta11_addr 0302H /* Timer A1-1 register */ +#pragma ADDRESS ta21_addr 0304H /* Timer A2-1 register */ +#pragma ADDRESS ta41_addr 0306H /* Timer A4-1 register */ +#pragma ADDRESS invc0_addr 0308H /* Three-phase PWM control register 0 */ +#pragma ADDRESS invc1_addr 0309H /* Three-phase PWM control register 1 */ +#pragma ADDRESS idb0_addr 030aH /* Three-phase output buffer register 0 */ +#pragma ADDRESS idb1_addr 030bH /* Three-phase output buffer register 1 */ +#pragma ADDRESS dtt_addr 030cH /* Dead time timer */ +#pragma ADDRESS ictb2_addr 030dH /* Timer B2 interrupt occurences frequency set counter */ + +#pragma ADDRESS tb3_addr 0310H /* Timer B3 register */ +#pragma ADDRESS tb4_addr 0312H /* Timer B4 register */ +#pragma ADDRESS tb5_addr 0314H /* Timer B5 register */ + +#pragma ADDRESS tb3mr_addr 031bH /* Timer B3 mode register */ +#pragma ADDRESS tb4mr_addr 031cH /* Timer B4 mode register */ +#pragma ADDRESS tb5mr_addr 031dH /* Timer B5 mode register */ + +#pragma ADDRESS ifsr_addr 031fH /* External interrupt request cause select register */ + +#pragma ADDRESS u3smr4_addr 0324H /* UART3 special mode register 4 */ +#pragma ADDRESS u3smr3_addr 0325H /* UART3 special mode register 3 */ +#pragma ADDRESS u3smr2_addr 0326H /* UART3 special mode register 2 */ +#pragma ADDRESS u3smr_addr 0327H /* UART3 special mode register */ +#pragma ADDRESS u3mr_addr 0328H /* UART3 transmit/receive mode register */ +#pragma ADDRESS u3brg_addr 0329H /* UART3 bit rate generator */ +#pragma ADDRESS u3tb_addr 032aH /* UART3 transmit buffer register */ +#pragma ADDRESS u3c0_addr 032cH /* UART3 transmit/receive control register 0 */ +#pragma ADDRESS u3c1_addr 032dH /* UART3 transmit/receive control register 1 */ +#pragma ADDRESS u3rb_addr 032eH /* UART3 receive buffer register */ + +#pragma ADDRESS u2smr4_addr 0334H /* UART2 special mode register 4 */ +#pragma ADDRESS u2smr3_addr 0335H /* UART2 special mode register 3 */ +#pragma ADDRESS u2smr2_addr 0336H /* UART2 special mode register 2 */ +#pragma ADDRESS u2smr_addr 0337H /* UART2 special mode register */ +#pragma ADDRESS u2mr_addr 0338H /* UART2 transmit/receive mode register */ +#pragma ADDRESS u2brg_addr 0339H /* UART2 bit rate generator */ +#pragma ADDRESS u2tb_addr 033aH /* UART2 transmit buffer register */ +#pragma ADDRESS u2c0_addr 033cH /* UART2 transmit/receive control register 0 */ +#pragma ADDRESS u2c1_addr 033dH /* UART2 transmit/receive control register 1 */ +#pragma ADDRESS u2rb_addr 033eH /* UART2 receive buffer register */ +#pragma ADDRESS tabsr_addr 0340H /* Count start flag */ +#pragma ADDRESS cpsrf_addr 0341H /* Clock prescaler reset flag */ +#pragma ADDRESS onsf_addr 0342H /* One-shot start flag */ +#pragma ADDRESS trgsr_addr 0343H /* Trigger select register */ +#pragma ADDRESS udf_addr 0344H /* Up/down flag */ + +#pragma ADDRESS ta0_addr 0346H /* Timer A0 register */ +#pragma ADDRESS ta1_addr 0348H /* Timer A1 register */ +#pragma ADDRESS ta2_addr 034aH /* Timer A2 register */ +#pragma ADDRESS ta3_addr 034cH /* Timer A3 register */ +#pragma ADDRESS ta4_addr 034eH /* Timer A4 register */ +#pragma ADDRESS tb0_addr 0350H /* Timer B0 register */ +#pragma ADDRESS tb1_addr 0352H /* Timer B1 register */ +#pragma ADDRESS tb2_addr 0354H /* Timer B2 register */ +#pragma ADDRESS ta0mr_addr 0356H /* Timer A0 mode register */ +#pragma ADDRESS ta1mr_addr 0357H /* Timer A1 mode register */ +#pragma ADDRESS ta2mr_addr 0358H /* Timer A2 mode register */ +#pragma ADDRESS ta3mr_addr 0359H /* Timer A3 mode register */ +#pragma ADDRESS ta4mr_addr 035aH /* Timer A4 mode register */ +#pragma ADDRESS tb0mr_addr 035bH /* Timer B0 mode register */ +#pragma ADDRESS tb1mr_addr 035cH /* Timer B1 mode register */ +#pragma ADDRESS tb2mr_addr 035dH /* Timer B2 mode register */ +#pragma ADDRESS tb2sc_addr 035eH /* Timer B2 special mode register */ +#pragma ADDRESS tcspr_addr 035fH /* Count source prescaler register */ + +#pragma ADDRESS u0smr4_addr 0364H /* UART0 special mode register 4 */ +#pragma ADDRESS u0smr3_addr 0365H /* UART0 special mode register 3 */ +#pragma ADDRESS u0smr2_addr 0366H /* UART0 special mode register 2 */ +#pragma ADDRESS u0smr_addr 0367H /* UART0 special mode register */ +#pragma ADDRESS u0mr_addr 0368H /* UART0 transmit/receive mode register */ +#pragma ADDRESS u0brg_addr 0369H /* UART0 bit rate generator */ +#pragma ADDRESS u0tb_addr 036aH /* UART0 transmit buffer register */ +#pragma ADDRESS u0c0_addr 036cH /* UART0 transmit/receive control register 0 */ +#pragma ADDRESS u0c1_addr 036dH /* UART0 transmit/receive control register 1 */ +#pragma ADDRESS u0rb_addr 036eH /* UART0 receive buffer register */ + +#pragma ADDRESS dm0sl_addr 0378H /* DMA0 cause select register */ +#pragma ADDRESS dm1sl_addr 0379H /* DMA1 cause select register */ +#pragma ADDRESS dm2sl_addr 037aH /* DMA1 cause select register */ +#pragma ADDRESS dm3sl_addr 037bH /* DMA1 cause select register */ +#pragma ADDRESS crcd_addr 037cH /* CRC data register */ +#pragma ADDRESS crcin_addr 037eH /* CRC input register */ + +#pragma ADDRESS ad00_addr 0380H /* A/D0 register 0 */ +#pragma ADDRESS ad01_addr 0382H /* A/D0 register 1 */ +#pragma ADDRESS ad02_addr 0384H /* A/D0 register 2 */ +#pragma ADDRESS ad03_addr 0386H /* A/D0 register 3 */ +#pragma ADDRESS ad04_addr 0388H /* A/D0 register 4 */ +#pragma ADDRESS ad05_addr 038aH /* A/D0 register 5 */ +#pragma ADDRESS ad06_addr 038cH /* A/D0 register 6 */ +#pragma ADDRESS ad07_addr 038eH /* A/D0 register 7 */ + +#pragma ADDRESS ad0con2_addr 0394H /* A/D0 control register 2 */ +#pragma ADDRESS ad0con3_addr 0395H /* A/D0 control register 3 */ +#pragma ADDRESS ad0con0_addr 0396H /* A/D0 control register 0 */ +#pragma ADDRESS ad0con1_addr 0397H /* A/D0 control register 1 */ +#pragma ADDRESS da0_addr 0398H /* D/A register 0 */ + +#pragma ADDRESS da1_addr 039aH /* D/A register 1 */ + +#pragma ADDRESS dacon_addr 039cH /* D/A control register */ + +#pragma ADDRESS psd1_addr 03a7H /* Function select register D1 */ + +#pragma ADDRESS psc3_addr 03adH /* Function select register C3 */ + +#pragma ADDRESS psc_addr 03afH /* Function select register C */ +#pragma ADDRESS ps0_addr 03b0H /* Function select register A0 */ +#pragma ADDRESS ps1_addr 03b1H /* Function select register A1 */ +#pragma ADDRESS psl0_addr 03b2H /* Function select register B0 */ +#pragma ADDRESS psl1_addr 03b3H /* Function select register B1 */ +#pragma ADDRESS ps2_addr 03b4H /* Function select register A2 */ +#pragma ADDRESS ps3_addr 03b5H /* Function select register A3 */ +#pragma ADDRESS psl2_addr 03b6H /* Function select register B2 */ +#pragma ADDRESS psl3_addr 03b7H /* Function select register B3 */ + +#pragma ADDRESS p6_addr 03c0H /* Port P6 register */ +#pragma ADDRESS p7_addr 03c1H /* Port P7 register */ +#pragma ADDRESS pd6_addr 03c2H /* Port P6 direction register */ +#pragma ADDRESS pd7_addr 03c3H /* Port P7 direction register */ +#pragma ADDRESS p8_addr 03c4H /* Port P8 register */ +#pragma ADDRESS p9_addr 03c5H /* Port P9 register */ +#pragma ADDRESS pd8_addr 03c6H /* Port P8 direction register */ +#pragma ADDRESS pd9_addr 03c7H /* Port P9 direction register */ +#pragma ADDRESS p10_addr 03c8H /* Port P10 register */ +#pragma ADDRESS pd10_addr 03caH /* Port P10 direction register */ + +#pragma ADDRESS pur3_addr 03dbH /* Pull-up control register 3 */ +#pragma ADDRESS pur4_addr 03dcH /* Pull-up control register 4 */ + +#pragma ADDRESS p0_addr 03e0H /* Port P0 register */ +#pragma ADDRESS p1_addr 03e1H /* Port P1 register */ +#pragma ADDRESS pd0_addr 03e2H /* Port P0 direction register */ +#pragma ADDRESS pd1_addr 03e3H /* Port P1 direction register */ +#pragma ADDRESS p2_addr 03e4H /* Port P2 register */ +#pragma ADDRESS p3_addr 03e5H /* Port P3 register */ +#pragma ADDRESS pd2_addr 03e6H /* Port P2 direction register */ +#pragma ADDRESS pd3_addr 03e7H /* Port P3 direction register */ +#pragma ADDRESS p4_addr 03e8H /* Port P4 register */ +#pragma ADDRESS p5_addr 03e9H /* Port P5 register */ +#pragma ADDRESS pd4_addr 03eaH /* Port P4 direction register */ +#pragma ADDRESS pd5_addr 03ebH /* Port P5 direction register */ + +#pragma ADDRESS pur0_addr 03f0H /* Pull-up control register 0 */ +#pragma ADDRESS pur1_addr 03f1H /* Pull-up control register 1 */ + +#pragma ADDRESS pcr_addr 03ffH /* Port control register */ + +/******************************************************* +* declare SFR char * +********************************************************/ +unsigned char da0_addr; /* D/A register 0 */ +#define da0 da0_addr + +unsigned char da1_addr; /* D/A register 1 */ +#define da1 da1_addr + +/******************************************************** +* declare SFR short * +********************************************************/ +/*--------------------------------------------------------------------- + Timer registers ; Read and write to this register in 16-bit units. +-----------------------------------------------------------------------*/ +unsigned short ta11_addr; /* Timer A1-1 register */ +#define ta11 ta11_addr + +unsigned short ta21_addr; /* Timer A2-1 register */ +#define ta21 ta21_addr + +unsigned short ta41_addr; /* Timer A4-1 register */ +#define ta41 ta41_addr + +unsigned short tb3_addr; /* Timer B3 register */ +#define tb3 tb3_addr + +unsigned short tb4_addr; /* Timer B4 register */ +#define tb4 tb4_addr + +unsigned short tb5_addr; /* Timer B5 register */ +#define tb5 tb5_addr + +unsigned short ta0_addr; /* Timer A0 register */ +#define ta0 ta0_addr + +unsigned short ta1_addr; /* Timer A1 register */ +#define ta1 ta1_addr + +unsigned short ta2_addr; /* Timer A2 register */ +#define ta2 ta2_addr + +unsigned short ta3_addr; /* Timer A3 register */ +#define ta3 ta3_addr + +unsigned short ta4_addr; /* Timer A4 register */ +#define ta4 ta4_addr + +unsigned short tb0_addr; /* Timer B0 register */ +#define tb0 tb0_addr + +unsigned short tb1_addr; /* Timer B1 register */ +#define tb1 tb1_addr + +unsigned short tb2_addr; /* Timer B2 register */ +#define tb2 tb2_addr + +/*--------------------------------------------------------------------- + IIO registers ; Read and write to this register in 16-bit units. +-----------------------------------------------------------------------*/ + +/******************************************************** +* group 0 and 1 * +********************************************************/ +#define g0tcrc g0tcrc_addr.word /* Transmit CRC Code Register 0 */ +#define g0tcrcl g0tcrc_addr.byte.low +#define g0tcrch g0tcrc_addr.byte.high + +#define g1tcrc g1tcrc_addr.word /* Transmit CRC Code Register 1 */ +#define g1tcrcl g1tcrc_addr.byte.low +#define g1tcrch g1tcrc_addr.byte.high + +#define g0rcrc g0rcrc_addr.word /* Receive CRC Code Register 0 */ +#define g0rcrcl g0rcrc_addr.byte.low +#define g0rcrch g0rcrc_addr.byte.high + +#define g1rcrc g1rcrc_addr.word /* Receive CRC Code Register 1 */ +#define g1rcrcl g1rcrc_addr.byte.low +#define g1rcrch g1rcrc_addr.byte.high + +/*------------------------------------------------------ + SI/O receive buffer register +------------------------------------------------------*/ + +/*------------------------------------------------------ + SI/O Receive Buffer Register 0 +------------------------------------------------------*/ +#define g0rb g0rb_addr.word +#define g0rbl g0rb_addr.byte.low +#define g0rbh g0rb_addr.byte.high +#define oer_g0rb g0rb_addr.bit.b12 /* Overrun error flag */ + +/*------------------------------------------------------ + SI/O Receive Buffer Register 1 +------------------------------------------------------*/ +#define g1rb g1rb_addr.word +#define g1rbl g1rb_addr.byte.low +#define g1rbh g1rb_addr.byte.high +#define oer_g1rb g1rb_addr.bit.b12 /* Overrun error flag */ +#define fer_g1rb g1rb_addr.bit.b13 /* Framing error flag */ +#define per_g1rb g1rb_addr.bit.b14 /* Parity error flag */ + + +/******************************************************** +* declare SFR bit * +********************************************************/ +struct bit_def { + char b0:1; + char b1:1; + char b2:1; + char b3:1; + char b4:1; + char b5:1; + char b6:1; + char b7:1; +}; +union byte_def{ + struct bit_def bit; + char byte; +}; + +/*------------------------------------------------------ + External Space Wait Control Register 0 +------------------------------------------------------*/ +union byte_def ewcr0_addr; +#define ewcr0 ewcr0_addr.byte + +#define ewcr000 ewcr0_addr.bit.b0 /* (b4-b0) Bus cycle select bit */ +#define ewcr001 ewcr0_addr.bit.b1 +#define ewcr002 ewcr0_addr.bit.b2 +#define ewcr003 ewcr0_addr.bit.b3 +#define ewcr004 ewcr0_addr.bit.b4 + /* (b5) Nothing is assigned */ +#define ewcr006 ewcr0_addr.bit.b6 /* Recovery cycle addition select bit */ + /* (b7) Nothing is assigned */ + +/*------------------------------------------------------ + External Space Wait Control Register 1 +------------------------------------------------------*/ +union byte_def ewcr1_addr; +#define ewcr1 ewcr1_addr.byte + +#define ewcr100 ewcr1_addr.bit.b0 /* (b4-b0) Bus cycle select bit */ +#define ewcr101 ewcr1_addr.bit.b1 +#define ewcr102 ewcr1_addr.bit.b2 +#define ewcr103 ewcr1_addr.bit.b3 +#define ewcr104 ewcr1_addr.bit.b4 + /* (b5) Nothing is assigned */ +#define ewcr106 ewcr1_addr.bit.b6 /* Recovery cycle addition select bit */ + /* (b7) Nothing is assigned */ + +/*------------------------------------------------------ + External Space Wait Control Register 2 +------------------------------------------------------*/ +union byte_def ewcr2_addr; +#define ewcr2 ewcr2_addr.byte + +#define ewcr200 ewcr2_addr.bit.b0 /* (b4-b0) Bus cycle select bit */ +#define ewcr201 ewcr2_addr.bit.b1 +#define ewcr202 ewcr2_addr.bit.b2 +#define ewcr203 ewcr2_addr.bit.b3 +#define ewcr204 ewcr2_addr.bit.b4 + /* (b5) Nothing is assigned */ +#define ewcr206 ewcr2_addr.bit.b6 /* Recovery cycle addition select bit */ + /* (b7) Nothing is assigned */ + +/*------------------------------------------------------ + External Space Wait Control Register 3 +------------------------------------------------------*/ +union byte_def ewcr3_addr; +#define ewcr3 ewcr3_addr.byte + +#define ewcr300 ewcr3_addr.bit.b0 /* (b4-b0) Bus cycle select bit */ +#define ewcr301 ewcr3_addr.bit.b1 +#define ewcr302 ewcr3_addr.bit.b2 +#define ewcr303 ewcr3_addr.bit.b3 +#define ewcr304 ewcr3_addr.bit.b4 + /* (b5) Nothing is assigned */ +#define ewcr306 ewcr3_addr.bit.b6 /* Recovery cycle addition select bit */ + /* (b7) Nothing is assigned */ + +/*------------------------------------------------------ + Processor mode register 0 +------------------------------------------------------*/ +union byte_def pm0_addr; +#define pm0 pm0_addr.byte + +#define pm00 pm0_addr.bit.b0 /* Processor mode bit */ +#define pm01 pm0_addr.bit.b1 /* Processor mode bit */ +#define pm02 pm0_addr.bit.b2 /* R/W mode select bit */ +#define pm03 pm0_addr.bit.b3 /* Software reset bit */ +#define pm04 pm0_addr.bit.b4 /* Multiplexed bus space select bit */ +#define pm05 pm0_addr.bit.b5 /* Multiplexed bus space select bit */ + /* (b6) Reserved bit (Set to 0) */ +#define pm07 pm0_addr.bit.b7 /* BCLK output function select bit */ + +/*------------------------------------------------------ + Processor mode register 1 +------------------------------------------------------*/ +union byte_def pm1_addr; +#define pm1 pm1_addr.byte + +#define pm10 pm1_addr.bit.b0 /* External memory area mode bit */ +#define pm11 pm1_addr.bit.b1 /* External memory area mode bit */ +#define pm12 pm1_addr.bit.b2 /* Internal memory wait bit */ +#define pm13 pm1_addr.bit.b3 /* SFR wait bit */ +#define pm14 pm1_addr.bit.b4 /* ALE pin select bit */ +#define pm15 pm1_addr.bit.b5 /* ALE pin select bit */ + /* (b7-b6) Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + Processor mode register 2 +------------------------------------------------------*/ +union byte_def pm2_addr; +#define pm2 pm2_addr.byte + /* (b0) Reserved bit (Set to 0) */ +#define pm21 pm2_addr.bit.b1 /* System clock protect bit */ +#define pm22 pm2_addr.bit.b2 /* WDT count source protect bit */ + /* (b3) Reserved bit (Set to 0) */ +#define pm24 pm2_addr.bit.b4 /* (b4) CPU clock select bit3 */ +#define pm25 pm2_addr.bit.b5 /* (b5) CAN clock select bit */ +#define pm26 pm2_addr.bit.b6 /* (b7-b6) f2n count source select bit */ +#define pm27 pm2_addr.bit.b7 + +/*------------------------------------------------------ + System clock control register 0 +------------------------------------------------------*/ +union byte_def cm0_addr; +#define cm0 cm0_addr.byte + +#define cm00 cm0_addr.bit.b0 /* Clock output function select bit */ +#define cm01 cm0_addr.bit.b1 /* Clock output function select bit */ +#define cm02 cm0_addr.bit.b2 /* WAIT peripheral function clock stop bit */ +#define cm03 cm0_addr.bit.b3 /* Xcin-Xcout drive capacity select bit */ +#define cm04 cm0_addr.bit.b4 /* Port Xc select bit */ +#define cm05 cm0_addr.bit.b5 /* Main clock stop bit */ +#define cm06 cm0_addr.bit.b6 /* WDT function select bit */ +#define cm07 cm0_addr.bit.b7 /* CPU clock select bit0 */ + +/*------------------------------------------------------ + System clock control register 1 +------------------------------------------------------*/ +union byte_def cm1_addr; +#define cm1 cm1_addr.byte + +#define cm10 cm1_addr.bit.b0 /* All clock stop control bit */ + /* (b4-b1) Reserved bit (Set to 0) */ + /* (b5) Reserved bit (Set to 1) */ + /* (b6) Reserved bit (Set to 0) */ +#define cm17 cm1_addr.bit.b7 /* CPU clock select bit1 */ + +/*------------------------------------------------------ + Oscillation stop detect register +------------------------------------------------------*/ +union byte_def cm2_addr; +#define cm2 cm2_addr.byte + +#define cm20 cm2_addr.bit.b0 /* Oscillation stop detect enable bit */ +#define cm21 cm2_addr.bit.b1 /* CPU clock select bit2 */ +#define cm22 cm2_addr.bit.b2 /* Oscillation stop detect flag */ +#define cm23 cm2_addr.bit.b3 /* Main clock monitor flag */ + /* (b7-b4) Reserved bit (Set to 0) */ + + +/*------------------------------------------------------ + Address match interrupt enable register +------------------------------------------------------*/ +union byte_def aier_addr; +#define aier aier_addr.byte + +#define aier0 aier_addr.bit.b0 /* Address match interrupt 0 enable bit */ +#define aier1 aier_addr.bit.b1 /* Address match interrupt 1 enable bit */ +#define aier2 aier_addr.bit.b2 /* Address match interrupt 2 enable bit */ +#define aier3 aier_addr.bit.b3 /* Address match interrupt 3 enable bit */ +#define aier4 aier_addr.bit.b4 /* Address match interrupt 4 enable bit */ +#define aier5 aier_addr.bit.b5 /* Address match interrupt 5 enable bit */ +#define aier6 aier_addr.bit.b6 /* Address match interrupt 6 enable bit */ +#define aier7 aier_addr.bit.b7 /* Address match interrupt 7 enable bit */ + +/*------------------------------------------------------ + X-Y control register +------------------------------------------------------*/ +union byte_def xyc_addr; +#define xyc xyc_addr.byte + +#define xyc0 xyc_addr.bit.b0 /* Read-mode set bit */ +#define xyc1 xyc_addr.bit.b1 /* Write-mode set bit */ + /* (b7-b2) Nothing is assigned */ + +/*------------------------------------------------------ + Protect register +------------------------------------------------------*/ +union byte_def prcr_addr; +#define prcr prcr_addr.byte + +#define prc0 prcr_addr.bit.b0 /* Protect bit0 */ +#define prc1 prcr_addr.bit.b1 /* Protect bit1 */ +#define prc2 prcr_addr.bit.b2 /* Protect bit2 */ +#define prc3 prcr_addr.bit.b3 /* Protect bit3 */ + /* (b7-b4) Nothing is assigned */ + +/*------------------------------------------------------ + External data bus width control register +------------------------------------------------------*/ +union byte_def ds_addr; +#define ds ds_addr.byte + +#define ds0 ds_addr.bit.b0 /* External space 0 data bus width select bit */ +#define ds1 ds_addr.bit.b1 /* External space 1 data bus width select bit */ +#define ds2 ds_addr.bit.b2 /* External space 2 data bus width select bit */ +#define ds3 ds_addr.bit.b3 /* External space 3 data bus width select bit */ + /* (b7-b4) Nothing is assigned */ + +/*------------------------------------------------------ + Main clock division register +------------------------------------------------------*/ +union byte_def mcd_addr; +#define mcd mcd_addr.byte + +#define mcd0 mcd_addr.bit.b0 /* (b4-b0) Main clock division select bit */ +#define mcd1 mcd_addr.bit.b1 +#define mcd2 mcd_addr.bit.b2 +#define mcd3 mcd_addr.bit.b3 +#define mcd4 mcd_addr.bit.b4 + /* (b7-b5) Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + Count source prescaler register +------------------------------------------------------*/ +union byte_def tcspr_addr; +#define tcspr tcspr_addr.byte + +#define cnt0 tcspr_addr.bit.b0 /* (b3-b0) Divide ratio select bit */ +#define cnt1 tcspr_addr.bit.b1 +#define cnt2 tcspr_addr.bit.b2 +#define cnt3 tcspr_addr.bit.b3 + /* (b6-b4) Reserved bit (Set to 0) */ +#define cst tcspr_addr.bit.b7 /* Operation enable bit */ + +/*------------------------------------------------------ + Exit priority register +------------------------------------------------------*/ +union byte_def rlvl_addr; +#define rlvl rlvl_addr.byte + +#define rlvl0 rlvl_addr.bit.b0 /* (b2-b0) Interrupt priority set bits to exit STOP/WAIT mode */ +#define rlvl1 rlvl_addr.bit.b1 +#define rlvl2 rlvl_addr.bit.b2 +#define fsit rlvl_addr.bit.b3 /* High-speed interrupt set bit */ + /* (b4) Nothing is assigned */ +#define dmaii rlvl_addr.bit.b5 /* DMAC II select bit */ + /* (b7-b6) Nothing is assigned */ + +/*------------------------------------------------------ + External interrupt request cause select register +------------------------------------------------------*/ +union byte_def ifsr_addr; +#define ifsr ifsr_addr.byte + +#define ifsr0 ifsr_addr.bit.b0 /* INT0 interrupt polarity select bit */ +#define ifsr1 ifsr_addr.bit.b1 /* INT1 interrupt polarity select bit */ +#define ifsr2 ifsr_addr.bit.b2 /* INT2 interrupt polarity select bit */ +#define ifsr3 ifsr_addr.bit.b3 /* INT3 interrupt polarity select bit */ +#define ifsr4 ifsr_addr.bit.b4 /* INT4 interrupt polarity select bit */ +#define ifsr5 ifsr_addr.bit.b5 /* INT5 interrupt polarity select bit */ +#define ifsr6 ifsr_addr.bit.b6 /* UART0,3 interrupt cause select bit */ +#define ifsr7 ifsr_addr.bit.b7 /* UART1,4 interrupt cause select bit */ + +/*------------------------------------------------------ + Timer B2 special mode register +------------------------------------------------------*/ +union byte_def tb2sc_addr; +#define tb2sc tb2sc_addr.byte + +#define pwcon tb2sc_addr.bit.b0 /* Timer B2 reload timing switching bit */ + /* (b7-b1) Nothing is assigned */ + +/*------------------------------------------------------ + Watchdog timer start register +------------------------------------------------------*/ +union byte_def wdts_addr; +#define wdts wdts_addr.byte + +/*------------------------------------------------------ + CRC input register +------------------------------------------------------*/ +union byte_def crcin_addr; +#define crcin crcin_addr.byte + +/*------------------------------------------------------ + Watchdog timer control register +------------------------------------------------------*/ +union byte_def wdc_addr; +#define wdc wdc_addr.byte + + /* (b4-b0) High-order bits of the watchdog timer */ +#define wdc5 wdc_addr.bit.b5 /* Cold start/warm start detect flag */ + /* (b6) Reserved bit (Set to 0) */ +#define wdc7 wdc_addr.bit.b7 /* Prescaler select bit */ + +/*------------------------------------------------------ + Voltage detection register 1 +------------------------------------------------------*/ +union byte_def vcr1_addr; +#define vcr1 vcr1_addr.byte + /* (b2-b0) Reserved bit (Set to 0) */ +#define vc13 vcr1_addr.bit.b3 /* Voltage down monitor flag */ + /* (b7-b4) Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + Voltage detection register 2 +------------------------------------------------------*/ +union byte_def vcr2_addr; +#define vcr2 vcr2_addr.byte + /* (b5-b0) Reserved bit (Set to 0) */ +#define vc26 vcr2_addr.bit.b6 /* Reset level monitor bit */ +#define vc27 vcr2_addr.bit.b7 /* Voltage down monitor bit */ + +/*------------------------------------------------------ + Count start flag +------------------------------------------------------*/ +union byte_def tabsr_addr; +#define tabsr tabsr_addr.byte + +#define ta0s tabsr_addr.bit.b0 /* Timer A0 count start flag */ +#define ta1s tabsr_addr.bit.b1 /* Timer A1 count start flag */ +#define ta2s tabsr_addr.bit.b2 /* Timer A2 count start flag */ +#define ta3s tabsr_addr.bit.b3 /* Timer A3 count start flag */ +#define ta4s tabsr_addr.bit.b4 /* Timer A4 count start flag */ +#define tb0s tabsr_addr.bit.b5 /* Timer B0 count start flag */ +#define tb1s tabsr_addr.bit.b6 /* Timer B1 count start flag */ +#define tb2s tabsr_addr.bit.b7 /* Timer B2 count start flag */ + +/*------------------------------------------------------ + Timer B3,4,5 count start flag +------------------------------------------------------*/ +union byte_def tbsr_addr; +#define tbsr tbsr_addr.byte + /* (b4-b0) Nothing is assigned */ +#define tb3s tbsr_addr.bit.b5 /* Timer B3 count start flag */ +#define tb4s tbsr_addr.bit.b6 /* Timer B4 count start flag */ +#define tb5s tbsr_addr.bit.b7 /* Timer B5 count start flag */ + +/*------------------------------------------------------ + Three-phase PWM control register 0 +------------------------------------------------------*/ +union byte_def invc0_addr; +#define invc0 invc0_addr.byte + +#define inv00 invc0_addr.bit.b0 /* Interrupt enable output polarity select bit */ +#define inv01 invc0_addr.bit.b1 /* Interrupt enable output specification bit */ +#define inv02 invc0_addr.bit.b2 /* Mode select bit */ +#define inv03 invc0_addr.bit.b3 /* Output control bit */ +#define inv04 invc0_addr.bit.b4 /* Positive & negative phases concurrent active disable function enable bit */ +#define inv05 invc0_addr.bit.b5 /* Positive & negative phases concurrent active output detect flag */ +#define inv06 invc0_addr.bit.b6 /* Modulation mode select bit */ +#define inv07 invc0_addr.bit.b7 /* Software trigger select bit */ + +/*------------------------------------------------------ + Three-phase PWM control register 1 +------------------------------------------------------*/ +union byte_def invc1_addr; +#define invc1 invc1_addr.byte + +#define inv10 invc1_addr.bit.b0 /* Timer A1,A2 and A4 start trigger select bit */ +#define inv11 invc1_addr.bit.b1 /* Timer A1-1,A2-1,A4-1 control bit */ +#define inv12 invc1_addr.bit.b2 /* Dead time timer count source select bit */ +#define inv13 invc1_addr.bit.b3 /* Carrier wave detect flag */ +#define inv14 invc1_addr.bit.b4 /* Output polarity control bit */ +#define inv15 invc1_addr.bit.b5 /* Dead time disable bit */ +#define inv16 invc1_addr.bit.b6 /* Dead time timer trigger select bit */ + /* (b7) Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + Three-phase output buffer register 0 +------------------------------------------------------*/ +union byte_def idb0_addr; +#define idb0 idb0_addr.byte + +#define du0 idb0_addr.bit.b0 /* U-phase output buffer 0 */ +#define dub0 idb0_addr.bit.b1 /* ~U-phase output buffer 0 */ +#define dv0 idb0_addr.bit.b2 /* V-phase output buffer 0 */ +#define dvb0 idb0_addr.bit.b3 /* ~V-phase output buffer 0 */ +#define dw0 idb0_addr.bit.b4 /* W-phase output buffer 0 */ +#define dwb0 idb0_addr.bit.b5 /* ~W-phase output buffer 0 */ + /* (b7-b6) Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + Three-phase output buffer register 1 +------------------------------------------------------*/ +union byte_def idb1_addr; +#define idb1 idb1_addr.byte + +#define du1 idb1_addr.bit.b0 /* U-phase output buffer 1 */ +#define dub1 idb1_addr.bit.b1 /* ~U-phase output buffer 1 */ +#define dv1 idb1_addr.bit.b2 /* V-phase output buffer 1 */ +#define dvb1 idb1_addr.bit.b3 /* ~V-phase output buffer 1 */ +#define dw1 idb1_addr.bit.b4 /* W-phase output buffer 1 */ +#define dwb1 idb1_addr.bit.b5 /* ~W-phase output buffer 1 */ + /* (b7-b6) Reserved bit (Set to 0) */ + + +/*------------------------------------------------------ + Dead time timer + (1) The MOV instruction should be used to set the DTT register +------------------------------------------------------*/ +union byte_def dtt_addr; +#define dtt dtt_addr.byte + +/*------------------------------------------------------ + Timer B2 interrupt generation frequency set counter + (1) The MOV instruction should be used to the ICTB2 register +------------------------------------------------------*/ +union byte_def ictb2_addr; +#define ictb2 ictb2_addr.byte /* (b3-b0) function */ + /* (b7-b4) Nothing is assigned */ + +/*------------------------------------------------------ + One-shot start flag +------------------------------------------------------*/ +union byte_def onsf_addr; +#define onsf onsf_addr.byte + +#define ta0os onsf_addr.bit.b0 /* Timer A0 one-shot start flag */ +#define ta1os onsf_addr.bit.b1 /* Timer A1 one-shot start flag */ +#define ta2os onsf_addr.bit.b2 /* Timer A2 one-shot start flag */ +#define ta3os onsf_addr.bit.b3 /* Timer A3 one-shot start flag */ +#define ta4os onsf_addr.bit.b4 /* Timer A4 one-shot start flag */ +#define tazie onsf_addr.bit.b5 /* Z-phase input enable bit */ +#define ta0tgl onsf_addr.bit.b6 /* Timer A0 event/trigger select bit */ +#define ta0tgh onsf_addr.bit.b7 /* Timer A0 event/trigger select bit */ + +/*------------------------------------------------------ + Clock prescaler reset flag +------------------------------------------------------*/ +union byte_def cpsrf_addr; +#define cpsrf cpsrf_addr.byte + /* (b6-b0) Nothing is assigned */ +#define cpsr cpsrf_addr.bit.b7 /* Clock prescaler reset flag */ + +/*------------------------------------------------------ + Trigger select register +------------------------------------------------------*/ +union byte_def trgsr_addr; +#define trgsr trgsr_addr.byte + +#define ta1tgl trgsr_addr.bit.b0 /* Timer A1 event/trigger select bit */ +#define ta1tgh trgsr_addr.bit.b1 /* Timer A1 event/trigger select bit */ +#define ta2tgl trgsr_addr.bit.b2 /* Timer A2 event/trigger select bit */ +#define ta2tgh trgsr_addr.bit.b3 /* Timer A2 event/trigger select bit */ +#define ta3tgl trgsr_addr.bit.b4 /* Timer A3 event/trigger select bit */ +#define ta3tgh trgsr_addr.bit.b5 /* Timer A3 event/trigger select bit */ +#define ta4tgl trgsr_addr.bit.b6 /* Timer A4 event/trigger select bit */ +#define ta4tgh trgsr_addr.bit.b7 /* Timer A4 event/trigger select bit */ + +/*------------------------------------------------------ + Up Down Flag + (1) The MOV instruction should be used to set the UDF register +------------------------------------------------------*/ +union byte_def udf_addr; /* Up/down flag */ +#define udf udf_addr.byte + +#define ta0ud udf_addr.bit.b0 /* Timer A0 up/down flag */ +#define ta1ud udf_addr.bit.b1 /* Timer A1 up/down flag */ +#define ta2ud udf_addr.bit.b2 /* Timer A2 up/down flag */ +#define ta3ud udf_addr.bit.b3 /* Timer A3 up/down flag */ +#define ta4ud udf_addr.bit.b4 /* Timer A4 up/down flag */ +#define ta2p udf_addr.bit.b5 /* Timer A2 2-phase pulse signal processing function select bit */ +#define ta3p udf_addr.bit.b6 /* Timer A3 2-phase pulse signal processing function select bit */ +#define ta4p udf_addr.bit.b7 /* Timer A4 2-phase pulse signal processing function select bit */ + +/*------------------------------------------------------ + UARTi transmit/receive control register 1 (i=0,1,2,3,4) +------------------------------------------------------*/ +/*------------------------------------------------------ + u0c1 +------------------------------------------------------*/ +union byte_def u0c1_addr; +#define u0c1 u0c1_addr.byte +#define te_u0c1 u0c1_addr.bit.b0 /* Transmit enable bit */ +#define ti_u0c1 u0c1_addr.bit.b1 /* Transmit buffer empty flag */ +#define re_u0c1 u0c1_addr.bit.b2 /* Receive enable bit */ +#define ri_u0c1 u0c1_addr.bit.b3 /* Receive complete flag */ +#define u0irs_u0c1 u0c1_addr.bit.b4 /* UARTi transmit interrupt cause select bit */ +#define u0rrm_u0c1 u0c1_addr.bit.b5 /* UARTi continuous receive mode enable bit */ +#define u0lch_u0c1 u0c1_addr.bit.b6 /* Data logic select bit */ +#define sclkstpb_u0c1 u0c1_addr.bit.b7 /* Clock divide synchronizing stop bit */ +#define u0ere_u0c1 u0c1_addr.bit.b7 /* Error signal output enable bit */ + +/*------------------------------------------------------ + u1c1 +------------------------------------------------------*/ +union byte_def u1c1_addr; +#define u1c1 u1c1_addr.byte +#define te_u1c1 u1c1_addr.bit.b0 +#define ti_u1c1 u1c1_addr.bit.b1 +#define re_u1c1 u1c1_addr.bit.b2 +#define ri_u1c1 u1c1_addr.bit.b3 +#define u1irs_u1c1 u1c1_addr.bit.b4 +#define u1rrm_u1c1 u1c1_addr.bit.b5 +#define u1lch_u1c1 u1c1_addr.bit.b6 +#define sclkstpb_u1c1 u1c1_addr.bit.b7 +#define u1ere_u1c1 u1c1_addr.bit.b7 + +/*------------------------------------------------------ + u2c1 +------------------------------------------------------*/ +union byte_def u2c1_addr; +#define u2c1 u2c1_addr.byte +#define te_u2c1 u2c1_addr.bit.b0 +#define ti_u2c1 u2c1_addr.bit.b1 +#define re_u2c1 u2c1_addr.bit.b2 +#define ri_u2c1 u2c1_addr.bit.b3 +#define u2irs_u2c1 u2c1_addr.bit.b4 +#define u2rrm_u2c1 u2c1_addr.bit.b5 +#define u2lch_u2c1 u2c1_addr.bit.b6 +#define sclkstpb_u2c1 u2c1_addr.bit.b7 +#define u2ere_u2c1 u2c1_addr.bit.b7 + +/*------------------------------------------------------ + u3c1 +------------------------------------------------------*/ +union byte_def u3c1_addr; +#define u3c1 u3c1_addr.byte +#define te_u3c1 u3c1_addr.bit.b0 +#define ti_u3c1 u3c1_addr.bit.b1 +#define re_u3c1 u3c1_addr.bit.b2 +#define ri_u3c1 u3c1_addr.bit.b3 +#define u3irs_u3c1 u3c1_addr.bit.b4 +#define u3rrm_u3c1 u3c1_addr.bit.b5 +#define u3lch_u3c1 u3c1_addr.bit.b6 +#define sclkstpb_u3c1 u3c1_addr.bit.b7 +#define u3ere_u3c1 u3c1_addr.bit.b7 + +/*------------------------------------------------------ + u4c1 +------------------------------------------------------*/ +union byte_def u4c1_addr; +#define u4c1 u4c1_addr.byte +#define te_u4c1 u4c1_addr.bit.b0 +#define ti_u4c1 u4c1_addr.bit.b1 +#define re_u4c1 u4c1_addr.bit.b2 +#define ri_u4c1 u4c1_addr.bit.b3 +#define u4irs_u4c1 u4c1_addr.bit.b4 +#define u4rrm_u4c1 u4c1_addr.bit.b5 +#define u4lch_u4c1 u4c1_addr.bit.b6 +#define sclkstpb_u4c1 u4c1_addr.bit.b7 +#define u4ere_u4c1 u4c1_addr.bit.b7 + +/*------------------------------------------------------ + A/D0 control register 0 +------------------------------------------------------*/ +union byte_def ad0con0_addr; +#define ad0con0 ad0con0_addr.byte + +#define ch0_ad0con0 ad0con0_addr.bit.b0 /* Analog input pin select bit */ +#define ch1_ad0con0 ad0con0_addr.bit.b1 /* Analog input pin select bit */ +#define ch2_ad0con0 ad0con0_addr.bit.b2 /* Analog input pin select bit */ +#define md0_ad0con0 ad0con0_addr.bit.b3 /* A/D operation mode select bit 0 */ +#define md1_ad0con0 ad0con0_addr.bit.b4 /* A/D operation mode select bit 0 */ +#define trg_ad0con0 ad0con0_addr.bit.b5 /* Trigger select bit */ +#define adst_ad0con0 ad0con0_addr.bit.b6 /* A/D conversion start flag */ +#define cks0_ad0con0 ad0con0_addr.bit.b7 /* Frequency select bit 0 */ + +/*------------------------------------------------------ + A/D0 control register 1 +------------------------------------------------------*/ +union byte_def ad0con1_addr; +#define ad0con1 ad0con1_addr.byte + +#define scan0_ad0con1 ad0con1_addr.bit.b0 /* A/D sweep pin select bit */ +#define scan1_ad0con1 ad0con1_addr.bit.b1 /* A/D sweep pin select bit */ +#define md2_ad0con1 ad0con1_addr.bit.b2 /* A/D operation mode select bit 1 */ +#define bits_ad0con1 ad0con1_addr.bit.b3 /* 8/10-bit mode select bit */ +#define cks1_ad0con1 ad0con1_addr.bit.b4 /* Frequency select bit 1 */ +#define vcut_ad0con1 ad0con1_addr.bit.b5 /* Vref connection bit */ +#define opa0_ad0con1 ad0con1_addr.bit.b6 /* External op-amp connection mode bit */ +#define opa1_ad0con1 ad0con1_addr.bit.b7 /* External op-amp connection mode bit */ + +/*------------------------------------------------------ + A/D0 control register 2 +------------------------------------------------------*/ +union byte_def ad0con2_addr; +#define ad0con2 ad0con2_addr.byte + +#define smp_ad0con2 ad0con2_addr.bit.b0 /* A/D conversion method select bit */ +#define aps0_ad0con2 ad0con2_addr.bit.b1 /* Analog input port select bit */ +#define aps1_ad0con2 ad0con2_addr.bit.b2 /* Analog input port select bit */ + /* (b4-b3) Nothing is assigned */ +#define trg0_ad0con2 ad0con2_addr.bit.b5 /* External trigger request cause select bit */ + /* (b7-b6) Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + A/D0 Control Register 3 +------------------------------------------------------*/ +union byte_def ad0con3_addr; +#define ad0con3 ad0con3_addr.byte + +#define dus_ad0con3 ad0con3_addr.bit.b0 /* DMAC operation select bit */ +#define mss_ad0con3 ad0con3_addr.bit.b1 /* Multi-port sweep mode select bit */ +#define cks2_ad0con3 ad0con3_addr.bit.b2 /* Frequency select bit */ +#define msf0_ad0con3 ad0con3_addr.bit.b3 /* Multi-port sweep status flag */ +#define msf1_ad0con3 ad0con3_addr.bit.b4 /* Multi-port sweep status flag */ + /* (b7-b5):Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + D/A control register +------------------------------------------------------*/ +union byte_def dacon_addr; +#define dacon dacon_addr.byte + +#define da0e dacon_addr.bit.b0 /* D/A0 output enable bit */ +#define da1e dacon_addr.bit.b1 /* D/A1 output enable bit */ + /* (b7-b2) Nothing is assigned */ + +/*------------------------------------------------------ + SI/O Communication Mode Register 0 +------------------------------------------------------*/ +union byte_def g0mr_addr; +#define g0mr g0mr_addr.byte + +#define gmd0_g0mr g0mr_addr.bit.b0 /* (b1-b0) Communication mode select bit */ +#define gmd1_g0mr g0mr_addr.bit.b1 +#define ckdir_g0mr g0mr_addr.bit.b2 /* Internal/external clock select bit */ + /* (b5-b3) Reserved bit (Set to 0) */ +#define uform_g0mr g0mr_addr.bit.b6 /* Transfer direction select bit */ +#define irs_g0mr g0mr_addr.bit.b7 /* Transmit interrupt cause select bit */ + +/*------------------------------------------------------ + SI/O Communication Control Register 0 +------------------------------------------------------*/ +union byte_def g0cr_addr; +#define g0cr g0cr_addr.byte + +#define ti_g0cr g0cr_addr.bit.b0 /* Transmit buffer empty flag */ +#define txept_g0cr g0cr_addr.bit.b1 /* Transmit register empty flag */ +#define ri_g0cr g0cr_addr.bit.b2 /* Receive complete flag */ + /* (b3) Nothing is assigned */ +#define te_g0cr g0cr_addr.bit.b4 /* Transmit enable bit */ +#define re_g0cr g0cr_addr.bit.b5 /* Receive enable bit */ +#define ipol_g0cr g0cr_addr.bit.b6 /* ISRxD input polarity switch bit */ +#define opol_g0cr g0cr_addr.bit.b7 /* ISTxD output polarity switch bit */ + + +/*------------------------------------------------------ + SI/O Expansion Mode Register 0 +------------------------------------------------------*/ +union byte_def g0emr_addr; +#define g0emr g0emr_addr.byte + /* (b0) Reserved bit (Set to 0) */ +#define crcv_g0emr g0emr_addr.bit.b1 /* CRC default value select bit */ +#define acrc_g0emr g0emr_addr.bit.b2 /* CRC reset select bit */ +#define bsint_g0emr g0emr_addr.bit.b3 /* Bit stuffing error interrupt select bit */ +#define rxsl_g0emr g0emr_addr.bit.b4 /* Receive source switch bit */ +#define txsl_g0emr g0emr_addr.bit.b5 /* Transmit source switch bit */ +#define crc0_g0emr g0emr_addr.bit.b6 /* CRC generation polynomial select bit */ +#define crc1_g0emr g0emr_addr.bit.b7 /* CRC generation polynomial select bit */ + +/*------------------------------------------------------ + SI/O Expansion Transmit Control Register 0 +------------------------------------------------------*/ +union byte_def g0etc_addr; +#define g0etc g0etc_addr.byte + /* (b2-b0) Reserved bit (Set to 0) */ + /* (b3) Reserved bit (Set to 0) */ +#define tcrce_g0etc g0etc_addr.bit.b4 /* Transmit CRC enable bit */ + /* (b5) Reserved bit (Set to 0) */ +#define tbsf0_g0etc g0etc_addr.bit.b6 /* Transmit bit stuffing "1" insert select bit */ +#define tbsf1_g0etc g0etc_addr.bit.b7 /* Transmit bit stuffing "0" insert select bit */ + +/*------------------------------------------------------ + SI/O Expansion Receive Control Register 0 +------------------------------------------------------*/ +union byte_def g0erc_addr; +#define g0erc g0erc_addr.byte +#define cmp0e_g0erc g0erc_addr.bit.b0 /* Data compare function 0 select bit */ +#define cmp1e_g0erc g0erc_addr.bit.b1 /* Data compare function 1 select bit */ +#define cmp2e_g0erc g0erc_addr.bit.b2 /* Data compare function 2 select bit */ +#define cmp3e_g0erc g0erc_addr.bit.b3 /* Data compare function 3 select bit */ +#define rcrce_g0erc g0erc_addr.bit.b4 /* Receive CRC enable bit */ +#define rshte_g0erc g0erc_addr.bit.b5 /* Receive shift operation enable bit */ +#define rbsf0_g0erc g0erc_addr.bit.b6 /* Receive bit stuffing "1" delete select bit */ +#define rbsf1_g0erc g0erc_addr.bit.b7 /* Receive bit stuffing "0" delete select bit */ + +/*------------------------------------------------------ + SI/O Special Communication Interrupt Detect Register 0 +------------------------------------------------------*/ +union byte_def g0irf_addr; +#define g0irf g0irf_addr.byte + /* (b1-b0) Reserved bit (Set to 0) */ +#define bserr_g0irf g0irf_addr.bit.b2 /* Bit stuffing error detect flag */ + /* (b3) Reserved bit (Set to 0) */ +#define irf0_g0irf g0irf_addr.bit.b4 /* Interrupt cause determination flag 0 */ +#define irf1_g0irf g0irf_addr.bit.b5 /* Interrupt cause determination flag 1 */ +#define irf2_g0irf g0irf_addr.bit.b6 /* Interrupt cause determination flag 2 */ +#define irf3_g0irf g0irf_addr.bit.b7 /* Interrupt cause determination flag 3 */ + +/*------------------------------------------------------ + Receive Data Register 0 +------------------------------------------------------*/ +union byte_def g0dr_addr; +#define g0dr g0dr_addr.byte + +/*------------------------------------------------------ + Transmit Buffer Register 0 +------------------------------------------------------*/ +union byte_def g0tb_addr; +#define g0tb g0tb_addr.byte + +/*------------------------------------------------------ + Data Compare Register 00 +------------------------------------------------------*/ +union byte_def g0cmp0_addr; +#define g0cmp0 g0cmp0_addr.byte + +/*------------------------------------------------------ + Data Compare Register 01 +------------------------------------------------------*/ +union byte_def g0cmp1_addr; +#define g0cmp1 g0cmp1_addr.byte + +/*------------------------------------------------------ + Data Compare Register 02 +------------------------------------------------------*/ +union byte_def g0cmp2_addr; +#define g0cmp2 g0cmp2_addr.byte + +/*------------------------------------------------------ + Data Compare Register 03 +------------------------------------------------------*/ +union byte_def g0cmp3_addr; +#define g0cmp3 g0cmp3_addr.byte + +/*------------------------------------------------------ + Data Mask Register 00 +------------------------------------------------------*/ +union byte_def g0msk0_addr; +#define g0msk0 g0msk0_addr.byte + +/*------------------------------------------------------ + Data Mask Register 01 +------------------------------------------------------*/ +union byte_def g0msk1_addr; +#define g0msk1 g0msk1_addr.byte + +/*------------------------------------------------------ + Communication Clock Select Register +------------------------------------------------------*/ +union byte_def ccs_addr; +#define ccs ccs_addr.byte + +#define ccs0 ccs_addr.bit.b0 /* Communication unit 0 clock select bit */ +#define ccs1 ccs_addr.bit.b1 /* Communication unit 0 clock select bit */ +#define ccs2 ccs_addr.bit.b2 /* Communication unit 1 clock select bit */ +#define ccs3 ccs_addr.bit.b3 /* Communication unit 1 clock select bit */ + /* (b7-b4) Nothing is assigned */ + +/*------------------------------------------------------ + Transmit Output Register 0 +------------------------------------------------------*/ +union byte_def g0to_addr; +#define g0to g0to_addr.byte + +/*------------------------------------------------------ + Receive Input Register 0 +------------------------------------------------------*/ +union byte_def g0ri_addr; +#define g0ri g0ri_addr.byte + +/*------------------------------------------------------ + SI/O Communication Mode Register 1 +------------------------------------------------------*/ +union byte_def g1mr_addr; +#define g1mr g1mr_addr.byte +#define gmd0_g1mr g1mr_addr.bit.b0 /* (b1-b0) Communication mode select bit */ +#define gmd1_g1mr g1mr_addr.bit.b1 +#define ckdir_g1mr g1mr_addr.bit.b2 /* Internal/external clock select bit */ +#define stps_g1mr g1mr_addr.bit.b3 /* Stop bit length select bit */ +#define pry_g1mr g1mr_addr.bit.b4 /* Odd/Even parity select bit */ +#define prye_g1mr g1mr_addr.bit.b5 /* Parity enable bit */ +#define uform_g1mr g1mr_addr.bit.b6 /* Transfer direction select bit */ +#define irs_g1mr g1mr_addr.bit.b7 /* Transmit interrupt cause select bit */ + +/*------------------------------------------------------ + SI/O Communication Control Register 1 +------------------------------------------------------*/ +union byte_def g1cr_addr; +#define g1cr g1cr_addr.byte +#define ti_g1cr g1cr_addr.bit.b0 /* Transmit buffer empty flag */ +#define txept_g1cr g1cr_addr.bit.b1 /* Transmit register empty flag */ +#define ri_g1cr g1cr_addr.bit.b2 /* Receive complete flag */ + /* (b3) Nothing is assigned */ +#define te_g1cr g1cr_addr.bit.b4 /* Transmit enable bit */ +#define re_g1cr g1cr_addr.bit.b5 /* Receive enable bit */ +#define ipol_g1cr g1cr_addr.bit.b6 /* ISRxD input polarity switch bit */ +#define opol_g1cr g1cr_addr.bit.b7 /* ISTxD output polarity switch bit */ + +/*------------------------------------------------------ + SI/O Expansion Mode Register 1 +------------------------------------------------------*/ +union byte_def g1emr_addr; +#define g1emr g1emr_addr.byte +#define smode_g1emr g1emr_addr.bit.b0 /* Synchronouse mode select bit */ +#define crcv_g1emr g1emr_addr.bit.b1 /* CRC initial value select bit */ +#define acrc_g1emr g1emr_addr.bit.b2 /* CRC initialization select bit */ +#define bsint_g1emr g1emr_addr.bit.b3 /* Bit stuffing error interrupt select bit */ +#define rxsl_g1emr g1emr_addr.bit.b4 /* Receive source switch bit */ +#define txsl_g1emr g1emr_addr.bit.b5 /* Transmit source switch bit */ +#define crc0_g1emr g1emr_addr.bit.b6 /* CRC generation polynomial select bit */ +#define crc1_g1emr g1emr_addr.bit.b7 /* CRC generation polynomial select bit */ + +/*------------------------------------------------------ + SI/O Expansion Transmit Control Register 1 +------------------------------------------------------*/ +union byte_def g1etc_addr; +#define g1etc g1etc_addr.byte + /* (b2-b0) Reserved bit (Set to 0) */ +#define sof_g1etc g1etc_addr.bit.b3 /* SOF transmit request bit */ +#define tcrce_g1etc g1etc_addr.bit.b4 /* Transmit CRC enable bit */ +#define abte_g1etc g1etc_addr.bit.b5 /* Arbitration enable bit */ +#define tbsf0_g1etc g1etc_addr.bit.b6 /* Transmit bit stuffing "1" insert select bit */ +#define tbsf1_g1etc g1etc_addr.bit.b7 /* Transmit bit stuffing "0" insert select bit */ + +/*------------------------------------------------------ + SI/O Expansion Receive Control Register 1 +------------------------------------------------------*/ +union byte_def g1erc_addr; +#define g1erc g1erc_addr.byte +#define cmp0e_g1erc g1erc_addr.bit.b0 /* Data compare function 0 select bit */ +#define cmp1e_g1erc g1erc_addr.bit.b1 /* Data compare function 1 select bit */ +#define cmp2e_g1erc g1erc_addr.bit.b2 /* Data compare function 2 select bit */ +#define cmp3e_g1erc g1erc_addr.bit.b3 /* Data compare function 3 select bit */ +#define rcrce_g1erc g1erc_addr.bit.b4 /* Receive CRC enable bit */ +#define rshte_g1erc g1erc_addr.bit.b5 /* Receive shift operation enable bit */ +#define rbsf0_g1erc g1erc_addr.bit.b6 /* Receive bit stuffing "1" delete select bit */ +#define rbsf1_g1erc g1erc_addr.bit.b7 /* Receive bit stuffing "0" delete select bit */ + +/*------------------------------------------------------ + SI/O Special Communication Interrupt Detect Register 1 +------------------------------------------------------*/ +union byte_def g1irf_addr; +#define g1irf g1irf_addr.byte + /* (b1-b0) Reserved bit (Set to 0) */ +#define bserr_g1irf g1irf_addr.bit.b2 /* Bit stuffing error detect flag */ +#define abt_g1irf g1irf_addr.bit.b3 /* Arbitration lost detect flag */ +#define irf0_g1irf g1irf_addr.bit.b4 /* Interrupt cause determination flag 0 */ +#define irf1_g1irf g1irf_addr.bit.b5 /* Interrupt cause determination flag 1 */ +#define irf2_g1irf g1irf_addr.bit.b6 /* Interrupt cause determination flag 2 */ +#define irf3_g1irf g1irf_addr.bit.b7 /* Interrupt cause determination flag 3 */ + +/*------------------------------------------------------ + Receive Data Register 1 +------------------------------------------------------*/ +union byte_def g1dr_addr; +#define g1dr g1dr_addr.byte + + +/*------------------------------------------------------ + Transmit Buffer Register 1 +------------------------------------------------------*/ +union byte_def g1tb_addr; +#define g1tb g1tb_addr.byte + +/*------------------------------------------------------ + Data Compare Register 10 +------------------------------------------------------*/ +union byte_def g1cmp0_addr; +#define g1cmp0 g1cmp0_addr.byte + +/*------------------------------------------------------ + Data Compare Register 11 +------------------------------------------------------*/ +union byte_def g1cmp1_addr; +#define g1cmp1 g1cmp1_addr.byte + +/*------------------------------------------------------ + Data Compare Register 12 +------------------------------------------------------*/ +union byte_def g1cmp2_addr; +#define g1cmp2 g1cmp2_addr.byte + +/*------------------------------------------------------ + Data Compare Register 13 +------------------------------------------------------*/ +union byte_def g1cmp3_addr; +#define g1cmp3 g1cmp3_addr.byte + +/*------------------------------------------------------ + Data Mask Register 10 +------------------------------------------------------*/ +union byte_def g1msk0_addr; +#define g1msk0 g1msk0_addr.byte + +/*------------------------------------------------------ + Data Mask Register 11 +------------------------------------------------------*/ +union byte_def g1msk1_addr; +#define g1msk1 g1msk1_addr.byte + +/*------------------------------------------------------ + Transmit Output Register 1 +------------------------------------------------------*/ +union byte_def g1to_addr; +#define g1to g1to_addr.byte + +/*------------------------------------------------------ + Receive Input Register 0 +------------------------------------------------------*/ +union byte_def g1ri_addr; +#define g1ri g1ri_addr.byte + + +/*------------------------------------------------------ + PLL Control Register 0 +------------------------------------------------------*/ +#define plc plc_addr.word + +union byte_def plc0_addr; +#define plc0 plc0_addr.byte + +#define plc00 plc0_addr.bit.b0 /* (b2-b0) Programmable counter select bit */ +#define plc01 plc0_addr.bit.b1 +#define plc02 plc0_addr.bit.b2 + /* (b3) Reserved bit (Set to 0) */ + /* (b4) Reserved bit (Set to 1) */ + /* (b5) Reserved bit (Set to 0) */ + /* (b6) Reserved bit (Set to 1) */ +#define plc07 plc0_addr.bit.b7 /* Operation enable bit */ + +/*------------------------------------------------------ + PLL Control Register 1 +------------------------------------------------------*/ +union byte_def plc1_addr; +#define plc1 plc1_addr.byte + /* (b0) Reserved bit (Set to 0) */ + /* (b1) Reserved bit (Set to 1) */ +#define plc12 plc1_addr.bit.b2 /* PLL clock division switch bit */ + /* (b3) Reserved bit (Set to 0) */ + /* (b4) Reserved bit (Set to 0) */ + /* (b7-b5) Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + Port P0 +------------------------------------------------------*/ +union byte_def p0_addr; +#define p0 p0_addr.byte + +#define p0_0 p0_addr.bit.b0 /* Port P0 bit0 */ +#define p0_1 p0_addr.bit.b1 /* Port P0 bit1 */ +#define p0_2 p0_addr.bit.b2 /* Port P0 bit2 */ +#define p0_3 p0_addr.bit.b3 /* Port P0 bit3 */ +#define p0_4 p0_addr.bit.b4 /* Port P0 bit4 */ +#define p0_5 p0_addr.bit.b5 /* Port P0 bit5 */ +#define p0_6 p0_addr.bit.b6 /* Port P0 bit6 */ +#define p0_7 p0_addr.bit.b7 /* Port P0 bit7 */ + +/*------------------------------------------------------ + Port P0 direction register +------------------------------------------------------*/ +union byte_def pd0_addr; +#define pd0 pd0_addr.byte + +#define pd0_0 pd0_addr.bit.b0 /* P0 direction register bit0 */ +#define pd0_1 pd0_addr.bit.b1 /* P0 direction register bit1 */ +#define pd0_2 pd0_addr.bit.b2 /* P0 direction register bit2 */ +#define pd0_3 pd0_addr.bit.b3 /* P0 direction register bit3 */ +#define pd0_4 pd0_addr.bit.b4 /* P0 direction register bit4 */ +#define pd0_5 pd0_addr.bit.b5 /* P0 direction register bit5 */ +#define pd0_6 pd0_addr.bit.b6 /* P0 direction register bit6 */ +#define pd0_7 pd0_addr.bit.b7 /* P0 direction register bit7 */ + +/*------------------------------------------------------ + Port P1 +------------------------------------------------------*/ +union byte_def p1_addr; +#define p1 p1_addr.byte + +#define p1_0 p1_addr.bit.b0 /* Port P1 bit0 */ +#define p1_1 p1_addr.bit.b1 /* Port P1 bit1 */ +#define p1_2 p1_addr.bit.b2 /* Port P1 bit2 */ +#define p1_3 p1_addr.bit.b3 /* Port P1 bit3 */ +#define p1_4 p1_addr.bit.b4 /* Port P1 bit4 */ +#define p1_5 p1_addr.bit.b5 /* Port P1 bit5 */ +#define p1_6 p1_addr.bit.b6 /* Port P1 bit6 */ +#define p1_7 p1_addr.bit.b7 /* Port P1 bit7 */ + +/*------------------------------------------------------ + Port P1 direction register +------------------------------------------------------*/ +union byte_def pd1_addr; +#define pd1 pd1_addr.byte + +#define pd1_0 pd1_addr.bit.b0 /* P1 direction register bit0 */ +#define pd1_1 pd1_addr.bit.b1 /* P1 direction register bit1 */ +#define pd1_2 pd1_addr.bit.b2 /* P1 direction register bit2 */ +#define pd1_3 pd1_addr.bit.b3 /* P1 direction register bit3 */ +#define pd1_4 pd1_addr.bit.b4 /* P1 direction register bit4 */ +#define pd1_5 pd1_addr.bit.b5 /* P1 direction register bit5 */ +#define pd1_6 pd1_addr.bit.b6 /* P1 direction register bit6 */ +#define pd1_7 pd1_addr.bit.b7 /* P1 direction register bit7 */ + +/*------------------------------------------------------ + Port P2 +------------------------------------------------------*/ +union byte_def p2_addr; +#define p2 p2_addr.byte + +#define p2_0 p2_addr.bit.b0 /* Port P2 bit0 */ +#define p2_1 p2_addr.bit.b1 /* Port P2 bit1 */ +#define p2_2 p2_addr.bit.b2 /* Port P2 bit2 */ +#define p2_3 p2_addr.bit.b3 /* Port P2 bit3 */ +#define p2_4 p2_addr.bit.b4 /* Port P2 bit4 */ +#define p2_5 p2_addr.bit.b5 /* Port P2 bit5 */ +#define p2_6 p2_addr.bit.b6 /* Port P2 bit6 */ +#define p2_7 p2_addr.bit.b7 /* Port P2 bit7 */ + +/*------------------------------------------------------ + Port P2 direction register +------------------------------------------------------*/ +union byte_def pd2_addr; +#define pd2 pd2_addr.byte + +#define pd2_0 pd2_addr.bit.b0 /* P2 direction register bit0 */ +#define pd2_1 pd2_addr.bit.b1 /* P2 direction register bit1 */ +#define pd2_2 pd2_addr.bit.b2 /* P2 direction register bit2 */ +#define pd2_3 pd2_addr.bit.b3 /* P2 direction register bit3 */ +#define pd2_4 pd2_addr.bit.b4 /* P2 direction register bit4 */ +#define pd2_5 pd2_addr.bit.b5 /* P2 direction register bit5 */ +#define pd2_6 pd2_addr.bit.b6 /* P2 direction register bit6 */ +#define pd2_7 pd2_addr.bit.b7 /* P2 direction register bit7 */ + +/*------------------------------------------------------ + Port P3 +------------------------------------------------------*/ +union byte_def p3_addr; +#define p3 p3_addr.byte + +#define p3_0 p3_addr.bit.b0 /* Port P3 bit0 */ +#define p3_1 p3_addr.bit.b1 /* Port P3 bit1 */ +#define p3_2 p3_addr.bit.b2 /* Port P3 bit2 */ +#define p3_3 p3_addr.bit.b3 /* Port P3 bit3 */ +#define p3_4 p3_addr.bit.b4 /* Port P3 bit4 */ +#define p3_5 p3_addr.bit.b5 /* Port P3 bit5 */ +#define p3_6 p3_addr.bit.b6 /* Port P3 bit6 */ +#define p3_7 p3_addr.bit.b7 /* Port P3 bit7 */ + +/*------------------------------------------------------ + Port P3 direction register +------------------------------------------------------*/ +union byte_def pd3_addr; +#define pd3 pd3_addr.byte + +#define pd3_0 pd3_addr.bit.b0 /* P3 direction register bit0 */ +#define pd3_1 pd3_addr.bit.b1 /* P3 direction register bit1 */ +#define pd3_2 pd3_addr.bit.b2 /* P3 direction register bit2 */ +#define pd3_3 pd3_addr.bit.b3 /* P3 direction register bit3 */ +#define pd3_4 pd3_addr.bit.b4 /* P3 direction register bit4 */ +#define pd3_5 pd3_addr.bit.b5 /* P3 direction register bit5 */ +#define pd3_6 pd3_addr.bit.b6 /* P3 direction register bit6 */ +#define pd3_7 pd3_addr.bit.b7 /* P3 direction register bit7 */ + +/*------------------------------------------------------ + Port P4 +------------------------------------------------------*/ +union byte_def p4_addr; +#define p4 p4_addr.byte + +#define p4_0 p4_addr.bit.b0 /* Port P4 bit0 */ +#define p4_1 p4_addr.bit.b1 /* Port P4 bit1 */ +#define p4_2 p4_addr.bit.b2 /* Port P4 bit2 */ +#define p4_3 p4_addr.bit.b3 /* Port P4 bit3 */ +#define p4_4 p4_addr.bit.b4 /* Port P4 bit4 */ +#define p4_5 p4_addr.bit.b5 /* Port P4 bit5 */ +#define p4_6 p4_addr.bit.b6 /* Port P4 bit6 */ +#define p4_7 p4_addr.bit.b7 /* Port P4 bit7 */ + +/*------------------------------------------------------ + Port P4 direction register +------------------------------------------------------*/ +union byte_def pd4_addr; +#define pd4 pd4_addr.byte + +#define pd4_0 pd4_addr.bit.b0 /* P4 direction register bit0 */ +#define pd4_1 pd4_addr.bit.b1 /* P4 direction register bit1 */ +#define pd4_2 pd4_addr.bit.b2 /* P4 direction register bit2 */ +#define pd4_3 pd4_addr.bit.b3 /* P4 direction register bit3 */ +#define pd4_4 pd4_addr.bit.b4 /* P4 direction register bit4 */ +#define pd4_5 pd4_addr.bit.b5 /* P4 direction register bit5 */ +#define pd4_6 pd4_addr.bit.b6 /* P4 direction register bit6 */ +#define pd4_7 pd4_addr.bit.b7 /* P4 direction register bit7 */ + +/*------------------------------------------------------ + Port P5 +------------------------------------------------------*/ +union byte_def p5_addr; +#define p5 p5_addr.byte + +#define p5_0 p5_addr.bit.b0 /* Port P5 bit0 */ +#define p5_1 p5_addr.bit.b1 /* Port P5 bit1 */ +#define p5_2 p5_addr.bit.b2 /* Port P5 bit2 */ +#define p5_3 p5_addr.bit.b3 /* Port P5 bit3 */ +#define p5_4 p5_addr.bit.b4 /* Port P5 bit4 */ +#define p5_5 p5_addr.bit.b5 /* Port P5 bit5 */ +#define p5_6 p5_addr.bit.b6 /* Port P5 bit6 */ +#define p5_7 p5_addr.bit.b7 /* Port P5 bit7 */ + +/*------------------------------------------------------ + Port P5 direction register +------------------------------------------------------*/ +union byte_def pd5_addr; +#define pd5 pd5_addr.byte + +#define pd5_0 pd5_addr.bit.b0 /* P5 direction register bit0 */ +#define pd5_1 pd5_addr.bit.b1 /* P5 direction register bit1 */ +#define pd5_2 pd5_addr.bit.b2 /* P5 direction register bit2 */ +#define pd5_3 pd5_addr.bit.b3 /* P5 direction register bit3 */ +#define pd5_4 pd5_addr.bit.b4 /* P5 direction register bit4 */ +#define pd5_5 pd5_addr.bit.b5 /* P5 direction register bit5 */ +#define pd5_6 pd5_addr.bit.b6 /* P5 direction register bit6 */ +#define pd5_7 pd5_addr.bit.b7 /* P5 direction register bit7 */ + +/*------------------------------------------------------ + Port P6 +------------------------------------------------------*/ +union byte_def p6_addr; +#define p6 p6_addr.byte + +#define p6_0 p6_addr.bit.b0 /* Port P6 bit0 */ +#define p6_1 p6_addr.bit.b1 /* Port P6 bit1 */ +#define p6_2 p6_addr.bit.b2 /* Port P6 bit2 */ +#define p6_3 p6_addr.bit.b3 /* Port P6 bit3 */ +#define p6_4 p6_addr.bit.b4 /* Port P6 bit4 */ +#define p6_5 p6_addr.bit.b5 /* Port P6 bit5 */ +#define p6_6 p6_addr.bit.b6 /* Port P6 bit6 */ +#define p6_7 p6_addr.bit.b7 /* Port P6 bit7 */ + +/*------------------------------------------------------ + Port P6 direction register +------------------------------------------------------*/ +union byte_def pd6_addr; +#define pd6 pd6_addr.byte + +#define pd6_0 pd6_addr.bit.b0 /* P6 direction register bit0 */ +#define pd6_1 pd6_addr.bit.b1 /* P6 direction register bit1 */ +#define pd6_2 pd6_addr.bit.b2 /* P6 direction register bit2 */ +#define pd6_3 pd6_addr.bit.b3 /* P6 direction register bit3 */ +#define pd6_4 pd6_addr.bit.b4 /* P6 direction register bit4 */ +#define pd6_5 pd6_addr.bit.b5 /* P6 direction register bit5 */ +#define pd6_6 pd6_addr.bit.b6 /* P6 direction register bit6 */ +#define pd6_7 pd6_addr.bit.b7 /* P6 direction register bit7 */ + +/*------------------------------------------------------ + Port P7 +------------------------------------------------------*/ +union byte_def p7_addr; +#define p7 p7_addr.byte + +#define p7_0 p7_addr.bit.b0 /* Port P7 bit0 */ +#define p7_1 p7_addr.bit.b1 /* Port P7 bit1 */ +#define p7_2 p7_addr.bit.b2 /* Port P7 bit2 */ +#define p7_3 p7_addr.bit.b3 /* Port P7 bit3 */ +#define p7_4 p7_addr.bit.b4 /* Port P7 bit4 */ +#define p7_5 p7_addr.bit.b5 /* Port P7 bit5 */ +#define p7_6 p7_addr.bit.b6 /* Port P7 bit6 */ +#define p7_7 p7_addr.bit.b7 /* Port P7 bit7 */ + +/*------------------------------------------------------ + Port P7 direction register +------------------------------------------------------*/ +union byte_def pd7_addr; +#define pd7 pd7_addr.byte + +#define pd7_0 pd7_addr.bit.b0 /* P7 direction register bit0 */ +#define pd7_1 pd7_addr.bit.b1 /* P7 direction register bit1 */ +#define pd7_2 pd7_addr.bit.b2 /* P7 direction register bit2 */ +#define pd7_3 pd7_addr.bit.b3 /* P7 direction register bit3 */ +#define pd7_4 pd7_addr.bit.b4 /* P7 direction register bit4 */ +#define pd7_5 pd7_addr.bit.b5 /* P7 direction register bit5 */ +#define pd7_6 pd7_addr.bit.b6 /* P7 direction register bit6 */ +#define pd7_7 pd7_addr.bit.b7 /* P7 direction register bit7 */ + +/*------------------------------------------------------ + Port P8 +------------------------------------------------------*/ +union byte_def p8_addr; +#define p8 p8_addr.byte + +#define p8_0 p8_addr.bit.b0 /* Port P8 bit0 */ +#define p8_1 p8_addr.bit.b1 /* Port P8 bit1 */ +#define p8_2 p8_addr.bit.b2 /* Port P8 bit2 */ +#define p8_3 p8_addr.bit.b3 /* Port P8 bit3 */ +#define p8_4 p8_addr.bit.b4 /* Port P8 bit4 */ +#define p8_5 p8_addr.bit.b5 /* Port P8 bit5 */ +#define p8_6 p8_addr.bit.b6 /* Port P8 bit6 */ +#define p8_7 p8_addr.bit.b7 /* Port P8 bit7 */ + +/*------------------------------------------------------ + Port P8 direction register +------------------------------------------------------*/ +union byte_def pd8_addr; +#define pd8 pd8_addr.byte + +#define pd8_0 pd8_addr.bit.b0 /* P8 direction register bit0 */ +#define pd8_1 pd8_addr.bit.b1 /* P8 direction register bit1 */ +#define pd8_2 pd8_addr.bit.b2 /* P8 direction register bit2 */ +#define pd8_3 pd8_addr.bit.b3 /* P8 direction register bit3 */ +#define pd8_4 pd8_addr.bit.b4 /* P8 direction register bit4 */ + /* (b5) Nothing is assigned */ +#define pd8_6 pd8_addr.bit.b6 /* P8 direction register bit6 */ +#define pd8_7 pd8_addr.bit.b7 /* P8 direction register bit7 */ + +/*------------------------------------------------------ + Port P9 +------------------------------------------------------*/ +union byte_def p9_addr; +#define p9 p9_addr.byte + +#define p9_0 p9_addr.bit.b0 /* Port P9 bit0 */ +#define p9_1 p9_addr.bit.b1 /* Port P9 bit1 */ +#define p9_2 p9_addr.bit.b2 /* Port P9 bit2 */ +#define p9_3 p9_addr.bit.b3 /* Port P9 bit3 */ +#define p9_4 p9_addr.bit.b4 /* Port P9 bit4 */ +#define p9_5 p9_addr.bit.b5 /* Port P9 bit5 */ +#define p9_6 p9_addr.bit.b6 /* Port P9 bit6 */ +#define p9_7 p9_addr.bit.b7 /* Port P9 bit7 */ + +/*------------------------------------------------------ + Port P9 direction register +------------------------------------------------------*/ +union byte_def pd9_addr; +#define pd9 pd9_addr.byte + +#define pd9_0 pd9_addr.bit.b0 /* P9 direction register bit0 */ +#define pd9_1 pd9_addr.bit.b1 /* P9 direction register bit1 */ +#define pd9_2 pd9_addr.bit.b2 /* P9 direction register bit2 */ +#define pd9_3 pd9_addr.bit.b3 /* P9 direction register bit3 */ +#define pd9_4 pd9_addr.bit.b4 /* P9 direction register bit4 */ +#define pd9_5 pd9_addr.bit.b5 /* P9 direction register bit5 */ +#define pd9_6 pd9_addr.bit.b6 /* P9 direction register bit6 */ +#define pd9_7 pd9_addr.bit.b7 /* P9 direction register bit7 */ + +/*------------------------------------------------------ + Port P10 +------------------------------------------------------*/ +union byte_def p10_addr; +#define p10 p10_addr.byte + +#define p10_0 p10_addr.bit.b0 /* Port P10 bit0 */ +#define p10_1 p10_addr.bit.b1 /* Port P10 bit1 */ +#define p10_2 p10_addr.bit.b2 /* Port P10 bit2 */ +#define p10_3 p10_addr.bit.b3 /* Port P10 bit3 */ +#define p10_4 p10_addr.bit.b4 /* Port P10 bit4 */ +#define p10_5 p10_addr.bit.b5 /* Port P10 bit5 */ +#define p10_6 p10_addr.bit.b6 /* Port P10 bit6 */ +#define p10_7 p10_addr.bit.b7 /* Port P10 bit7 */ + +/*------------------------------------------------------ + Port P10 direction register +------------------------------------------------------*/ +union byte_def pd10_addr; +#define pd10 pd10_addr.byte + +#define pd10_0 pd10_addr.bit.b0 /* P10 direction register bit0 */ +#define pd10_1 pd10_addr.bit.b1 /* P10 direction register bit1 */ +#define pd10_2 pd10_addr.bit.b2 /* P10 direction register bit2 */ +#define pd10_3 pd10_addr.bit.b3 /* P10 direction register bit3 */ +#define pd10_4 pd10_addr.bit.b4 /* P10 direction register bit4 */ +#define pd10_5 pd10_addr.bit.b5 /* P10 direction register bit5 */ +#define pd10_6 pd10_addr.bit.b6 /* P10 direction register bit6 */ +#define pd10_7 pd10_addr.bit.b7 /* P10 direction register bit7 */ + +/*------------------------------------------------------ + Pull-up control register 0 +------------------------------------------------------*/ +union byte_def pur0_addr; +#define pur0 pur0_addr.byte + +#define pu00 pur0_addr.bit.b0 /* Pull-up P00 to P03 */ +#define pu01 pur0_addr.bit.b1 /* Pull-up P04 to P07 */ +#define pu02 pur0_addr.bit.b2 /* Pull-up P10 to P13 */ +#define pu03 pur0_addr.bit.b3 /* Pull-up P14 to P17 */ +#define pu04 pur0_addr.bit.b4 /* Pull-up P20 to P23 */ +#define pu05 pur0_addr.bit.b5 /* Pull-up P24 to P27 */ +#define pu06 pur0_addr.bit.b6 /* Pull-up P30 to P33 */ +#define pu07 pur0_addr.bit.b7 /* Pull-up P34 to P37 */ + +/*------------------------------------------------------ + Pull-up control register 1 +------------------------------------------------------*/ +union byte_def pur1_addr; +#define pur1 pur1_addr.byte + +#define pu10 pur1_addr.bit.b0 /* Pull-up P40 to P43 */ +#define pu11 pur1_addr.bit.b1 /* Pull-up P44 to P47 */ +#define pu12 pur1_addr.bit.b2 /* Pull-up P50 to P53 */ +#define pu13 pur1_addr.bit.b3 /* Pull-up P54 to P57 */ + /* (b7-b4) Nothing is assigned */ + +/*------------------------------------------------------ + Pull-up control register 3 +------------------------------------------------------*/ +union byte_def pur3_addr; +#define pur3 pur3_addr.byte + +#define pu30 pur3_addr.bit.b0 /* Pull-up P100 to P103 */ +#define pu31 pur3_addr.bit.b1 /* Pull-up P104 to P107 */ +#define pu32 pur3_addr.bit.b2 /* Pull-up P110 to P113 */ +#define pu33 pur3_addr.bit.b3 /* Pull-up P114 */ +#define pu34 pur3_addr.bit.b4 /* Pull-up P120 to P123 */ +#define pu35 pur3_addr.bit.b5 /* Pull-up P124 to P127 */ +#define pu36 pur3_addr.bit.b6 /* Pull-up P130 to P133 */ +#define pu37 pur3_addr.bit.b7 /* Pull-up P134 to P137 */ + +/*------------------------------------------------------ + Pull-up control register 4 +------------------------------------------------------*/ +union byte_def pur4_addr; +#define pur4 pur4_addr.byte + +#define pu40 pur4_addr.bit.b0 /* Pull-up P140 to P143 */ +#define pu41 pur4_addr.bit.b1 /* Pull-up P144 to P146 */ +#define pu42 pur4_addr.bit.b2 /* Pull-up P150 to P153 */ +#define pu43 pur4_addr.bit.b3 /* Pull-up P154 to P157 */ + /* (b7-b4) Nothing is assigned */ + +/*------------------------------------------------------ + Port control register +------------------------------------------------------*/ +union byte_def pcr_addr; +#define pcr pcr_addr.byte + +#define pcr0 pcr_addr.bit.b0 /* Port P1 control bit */ + /* (b2-b1) Reserved bit (Set to 0) */ + /* (b7-b3) Nothing is assigned */ + + +/*------------------------------------------------------ + Function select register A0 +------------------------------------------------------*/ +union byte_def ps0_addr; +#define ps0 ps0_addr.byte + +#define ps0_0 ps0_addr.bit.b0 /* Port P60 output function select bit */ +#define ps0_1 ps0_addr.bit.b1 /* Port P61 output function select bit */ +#define ps0_2 ps0_addr.bit.b2 /* Port P62 output function select bit */ +#define ps0_3 ps0_addr.bit.b3 /* Port P63 output function select bit */ +#define ps0_4 ps0_addr.bit.b4 /* Port P64 output function select bit */ +#define ps0_5 ps0_addr.bit.b5 /* Port P65 output function select bit */ +#define ps0_6 ps0_addr.bit.b6 /* Port P66 output function select bit */ +#define ps0_7 ps0_addr.bit.b7 /* Port P67 output function select bit */ + +/*------------------------------------------------------ + Function select register A1 +------------------------------------------------------*/ +union byte_def ps1_addr; +#define ps1 ps1_addr.byte + +#define ps1_0 ps1_addr.bit.b0 /* Port P70 output function select bit */ +#define ps1_1 ps1_addr.bit.b1 /* Port P71 output function select bit */ +#define ps1_2 ps1_addr.bit.b2 /* Port P72 output function select bit */ +#define ps1_3 ps1_addr.bit.b3 /* Port P73 output function select bit */ +#define ps1_4 ps1_addr.bit.b4 /* Port P74 output function select bit */ +#define ps1_5 ps1_addr.bit.b5 /* Port P75 output function select bit */ +#define ps1_6 ps1_addr.bit.b6 /* Port P76 output function select bit */ +#define ps1_7 ps1_addr.bit.b7 /* Port P77 output function select bit */ + +/*------------------------------------------------------ + Function select register A2 +------------------------------------------------------*/ +union byte_def ps2_addr; +#define ps2 ps2_addr.byte + +#define ps2_0 ps2_addr.bit.b0 /* Port P80 output function select bit */ +#define ps2_1 ps2_addr.bit.b1 /* Port P81 output function select bit */ +#define ps2_2 ps2_addr.bit.b2 /* Port P82 output function select bit */ + /* (b4-b3) Reserved bit (Set to 0) */ + /* (b5) Nothing is assigned */ + /* (b7-b6) Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + Function select register A3 +------------------------------------------------------*/ +union byte_def ps3_addr; +#define ps3 ps3_addr.byte + +#define ps3_0 ps3_addr.bit.b0 /* Port P90 output function select bit */ +#define ps3_1 ps3_addr.bit.b1 /* Port P91 output function select bit */ +#define ps3_2 ps3_addr.bit.b2 /* Port P92 output function select bit */ +#define ps3_3 ps3_addr.bit.b3 /* Port P93 output function select bit */ +#define ps3_4 ps3_addr.bit.b4 /* Port P94 output function select bit */ +#define ps3_5 ps3_addr.bit.b5 /* Port P95 output function select bit */ +#define ps3_6 ps3_addr.bit.b6 /* Port P96 output function select bit */ +#define ps3_7 ps3_addr.bit.b7 /* Port P97 output function select bit */ + +/*------------------------------------------------------ + Function select register B0 +------------------------------------------------------*/ +union byte_def psl0_addr; +#define psl0 psl0_addr.byte + /* (b1-b0) Reserved bit (Set to 0) */ +#define psl0_2 psl0_addr.bit.b2 /* Port P62 output peripheral function select bit */ + /* (b3) Reserved bit (Set to 0) */ +#define psl0_4 psl0_addr.bit.b4 /* Port P64 output peripheral function select bit */ + /* (b5) Reserved bit (Set to 0) */ +#define psl0_6 psl0_addr.bit.b6 /* Port P66 output peripheral function select bit */ + /* (b7) Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + Function select register B1 +------------------------------------------------------*/ +union byte_def psl1_addr; +#define psl1 psl1_addr.byte + +#define psl1_0 psl1_addr.bit.b0 /* Port P70 output peripheral function select bit */ +#define psl1_1 psl1_addr.bit.b1 /* Port P71 output peripheral function select bit */ +#define psl1_2 psl1_addr.bit.b2 /* Port P72 output peripheral function select bit */ +#define psl1_3 psl1_addr.bit.b3 /* Port P73 output peripheral function select bit */ +#define psl1_4 psl1_addr.bit.b4 /* Port P74 output peripheral function select bit */ +#define psl1_5 psl1_addr.bit.b5 /* Port P75 output peripheral function select bit */ +#define psl1_6 psl1_addr.bit.b6 /* Port P76 output peripheral function select bit */ +#define psl1_7 psl1_addr.bit.b7 /* Port P77 output peripheral function select bit */ + +/*------------------------------------------------------ + Function select register B2 +------------------------------------------------------*/ +union byte_def psl2_addr; +#define psl2 psl2_addr.byte + +#define psl2_0 psl2_addr.bit.b0 /* Port P80 output peripheral function select bit */ +#define psl2_1 psl2_addr.bit.b1 /* Port P81 output peripheral function select bit */ +#define psl2_2 psl2_addr.bit.b2 /* Port P82 output peripheral function select bit */ + /* (b4-b3) Reserved bit (Set to 0) */ + /* (b5) Nothing is assigned */ + /* (b7-b6) Reserved bit (Set to 0) */ + +/*------------------------------------------------------ + Function select register B3 +------------------------------------------------------*/ +union byte_def psl3_addr; +#define psl3 psl3_addr.byte + /* (b0) Reserved bit (Set to 0) */ +#define psl3_1 psl3_addr.bit.b1 /* Port P91 output peripheral function select bit */ +#define psl3_2 psl3_addr.bit.b2 /* Port P92 output peripheral function select bit */ +#define psl3_3 psl3_addr.bit.b3 /* Port P93 output peripheral function select bit */ +#define psl3_4 psl3_addr.bit.b4 /* Port P94 output peripheral function select bit */ +#define psl3_5 psl3_addr.bit.b5 /* Port P95 output peripheral function select bit */ +#define psl3_6 psl3_addr.bit.b6 /* Port P96 output peripheral function select bit */ +#define psl3_7 psl3_addr.bit.b7 /* Port P97 output peripheral function select bit */ + +/*------------------------------------------------------ + Function select register C +------------------------------------------------------*/ +union byte_def psc_addr; +#define psc psc_addr.byte + +#define psc_0 psc_addr.bit.b0 /* Port P70 output peripheral function select bit */ +#define psc_1 psc_addr.bit.b1 /* Port P71 output peripheral function select bit */ +#define psc_2 psc_addr.bit.b2 /* Port P72 output peripheral function select bit */ +#define psc_3 psc_addr.bit.b3 /* Port P73 output peripheral function select bit */ +#define psc_4 psc_addr.bit.b4 /* Port P74 output peripheral function select bit */ + /* (b5) Nothing is assigned */ +#define psc_6 psc_addr.bit.b6 /* Port P76 output peripheral function select bit */ +#define psc_7 psc_addr.bit.b7 /* Port Key input interrupt disable bit */ + +/*------------------------------------------------------ + Function Select Register C3 +------------------------------------------------------*/ +union byte_def psc3_addr; +#define psc3 psc3_addr.byte + /* (b5-b0) Nothing is assigned */ +#define psc3_6 psc3_addr.bit.b6 /* Port P96 output peripheral function select bit */ + /* (b7) Nothing is assigned */ + +/*------------------------------------------------------ + Function Select Register D1 +------------------------------------------------------*/ +union byte_def psd1_addr; +#define psd1 psd1_addr.byte + +#define psd1_0 psd1_addr.bit.b0 /* Port P70 output peripheral function select bit */ +#define psd1_1 psd1_addr.bit.b1 /* Port P71 output peripheral function select bit */ + /* (b5-b2) Nothing is assigned */ +#define psd1_6 psd1_addr.bit.b6 /* Port P76 output peripheral function select bit */ + /* (b7) Nothing is assigned */ + +/*------------------------------------------------------ + UARTi boud rate register (i=0,1,2,3,4) + (1) The MOV instruction should be used to set UiBRG register + (2) The UiBRG register should be set while stop data transmitting and receiveing +------------------------------------------------------*/ +union byte_def u0brg_addr; +#define u0brg u0brg_addr.byte + +union byte_def u1brg_addr; +#define u1brg u1brg_addr.byte + +union byte_def u2brg_addr; +#define u2brg u2brg_addr.byte + +union byte_def u3brg_addr; +#define u3brg u3brg_addr.byte + +union byte_def u4brg_addr; +#define u4brg u4brg_addr.byte + + + + +/******************************************************** +* declare SFR union * +********************************************************/ + +/*------------------------------------------------------ + Interrupt control registers +------------------------------------------------------*/ + +/*------------------------------------------------------ + ad0ic +------------------------------------------------------*/ +union byte_def ad0ic_addr; +#define ad0ic ad0ic_addr.byte + +#define ilvl0_ad0ic ad0ic_addr.bit.b0 +#define ilvl1_ad0ic ad0ic_addr.bit.b1 +#define ilvl2_ad0ic ad0ic_addr.bit.b2 +#define ir_ad0ic ad0ic_addr.bit.b3 + +/*------------------------------------------------------ + bcn0ic +------------------------------------------------------*/ +union byte_def bcn0ic_addr; +#define bcn0ic bcn0ic_addr.byte + +#define ilvl0_bcn0ic bcn0ic_addr.bit.b0 +#define ilvl1_bcn0ic bcn0ic_addr.bit.b1 +#define ilvl2_bcn0ic bcn0ic_addr.bit.b2 +#define ir_bcn0ic bcn0ic_addr.bit.b3 + +/*------------------------------------------------------ + bcn1ic +------------------------------------------------------*/ +union byte_def bcn1ic_addr; +#define bcn1ic bcn1ic_addr.byte + +#define ilvl0_bcn1ic bcn1ic_addr.bit.b0 +#define ilvl1_bcn1ic bcn1ic_addr.bit.b1 +#define ilvl2_bcn1ic bcn1ic_addr.bit.b2 +#define ir_bcn1ic bcn1ic_addr.bit.b3 + +/*------------------------------------------------------ + bcn2ic +------------------------------------------------------*/ +union byte_def bcn2ic_addr; +#define bcn2ic bcn2ic_addr.byte + +#define ilvl0_bcn2ic bcn2ic_addr.bit.b0 +#define ilvl1_bcn2ic bcn2ic_addr.bit.b1 +#define ilvl2_bcn2ic bcn2ic_addr.bit.b2 +#define ir_bcn2ic bcn2ic_addr.bit.b3 + +/*------------------------------------------------------ + bcn3ic +------------------------------------------------------*/ +union byte_def bcn3ic_addr; +#define bcn3ic bcn3ic_addr.byte + +#define ilvl0_bcn3ic bcn3ic_addr.bit.b0 +#define ilvl1_bcn3ic bcn3ic_addr.bit.b1 +#define ilvl2_bcn3ic bcn3ic_addr.bit.b2 +#define ir_bcn3ic bcn3ic_addr.bit.b3 + +/*------------------------------------------------------ + bcn4ic +------------------------------------------------------*/ +union byte_def bcn4ic_addr; +#define bcn4ic bcn4ic_addr.byte + +#define ilvl0_bcn4ic bcn4ic_addr.bit.b0 +#define ilvl1_bcn4ic bcn4ic_addr.bit.b1 +#define ilvl2_bcn4ic bcn4ic_addr.bit.b2 +#define ir_bcn4ic bcn4ic_addr.bit.b3 + +/*------------------------------------------------------ + dm0ic +------------------------------------------------------*/ +union byte_def dm0ic_addr; +#define dm0ic dm0ic_addr.byte + +#define ilvl0_dm0ic dm0ic_addr.bit.b0 +#define ilvl1_dm0ic dm0ic_addr.bit.b1 +#define ilvl2_dm0ic dm0ic_addr.bit.b2 +#define ir_dm0ic dm0ic_addr.bit.b3 + +/*------------------------------------------------------ + dm1ic +------------------------------------------------------*/ +union byte_def dm1ic_addr; +#define dm1ic dm1ic_addr.byte + +#define ilvl0_dm1ic dm1ic_addr.bit.b0 +#define ilvl1_dm1ic dm1ic_addr.bit.b1 +#define ilvl2_dm1ic dm1ic_addr.bit.b2 +#define ir_dm1ic dm1ic_addr.bit.b3 + +/*------------------------------------------------------ + dm2ic +------------------------------------------------------*/ +union byte_def dm2ic_addr; +#define dm2ic dm2ic_addr.byte + +#define ilvl0_dm2ic dm2ic_addr.bit.b0 +#define ilvl1_dm2ic dm2ic_addr.bit.b1 +#define ilvl2_dm2ic dm2ic_addr.bit.b2 +#define ir_dm2ic dm2ic_addr.bit.b3 + +/*------------------------------------------------------ + dm3ic +------------------------------------------------------*/ +union byte_def dm3ic_addr; +#define dm3ic dm3ic_addr.byte + +#define ilvl0_dm3ic dm3ic_addr.bit.b0 +#define ilvl1_dm3ic dm3ic_addr.bit.b1 +#define ilvl2_dm3ic dm3ic_addr.bit.b2 +#define ir_dm3ic dm3ic_addr.bit.b3 + + +/*------------------------------------------------------ + kupic +------------------------------------------------------*/ +union byte_def kupic_addr; +#define kupic kupic_addr.byte + +#define ilvl0_kupic kupic_addr.bit.b0 +#define ilvl1_kupic kupic_addr.bit.b1 +#define ilvl2_kupic kupic_addr.bit.b2 +#define ir_kupic kupic_addr.bit.b3 + +/*------------------------------------------------------ + ta0ic +------------------------------------------------------*/ +union byte_def ta0ic_addr; +#define ta0ic ta0ic_addr.byte + +#define ilvl0_ta0ic ta0ic_addr.bit.b0 +#define ilvl1_ta0ic ta0ic_addr.bit.b1 +#define ilvl2_ta0ic ta0ic_addr.bit.b2 +#define ir_ta0ic ta0ic_addr.bit.b3 + +/*------------------------------------------------------ + ta1ic +------------------------------------------------------*/ +union byte_def ta1ic_addr; +#define ta1ic ta1ic_addr.byte + +#define ilvl0_ta1ic ta1ic_addr.bit.b0 +#define ilvl1_ta1ic ta1ic_addr.bit.b1 +#define ilvl2_ta1ic ta1ic_addr.bit.b2 +#define ir_ta1ic ta1ic_addr.bit.b3 + +/*------------------------------------------------------ + ta2ic +------------------------------------------------------*/ +union byte_def ta2ic_addr; +#define ta2ic ta2ic_addr.byte +#define ilvl0_ta2ic ta2ic_addr.bit.b0 +#define ilvl1_ta2ic ta2ic_addr.bit.b1 +#define ilvl2_ta2ic ta2ic_addr.bit.b2 +#define ir_ta2ic ta2ic_addr.bit.b3 + +/*------------------------------------------------------ + ta3ic +------------------------------------------------------*/ +union byte_def ta3ic_addr; +#define ta3ic ta3ic_addr.byte + +#define ilvl0_ta3ic ta3ic_addr.bit.b0 +#define ilvl1_ta3ic ta3ic_addr.bit.b1 +#define ilvl2_ta3ic ta3ic_addr.bit.b2 +#define ir_ta3ic ta3ic_addr.bit.b3 + +/*------------------------------------------------------ + ta4ic +------------------------------------------------------*/ +union byte_def ta4ic_addr; +#define ta4ic ta4ic_addr.byte + +#define ilvl0_ta4ic ta4ic_addr.bit.b0 +#define ilvl1_ta4ic ta4ic_addr.bit.b1 +#define ilvl2_ta4ic ta4ic_addr.bit.b2 +#define ir_ta4ic ta4ic_addr.bit.b3 + +/*------------------------------------------------------ + tb0ic +------------------------------------------------------*/ +union byte_def tb0ic_addr; +#define tb0ic tb0ic_addr.byte + +#define ilvl0_tb0ic tb0ic_addr.bit.b0 +#define ilvl1_tb0ic tb0ic_addr.bit.b1 +#define ilvl2_tb0ic tb0ic_addr.bit.b2 +#define ir_tb0ic tb0ic_addr.bit.b3 + +/*------------------------------------------------------ + tb1ic +------------------------------------------------------*/ +union byte_def tb1ic_addr; +#define tb1ic tb1ic_addr.byte + +#define ilvl0_tb1ic tb1ic_addr.bit.b0 +#define ilvl1_tb1ic tb1ic_addr.bit.b1 +#define ilvl2_tb1ic tb1ic_addr.bit.b2 +#define ir_tb1ic tb1ic_addr.bit.b3 + +/*------------------------------------------------------ + tb2ic +------------------------------------------------------*/ +union byte_def tb2ic_addr; +#define tb2ic tb2ic_addr.byte + +#define ilvl0_tb2ic tb2ic_addr.bit.b0 +#define ilvl1_tb2ic tb2ic_addr.bit.b1 +#define ilvl2_tb2ic tb2ic_addr.bit.b2 +#define ir_tb2ic tb2ic_addr.bit.b3 + +/*------------------------------------------------------ + tb3ic +------------------------------------------------------*/ +union byte_def tb3ic_addr; +#define tb3ic tb3ic_addr.byte + +#define ilvl0_tb3ic tb3ic_addr.bit.b0 +#define ilvl1_tb3ic tb3ic_addr.bit.b1 +#define ilvl2_tb3ic tb3ic_addr.bit.b2 +#define ir_tb3ic tb3ic_addr.bit.b3 + +/*------------------------------------------------------ + tb4ic +------------------------------------------------------*/ +union byte_def tb4ic_addr; +#define tb4ic tb4ic_addr.byte + +#define ilvl0_tb4ic tb4ic_addr.bit.b0 +#define ilvl1_tb4ic tb4ic_addr.bit.b1 +#define ilvl2_tb4ic tb4ic_addr.bit.b2 +#define ir_tb4ic tb4ic_addr.bit.b3 + +/*------------------------------------------------------ + tb5ic +------------------------------------------------------*/ +union byte_def tb5ic_addr; +#define tb5ic tb5ic_addr.byte + +#define ilvl0_tb5ic tb5ic_addr.bit.b0 +#define ilvl1_tb5ic tb5ic_addr.bit.b1 +#define ilvl2_tb5ic tb5ic_addr.bit.b2 +#define ir_tb5ic tb5ic_addr.bit.b3 + +/*------------------------------------------------------ + s0tic +------------------------------------------------------*/ +union byte_def s0tic_addr; +#define s0tic s0tic_addr.byte + +#define ilvl0_s0tic s0tic_addr.bit.b0 +#define ilvl1_s0tic s0tic_addr.bit.b1 +#define ilvl2_s0tic s0tic_addr.bit.b2 +#define ir_s0tic s0tic_addr.bit.b3 + +/*------------------------------------------------------ + s1tic +------------------------------------------------------*/ +union byte_def s1tic_addr; +#define s1tic s1tic_addr.byte + +#define ilvl0_s1tic s1tic_addr.bit.b0 +#define ilvl1_s1tic s1tic_addr.bit.b1 +#define ilvl2_s1tic s1tic_addr.bit.b2 +#define ir_s1tic s1tic_addr.bit.b3 + +/*------------------------------------------------------ + s2tic +------------------------------------------------------*/ +union byte_def s2tic_addr; +#define s2tic s2tic_addr.byte + +#define ilvl0_s2tic s2tic_addr.bit.b0 +#define ilvl1_s2tic s2tic_addr.bit.b1 +#define ilvl2_s2tic s2tic_addr.bit.b2 +#define ir_s2tic s2tic_addr.bit.b3 + +/*------------------------------------------------------ + s3tic +------------------------------------------------------*/ +union byte_def s3tic_addr; +#define s3tic s3tic_addr.byte + +#define ilvl0_s3tic s3tic_addr.bit.b0 +#define ilvl1_s3tic s3tic_addr.bit.b1 +#define ilvl2_s3tic s3tic_addr.bit.b2 +#define ir_s3tic s3tic_addr.bit.b3 + +/*------------------------------------------------------ + s4tic +------------------------------------------------------*/ +union byte_def s4tic_addr; +#define s4tic s4tic_addr.byte + +#define ilvl0_s4tic s4tic_addr.bit.b0 +#define ilvl1_s4tic s4tic_addr.bit.b1 +#define ilvl2_s4tic s4tic_addr.bit.b2 +#define ir_s4tic s4tic_addr.bit.b3 + +/*------------------------------------------------------ + s0ric +------------------------------------------------------*/ +union byte_def s0ric_addr; +#define s0ric s0ric_addr.byte + +#define ilvl0_s0ric s0ric_addr.bit.b0 +#define ilvl1_s0ric s0ric_addr.bit.b1 +#define ilvl2_s0ric s0ric_addr.bit.b2 +#define ir_s0ric s0ric_addr.bit.b3 + +/*------------------------------------------------------ + s1ric +------------------------------------------------------*/ +union byte_def s1ric_addr; +#define s1ric s1ric_addr.byte + +#define ilvl0_s1ric s1ric_addr.bit.b0 +#define ilvl1_s1ric s1ric_addr.bit.b1 +#define ilvl2_s1ric s1ric_addr.bit.b2 +#define ir_s1ric s1ric_addr.bit.b3 + +/*------------------------------------------------------ + s2ric +------------------------------------------------------*/ +union byte_def s2ric_addr; +#define s2ric s2ric_addr.byte + +#define ilvl0_s2ric s2ric_addr.bit.b0 +#define ilvl1_s2ric s2ric_addr.bit.b1 +#define ilvl2_s2ric s2ric_addr.bit.b2 +#define ir_s2ric s2ric_addr.bit.b3 + +/*------------------------------------------------------ + s3ric +------------------------------------------------------*/ +union byte_def s3ric_addr; +#define s3ric s3ric_addr.byte + +#define ilvl0_s3ric s3ric_addr.bit.b0 +#define ilvl1_s3ric s3ric_addr.bit.b1 +#define ilvl2_s3ric s3ric_addr.bit.b2 +#define ir_s3ric s3ric_addr.bit.b3 + +/*------------------------------------------------------ + s4ric +------------------------------------------------------*/ +union byte_def s4ric_addr; +#define s4ric s4ric_addr.byte + +#define ilvl0_s4ric s4ric_addr.bit.b0 +#define ilvl1_s4ric s4ric_addr.bit.b1 +#define ilvl2_s4ric s4ric_addr.bit.b2 +#define ir_s4ric s4ric_addr.bit.b3 + +/*------------------------------------------------------ + iio0ic +------------------------------------------------------*/ +union byte_def iio0ic_addr; +#define iio0ic iio0ic_addr.byte + +#define ilvl0_iio0ic iio0ic_addr.bit.b0 +#define ilvl1_iio0ic iio0ic_addr.bit.b1 +#define ilvl2_iio0ic iio0ic_addr.bit.b2 +#define ir_iio0ic iio0ic_addr.bit.b3 + +/*------------------------------------------------------ + iio1ic +------------------------------------------------------*/ +union byte_def iio1ic_addr; +#define iio1ic iio1ic_addr.byte + +#define ilvl0_iio1ic iio1ic_addr.bit.b0 +#define ilvl1_iio1ic iio1ic_addr.bit.b1 +#define ilvl2_iio1ic iio1ic_addr.bit.b2 +#define ir_iio1ic iio1ic_addr.bit.b3 + +/*------------------------------------------------------ + iio2ic +------------------------------------------------------*/ +union byte_def iio2ic_addr; +#define iio2ic iio2ic_addr.byte + +#define ilvl0_iio2ic iio2ic_addr.bit.b0 +#define ilvl1_iio2ic iio2ic_addr.bit.b1 +#define ilvl2_iio2ic iio2ic_addr.bit.b2 +#define ir_iio2ic iio2ic_addr.bit.b3 + +/*------------------------------------------------------ + iio3ic +------------------------------------------------------*/ +union byte_def iio3ic_addr; +#define iio3ic iio3ic_addr.byte + +#define ilvl0_iio3ic iio3ic_addr.bit.b0 +#define ilvl1_iio3ic iio3ic_addr.bit.b1 +#define ilvl2_iio3ic iio3ic_addr.bit.b2 +#define ir_iio3ic iio3ic_addr.bit.b3 + +/*------------------------------------------------------ + iio4ic +------------------------------------------------------*/ +union byte_def iio4ic_addr; +#define iio4ic iio4ic_addr.byte + +#define ilvl0_iio4ic iio4ic_addr.bit.b0 +#define ilvl1_iio4ic iio4ic_addr.bit.b1 +#define ilvl2_iio4ic iio4ic_addr.bit.b2 +#define ir_iio4ic iio4ic_addr.bit.b3 + +/*------------------------------------------------------ + int0ic +------------------------------------------------------*/ +union byte_def int0ic_addr; +#define int0ic int0ic_addr.byte + +#define ilvl0_int0ic int0ic_addr.bit.b0 +#define ilvl1_int0ic int0ic_addr.bit.b1 +#define ilvl2_int0ic int0ic_addr.bit.b2 +#define ir_int0ic int0ic_addr.bit.b3 +#define pol_int0ic int0ic_addr.bit.b4 +#define lvs_int0ic int0ic_addr.bit.b5 + +/*------------------------------------------------------ + int1ic +------------------------------------------------------*/ +union byte_def int1ic_addr; +#define int1ic int1ic_addr.byte + +#define ilvl0_int1ic int1ic_addr.bit.b0 +#define ilvl1_int1ic int1ic_addr.bit.b1 +#define ilvl2_int1ic int1ic_addr.bit.b2 +#define ir_int1ic int1ic_addr.bit.b3 +#define pol_int1ic int1ic_addr.bit.b4 +#define lvs_int1ic int1ic_addr.bit.b5 + +/*------------------------------------------------------ + int2ic +------------------------------------------------------*/ +union byte_def int2ic_addr; +#define int2ic int2ic_addr.byte + +#define ilvl0_int2ic int2ic_addr.bit.b0 +#define ilvl1_int2ic int2ic_addr.bit.b1 +#define ilvl2_int2ic int2ic_addr.bit.b2 +#define ir_int2ic int2ic_addr.bit.b3 +#define pol_int2ic int2ic_addr.bit.b4 +#define lvs_int2ic int2ic_addr.bit.b5 + +/*------------------------------------------------------ + int3ic +------------------------------------------------------*/ +union byte_def int3ic_addr; +#define int3ic int3ic_addr.byte + +#define ilvl0_int3ic int3ic_addr.bit.b0 +#define ilvl1_int3ic int3ic_addr.bit.b1 +#define ilvl2_int3ic int3ic_addr.bit.b2 +#define ir_int3ic int3ic_addr.bit.b3 +#define pol_int3ic int3ic_addr.bit.b4 +#define lvs_int3ic int3ic_addr.bit.b5 + +/*------------------------------------------------------ + int4ic +------------------------------------------------------*/ +union byte_def int4ic_addr; +#define int4ic int4ic_addr.byte + +#define ilvl0_int4ic int4ic_addr.bit.b0 +#define ilvl1_int4ic int4ic_addr.bit.b1 +#define ilvl2_int4ic int4ic_addr.bit.b2 +#define ir_int4ic int4ic_addr.bit.b3 +#define pol_int4ic int4ic_addr.bit.b4 +#define lvs_int4ic int4ic_addr.bit.b5 + +/*------------------------------------------------------ + int5ic +------------------------------------------------------*/ +union byte_def int5ic_addr; +#define int5ic int5ic_addr.byte + +#define ilvl0_int5ic int5ic_addr.bit.b0 +#define ilvl1_int5ic int5ic_addr.bit.b1 +#define ilvl2_int5ic int5ic_addr.bit.b2 +#define ir_int5ic int5ic_addr.bit.b3 +#define pol_int5ic int5ic_addr.bit.b4 +#define lvs_int5ic int5ic_addr.bit.b5 + +/*------------------------------------------------------ + Interrupt Request Register +------------------------------------------------------*/ + +/*------------------------------------------------------ + iio0ir +------------------------------------------------------*/ +union byte_def iio0ir_addr; +#define iio0ir iio0ir_addr.byte + /* (b0) - */ + /* (b1) - */ +#define tm13r iio0ir_addr.bit.b2 /* II/O time measurement 3 interrupt */ +#define po13r iio0ir_addr.bit.b2 /* II/O waveform generation function 3 interrupt */ + /* (b3) - */ +#define g0rir iio0ir_addr.bit.b4 /* II/O communication unit 0 HDLC data processing function interrupt */ +#define sio0rr iio0ir_addr.bit.b5 /* II/O communication unit 0 receive interrupt */ + /* (b6) - */ +#define can10r iio0ir_addr.bit.b7 /* CAN1 communication function interrupt */ + +/*------------------------------------------------------ + iio1ir +------------------------------------------------------*/ +union byte_def iio1ir_addr; +#define iio1ir iio1ir_addr.byte + /* (b0) - */ + /* (b1) - */ +#define tm14r iio1ir_addr.bit.b2 /* II/O time measurement 4 interrupt */ +#define po14r iio1ir_addr.bit.b2 /* II/O waveform generation function 4 interrupt */ + /* (b3) - */ +#define g0tor iio1ir_addr.bit.b4 /* II/O communication unit 0 HDLC data processing function interrupt */ +#define sio0tr iio1ir_addr.bit.b5 /* II/O communication unit 0 transmit interrupt */ + /* (b6) - */ +#define can11r iio1ir_addr.bit.b7 /* CAN1 communication function interrupt */ + +/*------------------------------------------------------ + iio2ir +------------------------------------------------------*/ +union byte_def iio2ir_addr; +#define iio2ir iio2ir_addr.byte + /* (b0) - */ + /* (b1) - */ +#define tm12r iio2ir_addr.bit.b2 /* II/O time measurement 2 interrupt */ +#define po12r iio2ir_addr.bit.b2 /* II/O waveform generation function 2 interrupt */ + /* (b3) - */ +#define g1rir iio2ir_addr.bit.b4 /* II/O communication unit 1 HDLC data processing function interrupt */ +#define sio1rr iio2ir_addr.bit.b5 /* II/O communication unit 1 receive interrupt */ + /* (b6) - */ + /* (b7) - */ + +/*------------------------------------------------------ + iio3ir +------------------------------------------------------*/ +union byte_def iio3ir_addr; +#define iio3ir iio3ir_addr.byte + /* (b0) - */ + /* (b1) - */ +#define tm10r iio3ir_addr.bit.b2 /* II/O time measurement 0 interrupt */ +#define po10r iio3ir_addr.bit.b2 /* II/O waveform generation function 0 interrupt */ + /* (b3) - */ +#define g1tor iio3ir_addr.bit.b4 /* II/O communication unit 1 HDLC data processing function interrupt */ +#define sio1tr iio3ir_addr.bit.b5 /* II/O communication unit 0 transmit interrupt */ + /* (b6) - */ + /* (b7) - */ + +/*------------------------------------------------------ + iio4ir +------------------------------------------------------*/ +union byte_def iio4ir_addr; +#define iio4ir iio4ir_addr.byte + /* (b0) - */ + /* (b1) - */ +#define tm17r iio4ir_addr.bit.b2 /* II/O time measurement 7 interrupt */ +#define po17r iio4ir_addr.bit.b2 /* II/O waveform generation function 7 interrupt */ + /* (b3) - */ +#define bt1r iio4ir_addr.bit.b4 /* II/O communication base timer interrupt */ + /* (b5) - */ +#define srt1r iio4ir_addr.bit.b6 /* II/O special communication function interrupt */ +#define srt0r iio4ir_addr.bit.b7 /* II/O special communication function interrupt */ + +/*------------------------------------------------------ + iio5ir +------------------------------------------------------*/ +union byte_def iio5ir_addr; +#define iio5ir iio5ir_addr.byte + /* (b0) - */ + /* (b5-b1) - */ +#define can1wur iio5ir_addr.bit.b6 /* CAN1 wake-up interrupt */ +#define can12r iio5ir_addr.bit.b7 /* CAN1 communication function interrupt */ + +/*------------------------------------------------------ + Interrupt Enable Register +------------------------------------------------------*/ + +/*------------------------------------------------------ + iio0ie +------------------------------------------------------*/ +union byte_def iio0ie_addr; +#define iio0ie iio0ie_addr.byte +#define irlt_iio0ie iio0ie_addr.bit.b0 /* Interrupt request select bit */ + /* (b1) - */ +#define tm13e iio0ie_addr.bit.b2 /* II/O time measurement 3 interrupt */ +#define po13e iio0ie_addr.bit.b2 /* II/O waveform generation function 3 interrupt */ + /* (b3) - */ +#define g0rie iio0ie_addr.bit.b4 /* II/O communication unit 0 HDLC data processing function interrupt */ +#define sio0re iio0ie_addr.bit.b5 /* II/O communication unit 0 receive interrupt */ + /* (b6) - */ +#define can10e iio0ie_addr.bit.b7 /* CAN1 communication function interrupt */ + +/*------------------------------------------------------ + iio1ie +------------------------------------------------------*/ +union byte_def iio1ie_addr; +#define iio1ie iio1ie_addr.byte +#define irlt_iio1ie iio1ie_addr.bit.b0 /* Interrupt request select bit */ + /* (b1) - */ +#define tm14e iio1ie_addr.bit.b2 /* II/O time measurement 4 interrupt */ +#define po14e iio1ie_addr.bit.b2 /* II/O waveform generation function 4 interrupt */ + /* (b3) - */ +#define g0toe iio1ie_addr.bit.b4 /* II/O communication unit 0 HDLC data processing function interrupt */ +#define sio0te iio1ie_addr.bit.b5 /* II/O communication unit 0 receive interrupt */ + /* (b6) - */ +#define can11e iio1ie_addr.bit.b7 /* CAN1 communication function interrupt */ + +/*------------------------------------------------------ + iio2ie +------------------------------------------------------*/ +union byte_def iio2ie_addr; +#define iio2ie iio2ie_addr.byte +#define irlt_iio2ie iio2ie_addr.bit.b0 /* Interrupt request select bit */ + /* (b1) - */ +#define tm12e iio2ie_addr.bit.b2 /* II/O time measurement 2 interrupt */ +#define po12e iio2ie_addr.bit.b2 /* II/O waveform generation function 2 interrupt */ + /* (b3) - */ +#define g1rie iio2ie_addr.bit.b4 /* II/O communication unit 1 HDLC data processing function interrupt */ +#define sio1re iio2ie_addr.bit.b5 /* II/O communication unit 1 receive interrupt */ + /* (b6) - */ + /* (b7) - */ + +/*------------------------------------------------------ + iio3ie +------------------------------------------------------*/ +union byte_def iio3ie_addr; +#define iio3ie iio3ie_addr.byte +#define irlt_iio3ie iio3ie_addr.bit.b0 /* Interrupt request select bit */ + /* (b1) - */ +#define tm10e iio3ie_addr.bit.b2 /* II/O time measurement 0 interrupt */ +#define po10e iio3ie_addr.bit.b2 /* II/O waveform generation function 0 interrupt */ + /* (b3) - */ +#define g1toe iio3ie_addr.bit.b4 /* II/O communication unit 1 HDLC data processing function interrupt */ +#define sio1te iio3ie_addr.bit.b5 /* II/O communication unit 0 transmit interrupt */ + /* (b6) - */ + /* (b7) - */ + +/*------------------------------------------------------ + iio4ie +------------------------------------------------------*/ +union byte_def iio4ie_addr; +#define iio4ie iio4ie_addr.byte +#define irlt_iio4ie iio4ie_addr.bit.b0 /* Interrupt request select bit */ + /* (b1) - */ +#define tm17e iio4ie_addr.bit.b2 /* II/O time measurement 7 interrupt */ +#define po17e iio4ie_addr.bit.b2 /* II/O waveform generation function 7 interrupt */ + /* (b3) - */ +#define bt1e iio4ie_addr.bit.b4 /* II/O communication base timer interrupt */ + /* (b5) - */ +#define srt1e iio4ie_addr.bit.b6 /* II/O special communication function interrupt */ +#define srt0e iio4ie_addr.bit.b7 /* II/O special communication function interrupt */ + +/*------------------------------------------------------ + Timer mode registers +------------------------------------------------------*/ + +/*------------------------------------------------------ + ta0mr +------------------------------------------------------*/ +union byte_def ta0mr_addr; +#define ta0mr ta0mr_addr.byte + +#define tmod0_ta0mr ta0mr_addr.bit.b0 +#define tmod1_ta0mr ta0mr_addr.bit.b1 +#define mr1_ta0mr ta0mr_addr.bit.b3 +#define mr2_ta0mr ta0mr_addr.bit.b4 +#define mr3_ta0mr ta0mr_addr.bit.b5 +#define tck0_ta0mr ta0mr_addr.bit.b6 +#define tck1_ta0mr ta0mr_addr.bit.b7 + +/*------------------------------------------------------ + ta1mr +------------------------------------------------------*/ +union byte_def ta1mr_addr; +#define ta1mr ta1mr_addr.byte + +#define tmod0_ta1mr ta1mr_addr.bit.b0 +#define tmod1_ta1mr ta1mr_addr.bit.b1 +#define mr1_ta1mr ta1mr_addr.bit.b3 +#define mr2_ta1mr ta1mr_addr.bit.b4 +#define mr3_ta1mr ta1mr_addr.bit.b5 +#define tck0_ta1mr ta1mr_addr.bit.b6 +#define tck1_ta1mr ta1mr_addr.bit.b7 + +/*------------------------------------------------------ + ta2mr +------------------------------------------------------*/ +union byte_def ta2mr_addr; +#define ta2mr ta2mr_addr.byte + +#define tmod0_ta2mr ta2mr_addr.bit.b0 +#define tmod1_ta2mr ta2mr_addr.bit.b1 +#define mr1_ta2mr ta2mr_addr.bit.b3 +#define mr2_ta2mr ta2mr_addr.bit.b4 +#define mr3_ta2mr ta2mr_addr.bit.b5 +#define tck0_ta2mr ta2mr_addr.bit.b6 +#define tck1_ta2mr ta2mr_addr.bit.b7 + +/*------------------------------------------------------ + ta3mr +------------------------------------------------------*/ +union byte_def ta3mr_addr; +#define ta3mr ta3mr_addr.byte + +#define tmod0_ta3mr ta3mr_addr.bit.b0 +#define tmod1_ta3mr ta3mr_addr.bit.b1 +#define mr1_ta3mr ta3mr_addr.bit.b3 +#define mr2_ta3mr ta3mr_addr.bit.b4 +#define mr3_ta3mr ta3mr_addr.bit.b5 +#define tck0_ta3mr ta3mr_addr.bit.b6 +#define tck1_ta3mr ta3mr_addr.bit.b7 + +/*------------------------------------------------------ + ta4mr +------------------------------------------------------*/ +union byte_def ta4mr_addr; +#define ta4mr ta4mr_addr.byte + +#define tmod0_ta4mr ta4mr_addr.bit.b0 +#define tmod1_ta4mr ta4mr_addr.bit.b1 +#define mr1_ta4mr ta4mr_addr.bit.b3 +#define mr2_ta4mr ta4mr_addr.bit.b4 +#define mr3_ta4mr ta4mr_addr.bit.b5 +#define tck0_ta4mr ta4mr_addr.bit.b6 +#define tck1_ta4mr ta4mr_addr.bit.b7 + +/*------------------------------------------------------ + tb0mr + ------------------------------------------------------*/ +union byte_def tb0mr_addr; +#define tb0mr tb0mr_addr.byte + +#define tmod0_tb0mr tb0mr_addr.bit.b0 +#define tmod1_tb0mr tb0mr_addr.bit.b1 +#define mr0_tb0mr tb0mr_addr.bit.b2 +#define mr1_tb0mr tb0mr_addr.bit.b3 +#define mr2_tb0mr tb0mr_addr.bit.b4 +#define mr3_tb0mr tb0mr_addr.bit.b5 +#define tck0_tb0mr tb0mr_addr.bit.b6 +#define tck1_tb0mr tb0mr_addr.bit.b7 + +/*------------------------------------------------------ + tb1mr +------------------------------------------------------*/ +union byte_def tb1mr_addr; +#define tb1mr tb1mr_addr.byte + +#define tmod0_tb1mr tb1mr_addr.bit.b0 +#define tmod1_tb1mr tb1mr_addr.bit.b1 +#define mr0_tb1mr tb1mr_addr.bit.b2 +#define mr1_tb1mr tb1mr_addr.bit.b3 +#define mr2_tb1mr tb1mr_addr.bit.b4 +#define mr3_tb1mr tb1mr_addr.bit.b5 +#define tck0_tb1mr tb1mr_addr.bit.b6 +#define tck1_tb1mr tb1mr_addr.bit.b7 + +/*------------------------------------------------------ + tb2mr +------------------------------------------------------*/ +union byte_def tb2mr_addr; +#define tb2mr tb2mr_addr.byte + +#define tmod0_tb2mr tb2mr_addr.bit.b0 +#define tmod1_tb2mr tb2mr_addr.bit.b1 +#define mr0_tb2mr tb2mr_addr.bit.b2 +#define mr1_tb2mr tb2mr_addr.bit.b3 +#define mr2_tb2mr tb2mr_addr.bit.b4 +#define mr3_tb2mr tb2mr_addr.bit.b5 +#define tck0_tb2mr tb2mr_addr.bit.b6 +#define tck1_tb2mr tb2mr_addr.bit.b7 + +/*------------------------------------------------------ + tb3mr +------------------------------------------------------*/ +union byte_def tb3mr_addr; +#define tb3mr tb3mr_addr.byte + +#define tmod0_tb3mr tb3mr_addr.bit.b0 +#define tmod1_tb3mr tb3mr_addr.bit.b1 +#define mr0_tb3mr tb3mr_addr.bit.b2 +#define mr1_tb3mr tb3mr_addr.bit.b3 +#define mr2_tb3mr tb3mr_addr.bit.b4 +#define mr3_tb3mr tb3mr_addr.bit.b5 +#define tck0_tb3mr tb3mr_addr.bit.b6 +#define tck1_tb3mr tb3mr_addr.bit.b7 + +/*------------------------------------------------------ + tb4mr +------------------------------------------------------*/ +union byte_def tb4mr_addr; +#define tb4mr tb4mr_addr.byte + +#define tmod0_tb4mr tb4mr_addr.bit.b0 +#define tmod1_tb4mr tb4mr_addr.bit.b1 +#define mr0_tb4mr tb4mr_addr.bit.b2 +#define mr1_tb4mr tb4mr_addr.bit.b3 +#define mr2_tb4mr tb4mr_addr.bit.b4 +#define mr3_tb4mr tb4mr_addr.bit.b5 +#define tck0_tb4mr tb4mr_addr.bit.b6 +#define tck1_tb4mr tb4mr_addr.bit.b7 + +/*------------------------------------------------------ + tb5mr +------------------------------------------------------*/ +union byte_def tb5mr_addr; +#define tb5mr tb5mr_addr.byte + +#define tmod0_tb5mr tb5mr_addr.bit.b0 +#define tmod1_tb5mr tb5mr_addr.bit.b1 +#define mr0_tb5mr tb5mr_addr.bit.b2 +#define mr1_tb5mr tb5mr_addr.bit.b3 +#define mr2_tb5mr tb5mr_addr.bit.b4 +#define mr3_tb5mr tb5mr_addr.bit.b5 +#define tck0_tb5mr tb5mr_addr.bit.b6 +#define tck1_tb5mr tb5mr_addr.bit.b7 + +/*------------------------------------------------------ + UARTi transmit/receive mode registers +------------------------------------------------------*/ + +/*------------------------------------------------------ + u0mr +------------------------------------------------------*/ +union byte_def u0mr_addr; +#define u0mr u0mr_addr.byte + +#define smd0_u0mr u0mr_addr.bit.b0 /* Serial I/O mode select bit */ +#define smd1_u0mr u0mr_addr.bit.b1 /* Serial I/O mode select bit */ +#define smd2_u0mr u0mr_addr.bit.b2 /* Serial I/O mode select bit */ +#define ckdir_u0mr u0mr_addr.bit.b3 /* Internal/external clock select bit */ +#define stps_u0mr u0mr_addr.bit.b4 /* Stop bit length select bit */ +#define pry_u0mr u0mr_addr.bit.b5 /* Odd/even parity select bit */ +#define prye_u0mr u0mr_addr.bit.b6 /* Parity enable bit */ +#define iopol_u0mr u0mr_addr.bit.b7 /* TxD RxD I/O polarity switch bit */ + +/*------------------------------------------------------ + u1mr +------------------------------------------------------*/ +union byte_def u1mr_addr; +#define u1mr u1mr_addr.byte + +#define smd0_u1mr u1mr_addr.bit.b0 +#define smd1_u1mr u1mr_addr.bit.b1 +#define smd2_u1mr u1mr_addr.bit.b2 +#define ckdir_u1mr u1mr_addr.bit.b3 +#define stps_u1mr u1mr_addr.bit.b4 +#define pry_u1mr u1mr_addr.bit.b5 +#define prye_u1mr u1mr_addr.bit.b6 +#define iopol_u1mr u1mr_addr.bit.b7 + +/*------------------------------------------------------ + u2mr +------------------------------------------------------*/ +union byte_def u2mr_addr; +#define u2mr u2mr_addr.byte + +#define smd0_u2mr u2mr_addr.bit.b0 +#define smd1_u2mr u2mr_addr.bit.b1 +#define smd2_u2mr u2mr_addr.bit.b2 +#define ckdir_u2mr u2mr_addr.bit.b3 +#define stps_u2mr u2mr_addr.bit.b4 +#define pry_u2mr u2mr_addr.bit.b5 +#define prye_u2mr u2mr_addr.bit.b6 +#define iopol_u2mr u2mr_addr.bit.b7 + +/*------------------------------------------------------ + u3mr +------------------------------------------------------*/ +union byte_def u3mr_addr; +#define u3mr u3mr_addr.byte + +#define smd0_u3mr u3mr_addr.bit.b0 +#define smd1_u3mr u3mr_addr.bit.b1 +#define smd2_u3mr u3mr_addr.bit.b2 +#define ckdir_u3mr u3mr_addr.bit.b3 +#define stps_u3mr u3mr_addr.bit.b4 +#define pry_u3mr u3mr_addr.bit.b5 +#define prye_u3mr u3mr_addr.bit.b6 +#define iopol_u3mr u3mr_addr.bit.b7 + +/*------------------------------------------------------ + u4mr +------------------------------------------------------*/ +union byte_def u4mr_addr; +#define u4mr u4mr_addr.byte + +#define smd0_u4mr u4mr_addr.bit.b0 +#define smd1_u4mr u4mr_addr.bit.b1 +#define smd2_u4mr u4mr_addr.bit.b2 +#define ckdir_u4mr u4mr_addr.bit.b3 +#define stps_u4mr u4mr_addr.bit.b4 +#define pry_u4mr u4mr_addr.bit.b5 +#define prye_u4mr u4mr_addr.bit.b6 +#define iopol_u4mr u4mr_addr.bit.b7 + +/*------------------------------------------------------ + UARTi transmit/receive control register 0 (i=0,1,2,3,4) +------------------------------------------------------*/ + +/*------------------------------------------------------ + u0c0 +------------------------------------------------------*/ +union byte_def u0c0_addr; +#define u0c0 u0c0_addr.byte + +#define clk0_u0c0 u0c0_addr.bit.b0 /* BRG count source select bit */ +#define clk1_u0c0 u0c0_addr.bit.b1 /* BRG count source select bit */ +#define crs_u0c0 u0c0_addr.bit.b2 /* CTS~/RTS~ function select bit */ +#define txept_u0c0 u0c0_addr.bit.b3 /* Transmit register empty flag */ +#define crd_u0c0 u0c0_addr.bit.b4 /* CTS~/RTS~ disable bit */ +#define nch_u0c0 u0c0_addr.bit.b5 /* Data output select bit */ +#define ckpol_u0c0 u0c0_addr.bit.b6 /* CLK polarity select bit */ +#define uform_u0c0 u0c0_addr.bit.b7 /* Transfer format select bit */ + +/*------------------------------------------------------ + u1c0 +------------------------------------------------------*/ +union byte_def u1c0_addr; +#define u1c0 u1c0_addr.byte + +#define clk0_u1c0 u1c0_addr.bit.b0 +#define clk1_u1c0 u1c0_addr.bit.b1 +#define crs_u1c0 u1c0_addr.bit.b2 +#define txept_u1c0 u1c0_addr.bit.b3 +#define crd_u1c0 u1c0_addr.bit.b4 +#define nch_u1c0 u1c0_addr.bit.b5 +#define ckpol_u1c0 u1c0_addr.bit.b6 +#define uform_u1c0 u1c0_addr.bit.b7 + +/*------------------------------------------------------ + u2c0 +------------------------------------------------------*/ +union byte_def u2c0_addr; +#define u2c0 u2c0_addr.byte + +#define clk0_u2c0 u2c0_addr.bit.b0 +#define clk1_u2c0 u2c0_addr.bit.b1 +#define crs_u2c0 u2c0_addr.bit.b2 +#define txept_u2c0 u2c0_addr.bit.b3 +#define crd_u2c0 u2c0_addr.bit.b4 +#define ckpol_u2c0 u2c0_addr.bit.b6 +#define uform_u2c0 u2c0_addr.bit.b7 + +/*------------------------------------------------------ + u3c0 +------------------------------------------------------*/ +union byte_def u3c0_addr; +#define u3c0 u3c0_addr.byte + +#define clk0_u3c0 u3c0_addr.bit.b0 +#define clk1_u3c0 u3c0_addr.bit.b1 +#define crs_u3c0 u3c0_addr.bit.b2 +#define txept_u3c0 u3c0_addr.bit.b3 +#define crd_u3c0 u3c0_addr.bit.b4 +#define nch_u3c0 u3c0_addr.bit.b5 +#define ckpol_u3c0 u3c0_addr.bit.b6 +#define uform_u3c0 u3c0_addr.bit.b7 + +/*------------------------------------------------------ + u4c0 +------------------------------------------------------*/ +union byte_def u4c0_addr; +#define u4c0 u4c0_addr.byte + +#define clk0_u4c0 u4c0_addr.bit.b0 +#define clk1_u4c0 u4c0_addr.bit.b1 +#define crs_u4c0 u4c0_addr.bit.b2 +#define txept_u4c0 u4c0_addr.bit.b3 +#define crd_u4c0 u4c0_addr.bit.b4 +#define nch_u4c0 u4c0_addr.bit.b5 +#define ckpol_u4c0 u4c0_addr.bit.b6 +#define uform_u4c0 u4c0_addr.bit.b7 + +/*------------------------------------------------------ + UARTi receive buffer register (i=0,1,2,3,4) +------------------------------------------------------*/ + +/*------------------------------------------------------ + u0rb +------------------------------------------------------*/ +#define u0rb u0rb_addr.word +#define u0rbl u0rb_addr.byte.low +#define u0rbh u0rb_addr.byte.high + +#define abt_u0rb u0rb_addr.bit.b11 /* Arbitration lost detect flag */ +#define oer_u0rb u0rb_addr.bit.b12 /* Overrun error flag */ +#define fer_u0rb u0rb_addr.bit.b13 /* Framing error flag */ +#define per_u0rb u0rb_addr.bit.b14 /* Parity error flag */ +#define sum_u0rb u0rb_addr.bit.b15 /* Error sum flag */ + +/*------------------------------------------------------ + u1rb +------------------------------------------------------*/ +#define u1rb u1rb_addr.word +#define u1rbl u1rb_addr.byte.low +#define u1rbh u1rb_addr.byte.high + +#define abt_u1rb u1rb_addr.bit.b11 +#define oer_u1rb u1rb_addr.bit.b12 +#define fer_u1rb u1rb_addr.bit.b13 +#define per_u1rb u1rb_addr.bit.b14 +#define sum_u1rb u1rb_addr.bit.b15 + +/*------------------------------------------------------ + u2rb +------------------------------------------------------*/ +#define u2rb u2rb_addr.word +#define u2rbl u2rb_addr.byte.low +#define u2rbh u2rb_addr.byte.high + +#define abt_u2rb u2rb_addr.bit.b11 +#define oer_u2rb u2rb_addr.bit.b12 +#define fer_u2rb u2rb_addr.bit.b13 +#define per_u2rb u2rb_addr.bit.b14 +#define sum_u2rb u2rb_addr.bit.b15 + +/*------------------------------------------------------ + u3rb +------------------------------------------------------*/ +#define u3rb u3rb_addr.word +#define u3rbl u3rb_addr.byte.low +#define u3rbh u3rb_addr.byte.high + +#define abt_u3rb u3rb_addr.bit.b11 +#define oer_u3rb u3rb_addr.bit.b12 +#define fer_u3rb u3rb_addr.bit.b13 +#define per_u3rb u3rb_addr.bit.b14 +#define sum_u3rb u3rb_addr.bit.b15 + +/*------------------------------------------------------ + u4rb +------------------------------------------------------*/ +#define u4rb u4rb_addr.word +#define u4rbl u4rb_addr.byte.low +#define u4rbh u4rb_addr.byte.high + +#define abt_u4rb u4rb_addr.bit.b11 +#define oer_u4rb u4rb_addr.bit.b12 +#define fer_u4rb u4rb_addr.bit.b13 +#define per_u4rb u4rb_addr.bit.b14 +#define sum_u4rb u4rb_addr.bit.b15 + +/*------------------------------------------------------ + UARTi (i= 0,1,2,3,4) special mode registers +------------------------------------------------------*/ + +/*------------------------------------------------------ + u0smr +------------------------------------------------------*/ +union byte_def u0smr_addr; +#define u0smr u0smr_addr.byte + +#define iicm_u0smr u0smr_addr.bit.b0 /* IIC mode select bit */ +#define abc_u0smr u0smr_addr.bit.b1 /* Arbitration lost detect flag control bit */ +#define bbs_u0smr u0smr_addr.bit.b2 /* Bus busy flag */ +#define lsyn_u0smr u0smr_addr.bit.b3 /* SCLL sync output enable bit */ +#define abscs_u0smr u0smr_addr.bit.b4 /* Bus conflict detect sampling clock select bit */ +#define acse_u0smr u0smr_addr.bit.b5 /* Auto clear function select bit for transmit enable bit */ +#define sss_u0smr u0smr_addr.bit.b6 /* Transmit start condition select bit */ +#define sclkdiv_u0smr u0smr_addr.bit.b7 /* Clock divide synchronous bit */ + +/*------------------------------------------------------ + u1smr +------------------------------------------------------*/ +union byte_def u1smr_addr; +#define u1smr u1smr_addr.byte + +#define iicm_u1smr u1smr_addr.bit.b0 +#define abc_u1smr u1smr_addr.bit.b1 +#define bbs_u1smr u1smr_addr.bit.b2 +#define lsyn_u1smr u1smr_addr.bit.b3 +#define abscs_u1smr u1smr_addr.bit.b4 +#define acse_u1smr u1smr_addr.bit.b5 +#define sss_u1smr u1smr_addr.bit.b6 +#define sclkdiv_u1smr u1smr_addr.bit.b7 + +/*------------------------------------------------------ + u2smr +------------------------------------------------------*/ +union byte_def u2smr_addr; +#define u2smr u2smr_addr.byte + +#define iicm_u2smr u2smr_addr.bit.b0 +#define abc_u2smr u2smr_addr.bit.b1 +#define bbs_u2smr u2smr_addr.bit.b2 +#define lsyn_u2smr u2smr_addr.bit.b3 +#define abscs_u2smr u2smr_addr.bit.b4 +#define acse_u2smr u2smr_addr.bit.b5 +#define sss_u2smr u2smr_addr.bit.b6 +#define sclkdiv_u2smr u2smr_addr.bit.b7 + +/*------------------------------------------------------ + u3smr +------------------------------------------------------*/ +union byte_def u3smr_addr; +#define u3smr u3smr_addr.byte + +#define iicm_u3smr u3smr_addr.bit.b0 +#define abc_u3smr u3smr_addr.bit.b1 +#define bbs_u3smr u3smr_addr.bit.b2 +#define lsyn_u3smr u3smr_addr.bit.b3 +#define abscs_u3smr u3smr_addr.bit.b4 +#define acse_u3smr u3smr_addr.bit.b5 +#define sss_u3smr u3smr_addr.bit.b6 +#define sclkdiv_u3smr u3smr_addr.bit.b7 + +/*------------------------------------------------------ + u4smr +------------------------------------------------------*/ +union byte_def u4smr_addr; +#define u4smr u4smr_addr.byte + +#define iicm_u4smr u4smr_addr.bit.b0 +#define abc_u4smr u4smr_addr.bit.b1 +#define bbs_u4smr u4smr_addr.bit.b2 +#define lsyn_u4smr u4smr_addr.bit.b3 +#define abscs_u4smr u4smr_addr.bit.b4 +#define acse_u4smr u4smr_addr.bit.b5 +#define sss_u4smr u4smr_addr.bit.b6 +#define sclkdiv_u4smr u4smr_addr.bit.b7 + +/*------------------------------------------------------ + UARTi (i=0,1,2,3,4) special mode register 2 +------------------------------------------------------*/ + +/*------------------------------------------------------ + u0smr2 +------------------------------------------------------*/ +union byte_def u0smr2_addr; +#define u0smr2 u0smr2_addr.byte + +#define iicm2_u0smr2 u0smr2_addr.bit.b0 /* IIC mode select bit2 */ +#define csc_u0smr2 u0smr2_addr.bit.b1 /* Clock synchronous bit */ +#define swc_u0smr2 u0smr2_addr.bit.b2 /* SCL wait output bit */ +#define als_u0smr2 u0smr2_addr.bit.b3 /* SDA output stop bit */ +#define stc_u0smr2 u0smr2_addr.bit.b4 /* UARTi initialize bit */ +#define swc2_u0smr2 u0smr2_addr.bit.b5 /* SCL wait output bit2 */ +#define sdhi_u0smr2 u0smr2_addr.bit.b6 /* SDA output inhibit bit */ +#define su1him_u0smr2 u0smr2_addr.bit.b7 /* External clock synchronous enable bit */ + + +/*------------------------------------------------------ + u1smr2 +------------------------------------------------------*/ +union byte_def u1smr2_addr; +#define u1smr2 u1smr2_addr.byte + +#define iicm2_u1smr2 u1smr2_addr.bit.b0 +#define csc_u1smr2 u1smr2_addr.bit.b1 +#define swc_u1smr2 u1smr2_addr.bit.b2 +#define als_u1smr2 u1smr2_addr.bit.b3 +#define stc_u1smr2 u1smr2_addr.bit.b4 +#define swc2_u1smr2 u1smr2_addr.bit.b5 +#define sdhi_u1smr2 u1smr2_addr.bit.b6 +#define su1him_u1smr2 u1smr2_addr.bit.b7 + +/*------------------------------------------------------ + u2smr2 +------------------------------------------------------*/ +union byte_def u2smr2_addr; +#define u2smr2 u2smr2_addr.byte + +#define iicm2_u2smr2 u2smr2_addr.bit.b0 +#define csc_u2smr2 u2smr2_addr.bit.b1 +#define swc_u2smr2 u2smr2_addr.bit.b2 +#define als_u2smr2 u2smr2_addr.bit.b3 +#define stc_u2smr2 u2smr2_addr.bit.b4 +#define swc2_u2smr2 u2smr2_addr.bit.b5 +#define sdhi_u2smr2 u2smr2_addr.bit.b6 +#define su1him_u2smr2 u2smr2_addr.bit.b7 + +/*------------------------------------------------------ + u3smr2 +------------------------------------------------------*/ +union byte_def u3smr2_addr; +#define u3smr2 u3smr2_addr.byte + +#define iicm2_u3smr2 u3smr2_addr.bit.b0 +#define csc_u3smr2 u3smr2_addr.bit.b1 +#define swc_u3smr2 u3smr2_addr.bit.b2 +#define als_u3smr2 u3smr2_addr.bit.b3 +#define stc_u3smr2 u3smr2_addr.bit.b4 +#define swc2_u3smr2 u3smr2_addr.bit.b5 +#define sdhi_u3smr2 u3smr2_addr.bit.b6 +#define su1him_u3smr2 u3smr2_addr.bit.b7 + +/*------------------------------------------------------ + u4smr2 +------------------------------------------------------*/ +union byte_def u4smr2_addr; +#define u4smr2 u4smr2_addr.byte + +#define iicm2_u4smr2 u4smr2_addr.bit.b0 +#define csc_u4smr2 u4smr2_addr.bit.b1 +#define swc_u4smr2 u4smr2_addr.bit.b2 +#define als_u4smr2 u4smr2_addr.bit.b3 +#define stc_u4smr2 u4smr2_addr.bit.b4 +#define swc2_u4smr2 u4smr2_addr.bit.b5 +#define sdhi_u4smr2 u4smr2_addr.bit.b6 +#define su1him_u4smr2 u4smr2_addr.bit.b7 + +/*------------------------------------------------------ + UARTi (i=0,1,2,3,4) special mode register 3 +------------------------------------------------------*/ + +/*------------------------------------------------------ + u0smr3 +------------------------------------------------------*/ +union byte_def u0smr3_addr; +#define u0smr3 u0smr3_addr.byte + +#define sse_u0smr3 u0smr3_addr.bit.b0 /* SS pin function enable bit */ +#define ckph_u0smr3 u0smr3_addr.bit.b1 /* Clock-phase set bit */ +#define dinc_u0smr3 u0smr3_addr.bit.b2 /* Serial input port set bit */ +#define nodc_u0smr3 u0smr3_addr.bit.b3 /* Clock output select bit */ +#define err_u0smr3 u0smr3_addr.bit.b4 /* Fault error flag */ +#define dl0_u0smr3 u0smr3_addr.bit.b5 /* (b7-b5) SDAi digital delay time set bit */ +#define dl1_u0smr3 u0smr3_addr.bit.b6 +#define dl2_u0smr3 u0smr3_addr.bit.b7 + +/*------------------------------------------------------ + u1smr3 +------------------------------------------------------*/ +union byte_def u1smr3_addr; +#define u1smr3 u1smr3_addr.byte + +#define sse_u1smr3 u1smr3_addr.bit.b0 +#define ckph_u1smr3 u1smr3_addr.bit.b1 +#define dinc_u1smr3 u1smr3_addr.bit.b2 +#define nodc_u1smr3 u1smr3_addr.bit.b3 +#define err_u1smr3 u1smr3_addr.bit.b4 +#define dl0_u1smr3 u1smr3_addr.bit.b5 +#define dl1_u1smr3 u1smr3_addr.bit.b6 +#define dl2_u1smr3 u1smr3_addr.bit.b7 + +/*------------------------------------------------------ + u2smr3 +------------------------------------------------------*/ +union byte_def u2smr3_addr; +#define u2smr3 u2smr3_addr.byte + +#define sse_u2smr3 u2smr3_addr.bit.b0 +#define ckph_u2smr3 u2smr3_addr.bit.b1 +#define dinc_u2smr3 u2smr3_addr.bit.b2 +#define nodc_u2smr3 u2smr3_addr.bit.b3 +#define err_u2smr3 u2smr3_addr.bit.b4 +#define dl0_u2smr3 u2smr3_addr.bit.b5 +#define dl1_u2smr3 u2smr3_addr.bit.b6 +#define dl2_u2smr3 u2smr3_addr.bit.b7 + +/*------------------------------------------------------ + u3smr3 +------------------------------------------------------*/ +union byte_def u3smr3_addr; +#define u3smr3 u3smr3_addr.byte + +#define sse_u3smr3 u3smr3_addr.bit.b0 +#define ckph_u3smr3 u3smr3_addr.bit.b1 +#define dinc_u3smr3 u3smr3_addr.bit.b2 +#define nodc_u3smr3 u3smr3_addr.bit.b3 +#define err_u3smr3 u3smr3_addr.bit.b4 +#define dl0_u3smr3 u3smr3_addr.bit.b5 +#define dl1_u3smr3 u3smr3_addr.bit.b6 +#define dl2_u3smr3 u3smr3_addr.bit.b7 + +/*------------------------------------------------------ + u4smr3 +------------------------------------------------------*/ +union byte_def u4smr3_addr; +#define u4smr3 u4smr3_addr.byte + +#define sse_u4smr3 u4smr3_addr.bit.b0 +#define ckph_u4smr3 u4smr3_addr.bit.b1 +#define dinc_u4smr3 u4smr3_addr.bit.b2 +#define nodc_u4smr3 u4smr3_addr.bit.b3 +#define err_u4smr3 u4smr3_addr.bit.b4 +#define dl0_u4smr3 u4smr3_addr.bit.b5 +#define dl1_u4smr3 u4smr3_addr.bit.b6 +#define dl2_u4smr3 u4smr3_addr.bit.b7 + +/*------------------------------------------------------ + UARTi (i=0,1,2,3,4) special mode register 4 +------------------------------------------------------*/ + +/*------------------------------------------------------ + u0smr4 +------------------------------------------------------*/ +union byte_def u0smr4_addr; +#define u0smr4 u0smr4_addr.byte + +#define stareq_u0smr4 u0smr4_addr.bit.b0 /* Start condition generate bit */ +#define rstareq_u0smr4 u0smr4_addr.bit.b1 /* Restart condition generate bit */ +#define stpreq_u0smr4 u0smr4_addr.bit.b2 /* Stop condition generate bit */ +#define stspsel_u0smr4 u0smr4_addr.bit.b3 /* SCL, SDA output select bit */ +#define ackd_u0smr4 u0smr4_addr.bit.b4 /* ACK data bit */ +#define ackc_u0smr4 u0smr4_addr.bit.b5 /* ACK data output enable bit */ +#define sclhi_u0smr4 u0smr4_addr.bit.b6 /* SCL output stop enable bit */ +#define swc9_u0smr4 u0smr4_addr.bit.b7 /* SCL wait output bit */ + + +/*------------------------------------------------------ + u1smr4 +------------------------------------------------------*/ +union byte_def u1smr4_addr; +#define u1smr4 u1smr4_addr.byte + +#define stareq_u1smr4 u1smr4_addr.bit.b0 +#define rstareq_u1smr4 u1smr4_addr.bit.b1 +#define stpreq_u1smr4 u1smr4_addr.bit.b2 +#define stspsel_u1smr4 u1smr4_addr.bit.b3 +#define ackd_u1smr4 u1smr4_addr.bit.b4 +#define ackc_u1smr4 u1smr4_addr.bit.b5 +#define sclhi_u1smr4 u1smr4_addr.bit.b6 +#define swc9_u1smr4 u1smr4_addr.bit.b7 + + +/*------------------------------------------------------ + u2smr4 +------------------------------------------------------*/ +union byte_def u2smr4_addr; +#define u2smr4 u2smr4_addr.byte + +#define stareq_u2smr4 u2smr4_addr.bit.b0 +#define rstareq_u2smr4 u2smr4_addr.bit.b1 +#define stpreq_u2smr4 u2smr4_addr.bit.b2 +#define stspsel_u2smr4 u2smr4_addr.bit.b3 +#define ackd_u2smr4 u2smr4_addr.bit.b4 +#define ackc_u2smr4 u2smr4_addr.bit.b5 +#define sclhi_u2smr4 u2smr4_addr.bit.b6 +#define swc9_u2smr4 u2smr4_addr.bit.b7 + + +/*------------------------------------------------------ + u3smr4 +------------------------------------------------------*/ +union byte_def u3smr4_addr; +#define u3smr4 u3smr4_addr.byte + +#define stareq_u3smr4 u3smr4_addr.bit.b0 +#define rstareq_u3smr4 u3smr4_addr.bit.b1 +#define stpreq_u3smr4 u3smr4_addr.bit.b2 +#define stspsel_u3smr4 u3smr4_addr.bit.b3 +#define ackd_u3smr4 u3smr4_addr.bit.b4 +#define ackc_u3smr4 u3smr4_addr.bit.b5 +#define sclhi_u3smr4 u3smr4_addr.bit.b6 +#define swc9_u3smr4 u3smr4_addr.bit.b7 + +/*------------------------------------------------------ + u4smr4 +------------------------------------------------------*/ +union byte_def u4smr4_addr; +#define u4smr4 u4smr4_addr.byte + +#define stareq_u4smr4 u4smr4_addr.bit.b0 +#define rstareq_u4smr4 u4smr4_addr.bit.b1 +#define stpreq_u4smr4 u4smr4_addr.bit.b2 +#define stspsel_u4smr4 u4smr4_addr.bit.b3 +#define ackd_u4smr4 u4smr4_addr.bit.b4 +#define ackc_u4smr4 u4smr4_addr.bit.b5 +#define sclhi_u4smr4 u4smr4_addr.bit.b6 +#define swc9_u4smr4 u4smr4_addr.bit.b7 + +/*------------------------------------------------------ + DMAi request factor select register +------------------------------------------------------*/ + +/*------------------------------------------------------ + dm0sl +------------------------------------------------------*/ +union byte_def dm0sl_addr; +#define dm0sl dm0sl_addr.byte + +#define dsel0_dm0sl dm0sl_addr.bit.b0 /* DMA request cause select bit */ +#define dsel1_dm0sl dm0sl_addr.bit.b1 /* DMA request cause select bit */ +#define dsel2_dm0sl dm0sl_addr.bit.b2 /* DMA request cause select bit */ +#define dsel3_dm0sl dm0sl_addr.bit.b3 /* DMA request cause select bit */ +#define dsel4_dm0sl dm0sl_addr.bit.b4 /* DMA request cause select bit */ +#define dsr_dm0sl dm0sl_addr.bit.b5 /* Software DMA request bit */ +#define drq_dm0sl dm0sl_addr.bit.b7 /* DMA request bit */ + +/*------------------------------------------------------ + dm1sl +------------------------------------------------------*/ +union byte_def dm1sl_addr; +#define dm1sl dm1sl_addr.byte + +#define dsel0_dm1sl dm1sl_addr.bit.b0 +#define dsel1_dm1sl dm1sl_addr.bit.b1 +#define dsel2_dm1sl dm1sl_addr.bit.b2 +#define dsel3_dm1sl dm1sl_addr.bit.b3 +#define dsel4_dm1sl dm1sl_addr.bit.b4 +#define dsr_dm1sl dm1sl_addr.bit.b5 +#define drq_dm1sl dm1sl_addr.bit.b7 + +/*------------------------------------------------------ + dm2sl +------------------------------------------------------*/ +union byte_def dm2sl_addr; +#define dm2sl dm2sl_addr.byte + +#define dsel0_dm2sl dm2sl_addr.bit.b0 +#define dsel1_dm2sl dm2sl_addr.bit.b1 +#define dsel2_dm2sl dm2sl_addr.bit.b2 +#define dsel3_dm2sl dm2sl_addr.bit.b3 +#define dsel4_dm2sl dm2sl_addr.bit.b4 +#define dsr_dm2sl dm2sl_addr.bit.b5 +#define drq_dm2sl dm2sl_addr.bit.b7 + +/*------------------------------------------------------ + dm3sl +------------------------------------------------------*/ +union byte_def dm3sl_addr; +#define dm3sl dm3sl_addr.byte + +#define dsel0_dm3sl dm3sl_addr.bit.b0 +#define dsel1_dm3sl dm3sl_addr.bit.b1 +#define dsel2_dm3sl dm3sl_addr.bit.b2 +#define dsel3_dm3sl dm3sl_addr.bit.b3 +#define dsel4_dm3sl dm3sl_addr.bit.b4 +#define dsr_dm3sl dm3sl_addr.bit.b5 +#define drq_dm3sl dm3sl_addr.bit.b7 + +/******************************************************** +* declare SFR union * +********************************************************/ + +union{ + struct{ + char b0:1; + char b1:1; + char b2:1; + char b3:1; + char b4:1; + char b5:1; + char b6:1; + char b7:1; + char b8:1; + char b9:1; + char b10:1; + char b11:1; + char b12:1; + char b13:1; + char b14:1; + char b15:1; + char b16:1; + char b17:1; + char b18:1; + char b19:1; + char b20:1; + char b21:1; + char b22:1; + char b23:1; + }bit; + struct{ + char low; /* low 8 bit */ + char mid; /* mid 8 bit */ + char high; /* high 8 bit */ + char nc; /* non use */ + }byte; + unsigned long dword; +}rmad0_addr,rmad1_addr,rmad2_addr,rmad3_addr, + rmad4_addr,rmad5_addr,rmad6_addr,rmad7_addr; +#define rmad0 rmad0_addr.dword /* Address match interrupt register 0 32 bit */ +#define rmad0l rmad0_addr.byte.low /* Address match interrupt register 0 low 8 bit */ +#define rmad0m rmad0_addr.byte.mid /* Address match interrupt register 0 mid 8 bit */ +#define rmad0h rmad0_addr.byte.high /* Address match interrupt register 0 high 8 bit */ +#define rmad1 rmad1_addr.dword /* Address match interrupt register 1 32 bit */ +#define rmad1l rmad1_addr.byte.low /* Address match interrupt register 1 low 8 bit */ +#define rmad1m rmad1_addr.byte.mid /* Address match interrupt register 1 mid 8 bit */ +#define rmad1h rmad1_addr.byte.high /* Address match interrupt register 1 high 8 bit */ +#define rmad2 rmad2_addr.dword /* Address match interrupt register 2 32 bit */ +#define rmad2l rmad2_addr.byte.low /* Address match interrupt register 2 low 8 bit */ +#define rmad2m rmad2_addr.byte.mid /* Address match interrupt register 2 mid 8 bit */ +#define rmad2h rmad2_addr.byte.high /* Address match interrupt register 2 high 8 bit */ +#define rmad3 rmad3_addr.dword /* Address match interrupt register 3 32 bit */ +#define rmad3l rmad3_addr.byte.low /* Address match interrupt register 3 low 8 bit */ +#define rmad3m rmad3_addr.byte.mid /* Address match interrupt register 3 mid 8 bit */ +#define rmad3h rmad3_addr.byte.high /* Address match interrupt register 3 high 8 bit */ +#define rmad4 rmad4_addr.dword /* Address match interrupt register 4 32 bit */ +#define rmad4l rmad4_addr.byte.low /* Address match interrupt register 3 low 8 bit */ +#define rmad4m rmad4_addr.byte.mid /* Address match interrupt register 3 mid 8 bit */ +#define rmad4h rmad4_addr.byte.high /* Address match interrupt register 3 high 8 bit */ +#define rmad5 rmad5_addr.dword /* Address match interrupt register 5 32 bit */ +#define rmad5l rmad5_addr.byte.low /* Address match interrupt register 3 low 8 bit */ +#define rmad5m rmad5_addr.byte.mid /* Address match interrupt register 3 mid 8 bit */ +#define rmad5h rmad5_addr.byte.high /* Address match interrupt register 3 high 8 bit */ +#define rmad6 rmad6_addr.dword /* Address match interrupt register 6 32 bit */ +#define rmad6l rmad6_addr.byte.low /* Address match interrupt register 3 low 8 bit */ +#define rmad6m rmad6_addr.byte.mid /* Address match interrupt register 3 mid 8 bit */ +#define rmad6h rmad6_addr.byte.high /* Address match interrupt register 3 high 8 bit */ +#define rmad7 rmad7_addr.dword /* Address match interrupt register 7 32 bit */ +#define rmad7l rmad7_addr.byte.low /* Address match interrupt register 3 low 8 bit */ +#define rmad7m rmad7_addr.byte.mid /* Address match interrupt register 3 mid 8 bit */ +#define rmad7h rmad7_addr.byte.high /* Address match interrupt register 3 high 8 bit */ + + +union{ + struct{ + char b0:1; + char b1:1; + char b2:1; + char b3:1; + char b4:1; + char b5:1; + char b6:1; + char b7:1; + char b8:1; + char b9:1; + char b10:1; + char b11:1; + char b12:1; + char b13:1; + char b14:1; + char b15:1; + }bit; + struct{ + char low; /* low 8 bit */ + char high; /* high 8 bit */ + }byte; + unsigned short word; +}u0tb_addr,u1tb_addr,u2tb_addr,u3tb_addr,u4tb_addr,crcd_addr, + ad00_addr,ad01_addr,ad02_addr,ad03_addr,ad04_addr,ad05_addr,ad06_addr,ad07_addr, + x0r_addr,y0r_addr,x1r_addr,y1r_addr,x2r_addr,y2r_addr,x3r_addr,y3r_addr,x4r_addr,y4r_addr, + x5r_addr,y5r_addr,x6r_addr,y6r_addr,x7r_addr,y7r_addr,x8r_addr,y8r_addr, + x9r_addr,y9r_addr,x10r_addr,y10r_addr,x11r_addr,y11r_addr,x12r_addr,y12r_addr, + x13r_addr,y13r_addr,x14r_addr,y14r_addr,x15r_addr,y15r_addr, + + g0tcrc_addr,g1tcrc_addr,g0rcrc_addr,g1rcrc_addr, + g0rb_addr,g1rb_addr, + u0rb_addr,u1rb_addr,u2rb_addr,u3rb_addr,u4rb_addr, + plc_addr; + +/*------------------------------------------------------ + UARTi transmit buffer register (i=0,1,2,3,4) + (1) The MOV instruction should be used to set the UiTB register +------------------------------------------------------*/ +#define u0tb u0tb_addr.word /* UART0 Transmit buffer register 16 bit */ +#define u0tbl u0tb_addr.byte.low /* UART0 Transmit buffer register low 8 bit */ +#define u0tbh u0tb_addr.byte.high /* UART0 Transmit buffer register high 8 bit */ +#define u1tb u1tb_addr.word /* UART1 Transmit buffer register 16 bit */ +#define u1tbl u1tb_addr.byte.low /* UART1 Transmit buffer register low 8 bit */ +#define u1tbh u1tb_addr.byte.high /* UART1 Transmit buffer register high 8 bit */ +#define u2tb u2tb_addr.word /* UART2 Transmit buffer register 16 bit */ +#define u2tbl u2tb_addr.byte.low /* UART2 Transmit buffer register low 8 bit */ +#define u2tbh u2tb_addr.byte.high /* UART2 Transmit buffer register high 8 bit */ +#define u3tb u3tb_addr.word /* UART3 Transmit buffer register 16 bit */ +#define u3tbl u3tb_addr.byte.low /* UART3 Transmit buffer register low 8 bit */ +#define u3tbh u3tb_addr.byte.high /* UART3 Transmit buffer register high 8 bit */ +#define u4tb u4tb_addr.word /* UART4 Transmit buffer register 16 bit */ +#define u4tbl u4tb_addr.byte.low /* UART4 Transmit buffer register low 8 bit */ +#define u4tbh u4tb_addr.byte.high /* UART4 Transmit buffer register high 8 bit */ + +/*------------------------------------------------------ + CRC data register +------------------------------------------------------*/ +#define crcd crcd_addr.word /* CRC data register 16 bit */ +#define crcdl crcd_addr.byte.low /* CRC data register low 8 bit */ +#define crcdh crcd_addr.byte.high /* CRC data register high 8 bit */ + +/*------------------------------------------------------ + A/D0 register i (i=0 to7) +------------------------------------------------------*/ +#define ad00 ad00_addr.word /* A/D0 register 0 16 bit */ +#define ad00l ad00_addr.byte.low /* A/D0 register 0 low 8 bit */ +#define ad00h ad00_addr.byte.high /* A/D0 register 0 high 8 bit */ +#define ad01 ad01_addr.word /* A/D0 register 1 16 bit */ +#define ad01l ad01_addr.byte.low /* A/D0 register 1 low 8 bit */ +#define ad01h ad01_addr.byte.high /* A/D0 register 1 high 8 bit */ +#define ad02 ad02_addr.word /* A/D0 register 2 16 bit */ +#define ad02l ad02_addr.byte.low /* A/D0 register 2 low 8 bit */ +#define ad02h ad02_addr.byte.high /* A/D0 register 2 high 8 bit */ +#define ad03 ad03_addr.word /* A/D0 register 3 16 bit */ +#define ad03l ad03_addr.byte.low /* A/D0 register 3 low 8 bit */ +#define ad03h ad03_addr.byte.high /* A/D0 register 3 high 8 bit */ +#define ad04 ad04_addr.word /* A/D0 register 4 16 bit */ +#define ad04l ad04_addr.byte.low /* A/D0 register 4 low 8 bit */ +#define ad04h ad04_addr.byte.high /* A/D0 register 4 high 8 bit */ +#define ad05 ad05_addr.word /* A/D0 register 5 16 bit */ +#define ad05l ad05_addr.byte.low /* A/D0 register 5 low 8 bit */ +#define ad05h ad05_addr.byte.high /* A/D0 register 5 high 8 bit */ +#define ad06 ad06_addr.word /* A/D0 register 6 16 bit */ +#define ad06l ad06_addr.byte.low /* A/D0 register 6 low 8 bit */ +#define ad06h ad06_addr.byte.high /* A/D0 register 6 high 8 bit */ +#define ad07 ad07_addr.word /* A/D0 register 7 16 bit */ +#define ad07l ad07_addr.byte.low /* A/D0 register 7 low 8 bit */ +#define ad07h ad07_addr.byte.high /* A/D0 register 7 high 8 bit */ + + +#define x0r x0r_addr.word /* X-Y Conversion */ +#define x0rl x0r_addr.byte.low +#define x0rh x0r_addr.byte.high +#define y0r y0r_addr.word +#define y0rl y0r_addr.byte.low +#define y0rh y0r_addr.byte.high +#define x1r x1r_addr.word +#define x1rl x1r_addr.byte.low +#define x1rh x1r_addr.byte.high +#define y1r y1r_addr.word +#define y1rl y1r_addr.byte.low +#define y1rh y1r_addr.byte.high +#define x2r x2r_addr.word +#define x2rl x2r_addr.byte.low +#define x2rh x2r_addr.byte.high +#define y2r y2r_addr.word +#define y2rl y2r_addr.byte.low +#define y2rh y2r_addr.byte.high +#define x3r x3r_addr.word +#define x3rl x3r_addr.byte.low +#define x3rh x3r_addr.byte.high +#define y3r y3r_addr.word +#define y3rl y3r_addr.byte.low +#define y3rh y3r_addr.byte.high +#define x4r x4r_addr.word +#define x4rl x4r_addr.byte.low +#define x4rh x4r_addr.byte.high +#define y4r y4r_addr.word +#define y4rl y4r_addr.byte.low +#define y4rh y4r_addr.byte.high +#define x5r x5r_addr.word +#define x5rl x5r_addr.byte.low +#define x5rh x5r_addr.byte.high +#define y5r y5r_addr.word +#define y5rl y5r_addr.byte.low +#define y5rh y5r_addr.byte.high +#define x6r x6r_addr.word +#define x6rl x6r_addr.byte.low +#define x6rh x6r_addr.byte.high +#define y6r y6r_addr.word +#define y6rl y6r_addr.byte.low +#define y6rh y6r_addr.byte.high +#define x7r x7r_addr.word +#define x7rl x7r_addr.byte.low +#define x7rh x7r_addr.byte.high +#define y7r y7r_addr.word +#define y7rl y7r_addr.byte.low +#define y7rh y7r_addr.byte.high +#define x8r x8r_addr.word +#define x8rl x8r_addr.byte.low +#define x8rh x8r_addr.byte.high +#define y8r y8r_addr.word +#define y8rl y8r_addr.byte.low +#define y8rh y8r_addr.byte.high +#define x9r x9r_addr.word +#define x9rl x9r_addr.byte.low +#define x9rh x9r_addr.byte.high +#define y9r y9r_addr.word +#define y9rl y9r_addr.byte.low +#define y9rh y9r_addr.byte.high +#define x10r x10r_addr.word +#define x10rl x10r_addr.byte.low +#define x10rh x10r_addr.byte.high +#define y10r y10r_addr.word +#define y10rl y10r_addr.byte.low +#define y10rh y10r_addr.byte.high +#define x11r x11r_addr.word +#define x11rl x11r_addr.byte.low +#define x11rh x11r_addr.byte.high +#define y11r y11r_addr.word +#define y11rl y11r_addr.byte.low +#define y11rh y11r_addr.byte.high +#define x12r x12r_addr.word +#define x12rl x12r_addr.byte.low +#define x12rh x12r_addr.byte.high +#define y12r y12r_addr.word +#define y12rl y12r_addr.byte.low +#define y12rh y12r_addr.byte.high +#define x13r x13r_addr.word +#define x13rl x13r_addr.byte.low +#define x13rh x13r_addr.byte.high +#define y13r y13r_addr.word +#define y13rl y13r_addr.byte.low +#define y13rh y13r_addr.byte.high +#define x14r x14r_addr.word +#define x14rl x14r_addr.byte.low +#define x14rh x14r_addr.byte.high +#define y14r y14r_addr.word +#define y14rl y14r_addr.byte.low +#define y14rh y14r_addr.byte.high +#define x15r x15r_addr.word +#define x15rl x15r_addr.byte.low +#define x15rh x15r_addr.byte.high +#define y15r y15r_addr.word +#define y15rl y15r_addr.byte.low +#define y15rh y15r_addr.byte.high + + diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/sfr32c80.inc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/sfr32c80.inc new file mode 100644 index 00000000..d5c2de1b --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/sfr32c80.inc @@ -0,0 +1,2718 @@ +;------------------------------------------------------------------------ +; | +; FILE :sfr32c80.inc | +; DATE :Thu, Feb 27, 2014 | +; DESCRIPTION :define the sfr register. (for Assembler language) | +; CPU GROUP :80 | +; | +; This file is generated by Renesas Project Generator (Ver.4.18). | +; NOTE:THIS IS A TYPICAL EXAMPLE. | +;------------------------------------------------------------------------ + +;**************************************************************************************** +;* * +;* File name : sfr32c80.inc * +;* Contents : Definition of M32C/80 Group SFR * +;* * +;* Copyright (C) 2003 (2010) Renesas Electronics Corporation. * +;* and Renesas Solutions Corporation. All rights reserved. * +;* * +;* Version : Ver 0.01 (05-12-08) Preliminary * +;* These data made based on M32C/80 Group H/W Manual Rev.0.30 * +;* * +;**************************************************************************************** +; +; note: +; This data is a freeware that SFR for M32C/80 group is described. +; RENESAS ELECTRONICS CORPORATION and RENESAS SOLUTIONS CORPORATION assume +; no responsibility for any damage that occurred by this data. +; +;-------------------------------------------------------------------- +; +; CPU +; +; +;-------------------------------------------------------------------- +; Processor Mode Register 0 adr:0004h +;-------------------------------------------------------------------- +pm0 .equ 0004h +pm00 .btequ 0,pm0 +pm01 .btequ 1,pm0 +pm02 .btequ 2,pm0 +pm03 .btequ 3,pm0 +pm04 .btequ 4,pm0 +pm05 .btequ 5,pm0 +pm07 .btequ 7,pm0 +;-------------------------------------------------------------------- +; Processor Mode Register 1 adr:0005h +;-------------------------------------------------------------------- +pm1 .equ 0005h +pm10 .btequ 0,pm1 +pm11 .btequ 1,pm1 +pm12 .btequ 2,pm1 +pm13 .btequ 3,pm1 +pm14 .btequ 4,pm1 +pm15 .btequ 5,pm1 +;-------------------------------------------------------------------- +; System Clock Control Register 0 adr:0006h +;-------------------------------------------------------------------- +cm0 .equ 0006h +cm00 .btequ 0,cm0 +cm01 .btequ 1,cm0 +cm02 .btequ 2,cm0 +cm03 .btequ 3,cm0 +cm04 .btequ 4,cm0 +cm05 .btequ 5,cm0 +cm06 .btequ 6,cm0 +cm07 .btequ 7,cm0 +;-------------------------------------------------------------------- +; System Clock Control Register 1 adr:0007h +;-------------------------------------------------------------------- +cm1 .equ 0007h +cm10 .btequ 0,cm1 +cm17 .btequ 7,cm1 +;-------------------------------------------------------------------- +; Address Match Interrupt Enable Register adr:0009h +;-------------------------------------------------------------------- +aier .equ 0009h +aier0 .btequ 0,aier +aier1 .btequ 1,aier +aier2 .btequ 2,aier +aier3 .btequ 3,aier +aier4 .btequ 4,aier +aier5 .btequ 5,aier +aier6 .btequ 6,aier +aier7 .btequ 7,aier +;-------------------------------------------------------------------- +; Protect Register adr:000ah +;-------------------------------------------------------------------- +prcr .equ 000ah +prc0 .btequ 0,prcr +prc1 .btequ 1,prcr +prc2 .btequ 2,prcr +prc3 .btequ 3,prcr +;-------------------------------------------------------------------- +; Outer Data-bus Width Register adr:000bh +;-------------------------------------------------------------------- +ds .equ 000bh +ds0 .btequ 0,ds +ds1 .btequ 1,ds +ds2 .btequ 2,ds +ds3 .btequ 3,ds +;-------------------------------------------------------------------- +; Main Clock Decode Register adr:000ch +;-------------------------------------------------------------------- +mcd .equ 000ch +mcd0 .btequ 0,mcd +mcd1 .btequ 1,mcd +mcd2 .btequ 2,mcd +mcd3 .btequ 3,mcd +mcd4 .btequ 4,mcd +;-------------------------------------------------------------------- +; Oscillation Stop Detection Register adr:000dh +;-------------------------------------------------------------------- +cm2 .equ 000dh +cm20 .btequ 0,cm2 +cm21 .btequ 1,cm2 +cm22 .btequ 2,cm2 +cm23 .btequ 3,cm2 +;-------------------------------------------------------------------- +; Watchdog Timer Register adr:000eh +;-------------------------------------------------------------------- +wdts .equ 000eh +;-------------------------------------------------------------------- +; Watchdog Timer Control Register adr:000fh +;-------------------------------------------------------------------- +wdc .equ 000fh +wdc5 .btequ 5,wdc +wdc7 .btequ 7,wdc +;-------------------------------------------------------------------- +; Address Match Interrupt Register 0 adr:0012h-0010h +;-------------------------------------------------------------------- +rmad0 .equ 0010h +rmad0l .equ rmad0 +rmad0m .equ rmad0+1 +rmad0h .equ rmad0+2 +;-------------------------------------------------------------------- +; Processor Mode Register 2 adr:0013h +;-------------------------------------------------------------------- +pm2 .equ 0013h +pm21 .btequ 1,pm2 +pm22 .btequ 2,pm2 +pm24 .btequ 4,pm2 +pm25 .btequ 5,pm2 +pm26 .btequ 6,pm2 +pm27 .btequ 7,pm2 +;-------------------------------------------------------------------- +; Address Match Interrupt Register 1 adr:0016h-0014h +;-------------------------------------------------------------------- +rmad1 .equ 0014h +rmad1l .equ rmad1 +rmad1m .equ rmad1+1 +rmad1h .equ rmad1+2 +;-------------------------------------------------------------------- +; VDC Control Register 2 adr:0017h +;-------------------------------------------------------------------- +vcr2 .equ 0017h +vc26 .btequ 6,vcr2 +vc27 .btequ 7,vcr2 +;-------------------------------------------------------------------- +; Address Match Interrupt Register 2 adr:001ah-0018h +;-------------------------------------------------------------------- +rmad2 .equ 0018h +rmad2l .equ rmad2 +rmad2m .equ rmad2+1 +rmad2h .equ rmad2+2 +;-------------------------------------------------------------------- +; VDC Control Register 1 adr:001bh +;-------------------------------------------------------------------- +vcr1 .equ 001bh +vc13 .btequ 3,vcr1 +;-------------------------------------------------------------------- +; Address Match Interrupt Register 3 adr:001eh-001ch +;-------------------------------------------------------------------- +rmad3 .equ 001ch +rmad3l .equ rmad3 +rmad3m .equ rmad3+1 +rmad3h .equ rmad3+2 +;-------------------------------------------------------------------- +; Pll Control Register adr:0026h +;-------------------------------------------------------------------- +plc .equ 0026h +;-------------------------------------------------------------------- +; Pll Control Register 0 adr:0026h +;-------------------------------------------------------------------- +plc0 .equ 0026h +plc00 .btequ 0,plc0 +plc01 .btequ 1,plc0 +plc02 .btequ 2,plc0 +plc07 .btequ 7,plc0 +;-------------------------------------------------------------------- +; Pll Control Register 1 adr:0027h +;-------------------------------------------------------------------- +plc1 .equ 0027h +plc12 .btequ 2,plc1 +;-------------------------------------------------------------------- +; Address Match Interrupt Register 4 adr:002ah-0028h +;-------------------------------------------------------------------- +rmad4 .equ 0028h +rmad4l .equ rmad4 +rmad4m .equ rmad4+1 +rmad4h .equ rmad4+2 +;-------------------------------------------------------------------- +; Address Match Interrupt Register 5 adr:002eh-002ch +;-------------------------------------------------------------------- +rmad5 .equ 002ch +rmad5l .equ rmad5 +rmad5m .equ rmad5+1 +rmad5h .equ rmad5+2 +;-------------------------------------------------------------------- +; Address Match Interrupt Register 6 adr:003ah-0038h +;-------------------------------------------------------------------- +rmad6 .equ 0038h +rmad6l .equ rmad6 +rmad6m .equ rmad6+1 +rmad6h .equ rmad6+2 +;-------------------------------------------------------------------- +; Address Match Interrupt Register 7 adr:003eh-003ch +;-------------------------------------------------------------------- +rmad7 .equ 003ch +rmad7l .equ rmad7 +rmad7m .equ rmad7+1 +rmad7h .equ rmad7+2 +;-------------------------------------------------------------------- +; External Area Wait Control Register 0 adr:0048h +;-------------------------------------------------------------------- +ewcr0 .equ 0048h +ewcr000 .btequ 0,ewcr0 +ewcr001 .btequ 1,ewcr0 +ewcr002 .btequ 2,ewcr0 +ewcr003 .btequ 3,ewcr0 +ewcr004 .btequ 4,ewcr0 +ewcr006 .btequ 6,ewcr0 +;-------------------------------------------------------------------- +; External Area Wait Control Register 1 adr:0049h +;-------------------------------------------------------------------- +ewcr1 .equ 0049h +ewcr100 .btequ 0,ewcr1 +ewcr101 .btequ 1,ewcr1 +ewcr102 .btequ 2,ewcr1 +ewcr103 .btequ 3,ewcr1 +ewcr104 .btequ 4,ewcr1 +ewcr106 .btequ 6,ewcr1 +;-------------------------------------------------------------------- +; External Area Wait Control Register 2 adr:004ah +;-------------------------------------------------------------------- +ewcr2 .equ 004ah +ewcr200 .btequ 0,ewcr2 +ewcr201 .btequ 1,ewcr2 +ewcr202 .btequ 2,ewcr2 +ewcr203 .btequ 3,ewcr2 +ewcr204 .btequ 4,ewcr2 +ewcr206 .btequ 6,ewcr2 +;-------------------------------------------------------------------- +; External Area Wait Control Register 3 adr:004bh +;-------------------------------------------------------------------- +ewcr3 .equ 004bh +ewcr300 .btequ 0,ewcr3 +ewcr301 .btequ 1,ewcr3 +ewcr302 .btequ 2,ewcr3 +ewcr303 .btequ 3,ewcr3 +ewcr304 .btequ 4,ewcr3 +ewcr306 .btequ 6,ewcr3 +;-------------------------------------------------------------------- +; +; +; Interrupt control Register +; +; +;-------------------------------------------------------------------- +; Dma0 Interrupt Control Register adr:0068h +;-------------------------------------------------------------------- +dm0ic .equ 0068h +ilvl0_dm0ic .btequ 0,dm0ic +ilvl1_dm0ic .btequ 1,dm0ic +ilvl2_dm0ic .btequ 2,dm0ic +ir_dm0ic .btequ 3,dm0ic +;-------------------------------------------------------------------- +; Timer B5 Interrupt Control Register adr:0069h +;-------------------------------------------------------------------- +tb5ic .equ 0069h +ilvl0_tb5ic .btequ 0,tb5ic +ilvl1_tb5ic .btequ 1,tb5ic +ilvl2_tb5ic .btequ 2,tb5ic +ir_tb5ic .btequ 3,tb5ic +;-------------------------------------------------------------------- +; Dma2 Interrupt Control Register adr:006ah +;-------------------------------------------------------------------- +dm2ic .equ 006ah +ilvl0_dm2ic .btequ 0,dm2ic +ilvl1_dm2ic .btequ 1,dm2ic +ilvl2_dm2ic .btequ 2,dm2ic +ir_dm2ic .btequ 3,dm2ic +;-------------------------------------------------------------------- +; Uart2 Receive/Ack Interrupt +; control Register adr:006bh +;-------------------------------------------------------------------- +s2ric .equ 006bh +ilvl0_s2ric .btequ 0,s2ric +ilvl1_s2ric .btequ 1,s2ric +ilvl2_s2ric .btequ 2,s2ric +ir_s2ric .btequ 3,s2ric +;-------------------------------------------------------------------- +; Timer a0 Interrupt Control Register adr:006ch +;-------------------------------------------------------------------- +ta0ic .equ 006ch +ilvl0_ta0ic .btequ 0,ta0ic +ilvl1_ta0ic .btequ 1,ta0ic +ilvl2_ta0ic .btequ 2,ta0ic +ir_ta0ic .btequ 3,ta0ic +;-------------------------------------------------------------------- +; uart3 receive/ack interrupt +; Control Register adr:006dh +;-------------------------------------------------------------------- +s3ric .equ 006dh +ilvl0_s3ric .btequ 0,s3ric +ilvl1_s3ric .btequ 1,s3ric +ilvl2_s3ric .btequ 2,s3ric +ir_s3ric .btequ 3,s3ric +;-------------------------------------------------------------------- +; timer a2 Interrupt Control Register adr:006eh +;-------------------------------------------------------------------- +ta2ic .equ 006eh +ilvl0_ta2ic .btequ 0,ta2ic +ilvl1_ta2ic .btequ 1,ta2ic +ilvl2_ta2ic .btequ 2,ta2ic +ir_ta2ic .btequ 3,ta2ic +;-------------------------------------------------------------------- +; uart4 receive/ack Interrupt +; Control Register adr:006fh +;-------------------------------------------------------------------- +s4ric .equ 006fh +ilvl0_s4ric .btequ 0,s4ric +ilvl1_s4ric .btequ 1,s4ric +ilvl2_s4ric .btequ 2,s4ric +ir_s4ric .btequ 3,s4ric +;-------------------------------------------------------------------- +; timer a4 Interrupt Control Register adr:0070h +;-------------------------------------------------------------------- +ta4ic .equ 0070h +ilvl0_ta4ic .btequ 0,ta4ic +ilvl1_ta4ic .btequ 1,ta4ic +ilvl2_ta4ic .btequ 2,ta4ic +ir_ta4ic .btequ 3,ta4ic +;-------------------------------------------------------------------- +; bus collision (uart3) interrupt +; Control Register adr:0071h +;-------------------------------------------------------------------- +bcn3ic .equ 0071h +ilvl0_bcn3ic .btequ 0,bcn3ic +ilvl1_bcn3ic .btequ 1,bcn3ic +ilvl2_bcn3ic .btequ 2,bcn3ic +ir_bcn3ic .btequ 3,bcn3ic +;-------------------------------------------------------------------- +; bus collision (uart0) interrupt +; Control Register adr:0071h +;-------------------------------------------------------------------- +bcn0ic .equ 0071h +ilvl0_bcn0ic .btequ 0,bcn0ic +ilvl1_bcn0ic .btequ 1,bcn0ic +ilvl2_bcn0ic .btequ 2,bcn0ic +ir_bcn0ic .btequ 3,bcn0ic +;-------------------------------------------------------------------- +; uart0 receive Interrupt Control Register adr:0072h +;-------------------------------------------------------------------- +s0ric .equ 0072h +ilvl0_s0ric .btequ 0,s0ric +ilvl1_s0ric .btequ 1,s0ric +ilvl2_s0ric .btequ 2,s0ric +ir_s0ric .btequ 3,s0ric +;-------------------------------------------------------------------- +; a/d0 Interrupt Control Register adr:0073h +;-------------------------------------------------------------------- +ad0ic .equ 0073h +ilvl0_ad0ic .btequ 0,ad0ic +ilvl1_ad0ic .btequ 1,ad0ic +ilvl2_ad0ic .btequ 2,ad0ic +ir_ad0ic .btequ 3,ad0ic +;-------------------------------------------------------------------- +; uart1 receive Interrupt Control Register adr:0074h +;-------------------------------------------------------------------- +s1ric .equ 0074h +ilvl0_s1ric .btequ 0,s1ric +ilvl1_s1ric .btequ 1,s1ric +ilvl2_s1ric .btequ 2,s1ric +ir_s1ric .btequ 3,s1ric +;-------------------------------------------------------------------- +; iio0 Interrupt Control Register adr:0075h +;-------------------------------------------------------------------- +iio0ic .equ 0075h +ilvl0_iio0ic .btequ 0,iio0ic +ilvl1_iio0ic .btequ 1,iio0ic +ilvl2_iio0ic .btequ 2,iio0ic +ir_iio0ic .btequ 3,iio0ic +;-------------------------------------------------------------------- +; timer b1 Interrupt Control Register adr:0076h +;-------------------------------------------------------------------- +tb1ic .equ 0076h +ilvl0_tb1ic .btequ 0,tb1ic +ilvl1_tb1ic .btequ 1,tb1ic +ilvl2_tb1ic .btequ 2,tb1ic +ir_tb1ic .btequ 3,tb1ic +;-------------------------------------------------------------------- +; iio2 Interrupt Control Register adr:0077h +;-------------------------------------------------------------------- +iio2ic .equ 0077h +ilvl0_iio2ic .btequ 0,iio2ic +ilvl1_iio2ic .btequ 1,iio2ic +ilvl2_iio2ic .btequ 2,iio2ic +ir_iio2ic .btequ 3,iio2ic +;-------------------------------------------------------------------- +; timer b3 Interrupt Control Register adr:0078h +;-------------------------------------------------------------------- +tb3ic .equ 0078h +ilvl0_tb3ic .btequ 0,tb3ic +ilvl1_tb3ic .btequ 1,tb3ic +ilvl2_tb3ic .btequ 2,tb3ic +ir_tb3ic .btequ 3,tb3ic +;-------------------------------------------------------------------- +; iio4 Interrupt Control Register adr:0079h +;-------------------------------------------------------------------- +iio4ic .equ 0079h +ilvl0_iio4ic .btequ 0,iio4ic +ilvl1_iio4ic .btequ 1,iio4ic +ilvl2_iio4ic .btequ 2,iio4ic +ir_iio4ic .btequ 3,iio4ic +;-------------------------------------------------------------------- +; int5 Interrupt Control Register adr:007ah +;-------------------------------------------------------------------- +int5ic .equ 007ah +ilvl0_int5ic .btequ 0,int5ic +ilvl1_int5ic .btequ 1,int5ic +ilvl2_int5ic .btequ 2,int5ic +ir_int5ic .btequ 3,int5ic +pol_int5ic .btequ 4,int5ic +lvs_int5ic .btequ 5,int5ic +;-------------------------------------------------------------------- +; int3 Interrupt Control Register adr:007ch +;-------------------------------------------------------------------- +int3ic .equ 007ch +ilvl0_int3ic .btequ 0,int3ic +ilvl1_int3ic .btequ 1,int3ic +ilvl2_int3ic .btequ 2,int3ic +ir_int3ic .btequ 3,int3ic +pol_int3ic .btequ 4,int3ic +lvs_int3ic .btequ 5,int3ic +;-------------------------------------------------------------------- +; int1 Interrupt Control Register adr:007eh +;-------------------------------------------------------------------- +int1ic .equ 007eh +ilvl0_int1ic .btequ 0,int1ic +ilvl1_int1ic .btequ 1,int1ic +ilvl2_int1ic .btequ 2,int1ic +ir_int1ic .btequ 3,int1ic +pol_int1ic .btequ 4,int1ic +lvs_int1ic .btequ 5,int1ic +;-------------------------------------------------------------------- +; dma1 Interrupt Control Register adr:0088h +;-------------------------------------------------------------------- +dm1ic .equ 0088h +ilvl0_dm1ic .btequ 0,dm1ic +ilvl1_dm1ic .btequ 1,dm1ic +ilvl2_dm1ic .btequ 2,dm1ic +ir_dm1ic .btequ 3,dm1ic +;-------------------------------------------------------------------- +; uart2 transmit/nack Interrupt +; Control Register adr:0089h +;-------------------------------------------------------------------- +s2tic .equ 0089h +ilvl0_s2tic .btequ 0,s2tic +ilvl1_s2tic .btequ 1,s2tic +ilvl2_s2tic .btequ 2,s2tic +ir_s2tic .btequ 3,s2tic +;-------------------------------------------------------------------- +; dma3 Interrupt Control Register adr:008ah +;-------------------------------------------------------------------- +dm3ic .equ 008ah +ilvl0_dm3ic .btequ 0,dm3ic +ilvl1_dm3ic .btequ 1,dm3ic +ilvl2_dm3ic .btequ 2,dm3ic +ir_dm3ic .btequ 3,dm3ic +;-------------------------------------------------------------------- +; uart3 transmit/nack Interrupt +; Control Register adr:008bh +;-------------------------------------------------------------------- +s3tic .equ 008bh +ilvl0_s3tic .btequ 0,s3tic +ilvl1_s3tic .btequ 1,s3tic +ilvl2_s3tic .btequ 2,s3tic +ir_s3tic .btequ 3,s3tic +;-------------------------------------------------------------------- +; timer a1 Interrupt Control Register adr:008ch +;-------------------------------------------------------------------- +ta1ic .equ 008ch +ilvl0_ta1ic .btequ 0,ta1ic +ilvl1_ta1ic .btequ 1,ta1ic +ilvl2_ta1ic .btequ 2,ta1ic +ir_ta1ic .btequ 3,ta1ic +;-------------------------------------------------------------------- +; uart4 transmit/nack Interrupt +; Control Register adr:008dh +;-------------------------------------------------------------------- +s4tic .equ 008dh +ilvl0_s4tic .btequ 0,s4tic +ilvl1_s4tic .btequ 1,s4tic +ilvl2_s4tic .btequ 2,s4tic +ir_s4tic .btequ 3,s4tic +;-------------------------------------------------------------------- +; timer a3 Interrupt Control Register adr:008eh +;-------------------------------------------------------------------- +ta3ic .equ 008eh +ilvl0_ta3ic .btequ 0,ta3ic +ilvl1_ta3ic .btequ 1,ta3ic +ilvl2_ta3ic .btequ 2,ta3ic +ir_ta3ic .btequ 3,ta3ic +;-------------------------------------------------------------------- +; bus collision (uart2) interrupt +; Control Register adr:008fh +;-------------------------------------------------------------------- +bcn2ic .equ 008fh +ilvl0_bcn2ic .btequ 0,bcn2ic +ilvl1_bcn2ic .btequ 1,bcn2ic +ilvl2_bcn2ic .btequ 2,bcn2ic +ir_bcn2ic .btequ 3,bcn2ic +;-------------------------------------------------------------------- +; uart0 transmit interrupt Control Register adr:0090h +;-------------------------------------------------------------------- +s0tic .equ 0090h +ilvl0_s0tic .btequ 0,s0tic +ilvl1_s0tic .btequ 1,s0tic +ilvl2_s0tic .btequ 2,s0tic +ir_s0tic .btequ 3,s0tic +;-------------------------------------------------------------------- +; bus collision (uart4) interrupt +; Control Register adr:0091h +;-------------------------------------------------------------------- +bcn4ic .equ 0091h +ilvl0_bcn4ic .btequ 0,bcn4ic +ilvl1_bcn4ic .btequ 1,bcn4ic +ilvl2_bcn4ic .btequ 2,bcn4ic +ir_bcn4ic .btequ 3,bcn4ic +;-------------------------------------------------------------------- +; bus collision (uart1) interrupt +; Control Register adr:0091h +;-------------------------------------------------------------------- +bcn1ic .equ 0091h +ilvl0_bcn1ic .btequ 0,bcn1ic +ilvl1_bcn1ic .btequ 1,bcn1ic +ilvl2_bcn1ic .btequ 2,bcn1ic +ir_bcn1ic .btequ 3,bcn1ic +;-------------------------------------------------------------------- +; uart1 transmit interrupt Control Register adr:0092h +;-------------------------------------------------------------------- +s1tic .equ 0092h +ilvl0_s1tic .btequ 0,s1tic +ilvl1_s1tic .btequ 1,s1tic +ilvl2_s1tic .btequ 2,s1tic +ir_s1tic .btequ 3,s1tic +;-------------------------------------------------------------------- +; key input interrupt Control Register adr:0093h +;-------------------------------------------------------------------- +kupic .equ 0093h +ilvl0_kupic .btequ 0,kupic +ilvl1_kupic .btequ 1,kupic +ilvl2_kupic .btequ 2,kupic +ir_kupic .btequ 3,kupic +;-------------------------------------------------------------------- +; timer b0 interrupt Control Register adr:0094h +;-------------------------------------------------------------------- +tb0ic .equ 0094h +ilvl0_tb0ic .btequ 0,tb0ic +ilvl1_tb0ic .btequ 1,tb0ic +ilvl2_tb0ic .btequ 2,tb0ic +ir_tb0ic .btequ 3,tb0ic +;-------------------------------------------------------------------- +; iio1 Interrupt Control Register adr:0095h +;-------------------------------------------------------------------- +iio1ic .equ 0095h +ilvl0_iio1ic .btequ 0,iio1ic +ilvl1_iio1ic .btequ 1,iio1ic +ilvl2_iio1ic .btequ 2,iio1ic +ir_iio1ic .btequ 3,iio1ic +;-------------------------------------------------------------------- +; timer b2 interrupt Control Register adr:0096h +;-------------------------------------------------------------------- +tb2ic .equ 0096h +ilvl0_tb2ic .btequ 0,tb2ic +ilvl1_tb2ic .btequ 1,tb2ic +ilvl2_tb2ic .btequ 2,tb2ic +ir_tb2ic .btequ 3,tb2ic +;-------------------------------------------------------------------- +; iio3 Interrupt Control Register adr:0097h +;-------------------------------------------------------------------- +iio3ic .equ 0097h +ilvl0_iio3ic .btequ 0,iio3ic +ilvl1_iio3ic .btequ 1,iio3ic +ilvl2_iio3ic .btequ 2,iio3ic +ir_iio3ic .btequ 3,iio3ic +;-------------------------------------------------------------------- +; timer b4 interrupt Control Register adr:0098h +;-------------------------------------------------------------------- +tb4ic .equ 0098h +ilvl0_tb4ic .btequ 0,tb4ic +ilvl1_tb4ic .btequ 1,tb4ic +ilvl2_tb4ic .btequ 2,tb4ic +ir_tb4ic .btequ 3,tb4ic +;-------------------------------------------------------------------- +; int4 interrupt Control Register adr:009ah +;-------------------------------------------------------------------- +int4ic .equ 009ah +ilvl0_int4ic .btequ 0,int4ic +ilvl1_int4ic .btequ 1,int4ic +ilvl2_int4ic .btequ 2,int4ic +ir_int4ic .btequ 3,int4ic +pol_int4ic .btequ 4,int4ic +lvs_int4ic .btequ 5,int4ic +;-------------------------------------------------------------------- +; int2 interrupt Control Register adr:009ch +;-------------------------------------------------------------------- +int2ic .equ 009ch +ilvl0_int2ic .btequ 0,int2ic +ilvl1_int2ic .btequ 1,int2ic +ilvl2_int2ic .btequ 2,int2ic +ir_int2ic .btequ 3,int2ic +pol_int2ic .btequ 4,int2ic +lvs_int2ic .btequ 5,int2ic +;-------------------------------------------------------------------- +; int0 interrupt Control Register adr:009eh +;-------------------------------------------------------------------- +int0ic .equ 009eh +ilvl0_int0ic .btequ 0,int0ic +ilvl1_int0ic .btequ 1,int0ic +ilvl2_int0ic .btequ 2,int0ic +ir_int0ic .btequ 3,int0ic +pol_int0ic .btequ 4,int0ic +lvs_int0ic .btequ 5,int0ic +;-------------------------------------------------------------------- +; Exit priority register adr:009fh +;-------------------------------------------------------------------- +rlvl .equ 009fh +rlvl0 .btequ 0,rlvl +rlvl1 .btequ 1,rlvl +rlvl2 .btequ 2,rlvl +fsit .btequ 3,rlvl +dmaii .btequ 5,rlvl +;-------------------------------------------------------------------- +; Interruption requirement Register 0 adr:00a0h +;-------------------------------------------------------------------- +iio0ir .equ 00a0h +tm13r .btequ 2,iio0ir +po13r .btequ 2,iio0ir +g0rir .btequ 4,iio0ir +sio0rr .btequ 5,iio0ir +can10r .btequ 7,iio0ir +;-------------------------------------------------------------------- +; Interruption requirement Register 1 adr:00a1h +;-------------------------------------------------------------------- +iio1ir .equ 00a1h +tm14r .btequ 2,iio1ir +po14r .btequ 2,iio1ir +g0tor .btequ 4,iio1ir +sio0tr .btequ 5,iio1ir +can11r .btequ 7,iio1ir +;-------------------------------------------------------------------- +; Interruption requirement Register 2 adr:00a2h +;-------------------------------------------------------------------- +iio2ir .equ 00a2h +tm12r .btequ 2,iio2ir +po12r .btequ 2,iio2ir +g1rir .btequ 4,iio2ir +sio1rr .btequ 5,iio2ir +;-------------------------------------------------------------------- +; Interruption requirement Register 3 adr:00a3h +;-------------------------------------------------------------------- +iio3ir .equ 00a3h +tm10r .btequ 2,iio3ir +po10r .btequ 2,iio3ir +g1tor .btequ 4,iio3ir +sio1tr .btequ 5,iio3ir +;-------------------------------------------------------------------- +; Interruption requirement Register 4 adr:00a4h +;-------------------------------------------------------------------- +iio4ir .equ 00a4h +tm17r .btequ 2,iio4ir +po17r .btequ 2,iio4ir +bt1r .btequ 4,iio4ir +srt1r .btequ 6,iio4ir +srt0r .btequ 7,iio4ir +;-------------------------------------------------------------------- +; Interruption requirement Register 5 adr:00a5h +;-------------------------------------------------------------------- +iio5ir .equ 00a5h +can1wur .btequ 6,iio5ir +can12r .btequ 7,iio5ir +;-------------------------------------------------------------------- +; Interruption permission Register 0 adr:00b0h +;-------------------------------------------------------------------- +iio0ie .equ 00b0h +irlt_iio0ie .btequ 0,iio0ie +tm13e .btequ 2,iio0ie +po13e .btequ 2,iio0ie +g0rie .btequ 4,iio0ie +sio0re .btequ 5,iio0ie +can10e .btequ 7,iio0ie +;-------------------------------------------------------------------- +; Interruption permission Register 1 adr:00b1h +;-------------------------------------------------------------------- +iio1ie .equ 00b1h +irlt_iio1ie .btequ 0,iio1ie +tm14e .btequ 2,iio1ie +po14e .btequ 2,iio1ie +g0toe .btequ 4,iio1ie +sio0te .btequ 5,iio1ie +can11e .btequ 7,iio1ie +;-------------------------------------------------------------------- +; Interruption permission Register 2 adr:00b2h +;-------------------------------------------------------------------- +iio2ie .equ 00b2h +irlt_iio2ie .btequ 0,iio2ie +tm12e .btequ 2,iio2ie +po12e .btequ 2,iio2ie +g1rie .btequ 4,iio2ie +sio1re .btequ 5,iio2ie +;-------------------------------------------------------------------- +; Interruption permission Register 3 adr:00b3h +;-------------------------------------------------------------------- +iio3ie .equ 00b3h +irlt_iio3ie .btequ 0,iio3ie +tm10e .btequ 2,iio3ie +po10e .btequ 2,iio3ie +g1toe .btequ 4,iio3ie +sio1te .btequ 5,iio3ie +;-------------------------------------------------------------------- +; Interruption permission Register 4 adr:00b4h +;-------------------------------------------------------------------- +iio4ie .equ 00b4h +irlt_iio4ie .btequ 0,iio4ie +tm17e .btequ 2,iio4ie +po17e .btequ 2,iio4ie +bt1e .btequ 4,iio4ie +srt1e .btequ 6,iio4ie +srt0e .btequ 7,iio4ie +;-------------------------------------------------------------------- +; +; +; intelligent i/o Register(group0) +; +; +;-------------------------------------------------------------------- +; group0 si/o receive buffer Register adr:00e8 +;-------------------------------------------------------------------- +g0rb .equ 00e8h +g0rbl .equ g0rb +g0rbh .equ g0rb+1 +oer_g0rb .btequ 4, g0rbh +;-------------------------------------------------------------------- +; group0 si/o transmitting +; buffer Register adr:00eah +;-------------------------------------------------------------------- +g0tb .equ 00eah +;-------------------------------------------------------------------- +; group0 receiving data Register adr:00eah +;-------------------------------------------------------------------- +g0dr .equ 00eah +;-------------------------------------------------------------------- +; group0 receiving input Register adr:00ech +;-------------------------------------------------------------------- +g0ri .equ 00ech +;-------------------------------------------------------------------- +; group0 si/o communication +; mode Register adr:00edh +;-------------------------------------------------------------------- +g0mr .equ 00edh +gmd0_g0mr .btequ 0,g0mr +gmd1_g0mr .btequ 1,g0mr +ckdir_g0mr .btequ 2,g0mr +uform_g0mr .btequ 6,g0mr +irs_g0mr .btequ 7,g0mr +;-------------------------------------------------------------------- +; group0 transmitting output Register adr:00eeh +;-------------------------------------------------------------------- +g0to .equ 00eeh +;-------------------------------------------------------------------- +; group0 si/o communication +; Control Register adr:00efh +;-------------------------------------------------------------------- +g0cr .equ 00efh +ti_g0cr .btequ 0,g0cr +txept_g0cr .btequ 1,g0cr +ri_g0cr .btequ 2,g0cr +te_g0cr .btequ 4,g0cr +re_g0cr .btequ 5,g0cr +ipol_g0cr .btequ 6,g0cr +opol_g0cr .btequ 7,g0cr +;-------------------------------------------------------------------- +; group0 data comparative Register 0 adr:00f0h +;-------------------------------------------------------------------- +g0cmp0 .equ 00f0h +;-------------------------------------------------------------------- +; group0 data comparative Register 1 adr:00f1h +;-------------------------------------------------------------------- +g0cmp1 .equ 00f1h +;-------------------------------------------------------------------- +; group0 data comparative Register 2 adr:00f2h +;-------------------------------------------------------------------- +g0cmp2 .equ 00f2h +;-------------------------------------------------------------------- +; group0 data comparative Register 3 adr:00f3h +;-------------------------------------------------------------------- +g0cmp3 .equ 00f3h +;-------------------------------------------------------------------- +; group0 data mask Register 0 adr:00f4h +;-------------------------------------------------------------------- +g0msk0 .equ 00f4h +;-------------------------------------------------------------------- +; group0 data mask Register 1 adr:00f5h +;-------------------------------------------------------------------- +g0msk1 .equ 00f5h +;-------------------------------------------------------------------- +; Communication Clock Select Register adr:00f6h +;-------------------------------------------------------------------- +ccs .equ 00f6h +ccs0 .btequ 0,ccs +ccs1 .btequ 1,ccs +ccs2 .btequ 2,ccs +ccs3 .btequ 3,ccs +;-------------------------------------------------------------------- +; group0 receive crc Register adr:00f9h-00f8h +;-------------------------------------------------------------------- +g0rcrc .equ 00f8h +g0rcrcl .equ g0rcrc +g0rcrch .equ g0rcrc+1 +;-------------------------------------------------------------------- +; group0 transmit crc Register adr:00fbh-00fah +;-------------------------------------------------------------------- +g0tcrc .equ 00fah +g0tcrcl .equ g0tcrc +g0tcrch .equ g0tcrc+1 +;-------------------------------------------------------------------- +; group0 function expansion +; mode Register adr:00fch +;-------------------------------------------------------------------- +g0emr .equ 00fch +crcv_g0emr .btequ 1,g0emr +acrc_g0emr .btequ 2,g0emr +bsint_g0emr .btequ 3,g0emr +rxsl_g0emr .btequ 4,g0emr +txsl_g0emr .btequ 5,g0emr +crc0_g0emr .btequ 6,g0emr +crc1_g0emr .btequ 7,g0emr +;-------------------------------------------------------------------- +; group0 expansion receive +; Control Register adr:00fdh +;-------------------------------------------------------------------- +g0erc .equ 00fdh +cmp0e_g0erc .btequ 0,g0erc +cmp1e_g0erc .btequ 1,g0erc +cmp2e_g0erc .btequ 2,g0erc +cmp3e_g0erc .btequ 3,g0erc +rcrce_g0erc .btequ 4,g0erc +rshte_g0erc .btequ 5,g0erc +rbsf0_g0erc .btequ 6,g0erc +rbsf1_g0erc .btequ 7,g0erc +;-------------------------------------------------------------------- +; group0 special communication Interruption +; distinction Register adr:00feh +;-------------------------------------------------------------------- +g0irf .equ 00feh +bserr_g0irf .btequ 2,g0irf +irf0_g0irf .btequ 4,g0irf +irf1_g0irf .btequ 5,g0irf +irf2_g0irf .btequ 6,g0irf +irf3_g0irf .btequ 7,g0irf +;-------------------------------------------------------------------- +; group0 si/o expansion transmitting +; Control Register adr:00ffh +;-------------------------------------------------------------------- +g0etc .equ 00ffh +tcrce_g0etc .btequ 4,g0etc +tbsf0_g0etc .btequ 6,g0etc +tbsf1_g0etc .btequ 7,g0etc +;-------------------------------------------------------------------- +; group1 si/o receive buffer Register adr:0129h-0128h +;-------------------------------------------------------------------- +g1rb .equ 0128h +g1rbl .equ g1rb +g1rbh .equ g1rb+1 +oer_g1rb .btequ 4,g1rbh +fer_g1rb .btequ 5,g1rbh +per_g1rb .btequ 6,g1rbh +;-------------------------------------------------------------------- +; group1 si/o transmitting +; buffer Register adr:012ah +;-------------------------------------------------------------------- +g1tb .equ 012ah +;-------------------------------------------------------------------- +; group1 receiving data Register adr:012ah +;-------------------------------------------------------------------- +g1dr .equ 012ah +;-------------------------------------------------------------------- +; group1 receiving input Register adr:012ch +;-------------------------------------------------------------------- +g1ri .equ 012ch +;-------------------------------------------------------------------- +; group1 si/o communication +; mode Register adr:012dh +;-------------------------------------------------------------------- +g1mr .equ 012dh +gmd0_g1mr .btequ 0,g1mr +gmd1_g1mr .btequ 1,g1mr +ckdir_g1mr .btequ 2,g1mr +stps_g1mr .btequ 3,g1mr +pry_g1mr .btequ 4,g1mr +prye_g1mr .btequ 5,g1mr +uform_g1mr .btequ 6,g1mr +irs_g1mr .btequ 7,g1mr +;-------------------------------------------------------------------- +; group1 transmitting output Register adr:012eh +;-------------------------------------------------------------------- +g1to .equ 012eh +;-------------------------------------------------------------------- +; group1 si/o communication +; Control Register adr:012fh +;-------------------------------------------------------------------- +g1cr .equ 012fh +ti_g1cr .btequ 0,g1cr +txept_g1cr .btequ 1,g1cr +ri_g1cr .btequ 2,g1cr +te_g1cr .btequ 4,g1cr +re_g1cr .btequ 5,g1cr +ipol_g1cr .btequ 6,g1cr +opol_g1cr .btequ 7,g1cr +;-------------------------------------------------------------------- +; group1 data comparative Register 0 adr:0130h +;-------------------------------------------------------------------- +g1cmp0 .equ 0130h +;-------------------------------------------------------------------- +; group1 data comparative Register 1 adr:0131h +;-------------------------------------------------------------------- +g1cmp1 .equ 0131h +;-------------------------------------------------------------------- +; group1 data comparative Register 2 adr:0132h +;-------------------------------------------------------------------- +g1cmp2 .equ 0132h +;-------------------------------------------------------------------- +; group1 data comparative Register 3 adr:0133h +;-------------------------------------------------------------------- +g1cmp3 .equ 0133h +;-------------------------------------------------------------------- +; group1 data mask Register 0 adr:0134h +;-------------------------------------------------------------------- +g1msk0 .equ 0134h +;-------------------------------------------------------------------- +; group1 data mask Register 1 adr:0135h +;-------------------------------------------------------------------- +g1msk1 .equ 0135h +;-------------------------------------------------------------------- +; group1 receive crc Register adr:0139h-0138h +;-------------------------------------------------------------------- +g1rcrc .equ 0138h +g1rcrcl .equ g1rcrc +g1rcrch .equ g1rcrc+1 +;-------------------------------------------------------------------- +; group1 transmit crc Register adr:013bh-013ah +;-------------------------------------------------------------------- +g1tcrc .equ 013ah +g1tcrcl .equ g1tcrc +g1tcrch .equ g1tcrc+1 +;-------------------------------------------------------------------- +; group1 function expansion +; mode Register adr:013ch +;-------------------------------------------------------------------- +g1emr .equ 013ch +smode_g1emr .btequ 0,g1emr +crcv_g1emr .btequ 1,g1emr +acrc_g1emr .btequ 2,g1emr +bsint_g1emr .btequ 3,g1emr +rxsl_g1emr .btequ 4,g1emr +txsl_g1emr .btequ 5,g1emr +crc0_g1emr .btequ 6,g1emr +crc1_g1emr .btequ 7,g1emr +;-------------------------------------------------------------------- +; group1 expansion receive +; Control Register adr:013dh +;-------------------------------------------------------------------- +g1erc .equ 013dh +cmp0e_g1erc .btequ 0,g1erc +cmp1e_g1erc .btequ 1,g1erc +cmp2e_g1erc .btequ 2,g1erc +cmp3e_g1erc .btequ 3,g1erc +rcrce_g1erc .btequ 4,g1erc +rshte_g1erc .btequ 5,g1erc +rbsf0_g1erc .btequ 6,g1erc +rbsf1_g1erc .btequ 7,g1erc +;-------------------------------------------------------------------- +; group1 special communication Interruption +; distinction Register adr:013eh +;-------------------------------------------------------------------- +g1irf .equ 013eh +bserr_g1irf .btequ 2,g1irf +abt_g1irf .btequ 3,g1irf +irf0_g1irf .btequ 4,g1irf +irf1_g1irf .btequ 5,g1irf +irf2_g1irf .btequ 6,g1irf +irf3_g1irf .btequ 7,g1irf +;-------------------------------------------------------------------- +; group1 si/o expansion transmitting +; Control Register adr:013fh +;-------------------------------------------------------------------- +g1etc .equ 013fh +sof_g1etc .btequ 3,g1etc +tcrce_g1etc .btequ 4,g1etc +abte_g1etc .btequ 5,g1etc +tbsf0_g1etc .btequ 6,g1etc +tbsf1_g1etc .btequ 7,g1etc + +;-------------------------------------------------------------------- +; +; +; x-y Register +; +; +;-------------------------------------------------------------------- +; x0 Register adr:02c1h-02c0h +;-------------------------------------------------------------------- +x0r .equ 02c0h +x0rl .equ x0r +x0rh .equ x0r+1 +;-------------------------------------------------------------------- +; y0 Register adr:02c1h-02c0h +;-------------------------------------------------------------------- +y0r .equ 02c0h +y0rl .equ y0r +y0rh .equ y0r+1 +;-------------------------------------------------------------------- +; x1 Register adr:02c3h-02c2h +;-------------------------------------------------------------------- +x1r .equ 02c2h +x1rl .equ x1r +x1rh .equ x1r+1 +;-------------------------------------------------------------------- +; y1 Register adr:02c3h-02c2h +;-------------------------------------------------------------------- +y1r .equ 02c2h +y1rl .equ y1r +y1rh .equ y1r+1 +;-------------------------------------------------------------------- +; x2 Register adr:02c5h-02c4h +;-------------------------------------------------------------------- +x2r .equ 02c4h +x2rl .equ x2r +x2rh .equ x2r+1 +;-------------------------------------------------------------------- +; y2 Register adr:02c5h-02c4h +;-------------------------------------------------------------------- +y2r .equ 02c4h +y2rl .equ y2r +y2rh .equ y2r+1 +;-------------------------------------------------------------------- +; x3 Register adr:02c7h-02c6h +;-------------------------------------------------------------------- +x3r .equ 02c6h +x3rl .equ x3r +x3rh .equ x3r+1 +;-------------------------------------------------------------------- +; y3 Register adr:02c7h-02c6h +;-------------------------------------------------------------------- +y3r .equ 02c6h +y3rl .equ y3r +y3rh .equ y3r+1 +;-------------------------------------------------------------------- +; x4 Register adr:02c9h-02c8h +;-------------------------------------------------------------------- +x4r .equ 02c8h +x4rl .equ x4r +x4rh .equ x4r+1 +;-------------------------------------------------------------------- +; y4 Register adr:02c9h-02c8h +;-------------------------------------------------------------------- +y4r .equ 02c8h +y4rl .equ y4r +y4rh .equ y4r+1 +;-------------------------------------------------------------------- +; x5 Register adr:02cbh-02cah +;-------------------------------------------------------------------- +x5r .equ 02cah +x5rl .equ x5r +x5rh .equ x5r+1 +;-------------------------------------------------------------------- +; y5 Register adr:02cbh-02cah +;-------------------------------------------------------------------- +y5r .equ 02cah +y5rl .equ y5r +y5rh .equ y5r+1 +;-------------------------------------------------------------------- +; x6 Register adr:02cdh-02cch +;-------------------------------------------------------------------- +x6r .equ 02cch +x6rl .equ x6r +x6rh .equ x6r+1 +;-------------------------------------------------------------------- +; y6 Register adr:02cdh-02cch +;-------------------------------------------------------------------- +y6r .equ 02cch +y6rl .equ y6r +y6rh .equ y6r+1 +;-------------------------------------------------------------------- +; x7 Register adr:02cfh-02ceh +;-------------------------------------------------------------------- +x7r .equ 02ceh +x7rl .equ x7r +x7rh .equ x7r+1 +;-------------------------------------------------------------------- +; y7 Register adr:02cfh-02ceh +;-------------------------------------------------------------------- +y7r .equ 02ceh +y7rl .equ y7r +y7rh .equ y7r+1 +;-------------------------------------------------------------------- +; x8 Register adr:02d1h-02d0h +;-------------------------------------------------------------------- +x8r .equ 02d0h +x8rl .equ x8r +x8rh .equ x8r+1 +;-------------------------------------------------------------------- +; y8 Register adr:02d1h-02d0h +;-------------------------------------------------------------------- +y8r .equ 02d0h +y8rl .equ y8r +y8rh .equ y8r+1 +;-------------------------------------------------------------------- +; x9 Register adr:02d3h-02d2h +;-------------------------------------------------------------------- +x9r .equ 02d2h +x9rl .equ x9r +x9rh .equ x9r+1 +;-------------------------------------------------------------------- +; y9 Register adr:02d3h-02d2h +;-------------------------------------------------------------------- +y9r .equ 02d2h +y9rl .equ y9r +y9rh .equ y9r+1 +;-------------------------------------------------------------------- +; x10 Register adr:02d5h-02d4h +;-------------------------------------------------------------------- +x10r .equ 02d4h +x10rl .equ x10r +x10rh .equ x10r+1 +;-------------------------------------------------------------------- +; y10 Register adr:02d5h-02d4h +;-------------------------------------------------------------------- +y10r .equ 02d4h +y10rl .equ y10r +y10rh .equ y10r+1 +;-------------------------------------------------------------------- +; x11 Register adr:02d7h-02d6h +;-------------------------------------------------------------------- +x11r .equ 02d6h +x11rl .equ x11r +x11rh .equ x11r+1 +;-------------------------------------------------------------------- +; y11 Register adr:02d7h-02d6h +;-------------------------------------------------------------------- +y11r .equ 02d6h +y11rl .equ y11r +y11rh .equ y11r+1 +;-------------------------------------------------------------------- +; x12 Register adr:02d9h-02d8h +;-------------------------------------------------------------------- +x12r .equ 02d8h +x12rl .equ x12r +x12rh .equ x12r+1 +;-------------------------------------------------------------------- +; y12 Register adr:02d9h-02d8h +;-------------------------------------------------------------------- +y12r .equ 02d8h +y12rl .equ y12r +y12rh .equ y12r+1 +;-------------------------------------------------------------------- +; x13 Register adr:02dbh-02dah +;-------------------------------------------------------------------- +x13r .equ 02dah +x13rl .equ x13r +x13rh .equ x13r+1 +;-------------------------------------------------------------------- +; y13 Register adr:02dbh-02dah +;-------------------------------------------------------------------- +y13r .equ 02dah +y13rl .equ y13r +y13rh .equ y13r+1 +;-------------------------------------------------------------------- +; x14 Register adr:02ddh-02dch +;-------------------------------------------------------------------- +x14r .equ 02dch +x14rl .equ x14r +x14rh .equ x14r+1 +;-------------------------------------------------------------------- +; y14 Register adr:02ddh-02dch +;-------------------------------------------------------------------- +y14r .equ 02dch +y14rl .equ y14r +y14rh .equ y14r+1 +;-------------------------------------------------------------------- +; x15 Register adr:02dfh-02deh +;-------------------------------------------------------------------- +x15r .equ 02deh +x15rl .equ x15r +x15rh .equ x15r+1 +;-------------------------------------------------------------------- +; y15 Register adr:02dfh-02deh +;-------------------------------------------------------------------- +y15r .equ 02deh +y15rl .equ y15r +y15rh .equ y15r+1 +;-------------------------------------------------------------------- +; x-y Control Register adr:02e0h +;-------------------------------------------------------------------- +xyc .equ 02e0h +xyc0 .btequ 0,xyc +xyc1 .btequ 1,xyc +;-------------------------------------------------------------------- +; +; +; uart1 +; +; +;-------------------------------------------------------------------- +; uart1 special mode Register 4 adr:02e4h +;-------------------------------------------------------------------- +u1smr4 .equ 02e4h +stareq_u1smr4 .btequ 0,u1smr4 +rstareq_u1smr4 .btequ 1,u1smr4 +stpreq_u1smr4 .btequ 2,u1smr4 +stspsel_u1smr4 .btequ 3,u1smr4 +ackd_u1smr4 .btequ 4,u1smr4 +ackc_u1smr4 .btequ 5,u1smr4 +sclhi_u1smr4 .btequ 6,u1smr4 +swc9_u1smr4 .btequ 7,u1smr4 +;-------------------------------------------------------------------- +; uart1 special mode Register 3 adr:02e5h +;-------------------------------------------------------------------- +u1smr3 .equ 02e5h +sse_u1smr3 .btequ 0,u1smr3 +ckph_u1smr3 .btequ 1,u1smr3 +dinc_u1smr3 .btequ 2,u1smr3 +nodc_u1smr3 .btequ 3,u1smr3 +err_u1smr3 .btequ 4,u1smr3 +dl0_u1smr3 .btequ 5,u1smr3 +dl1_u1smr3 .btequ 6,u1smr3 +dl2_u1smr3 .btequ 7,u1smr3 +;-------------------------------------------------------------------- +; uart1 special mode Register 2 adr:02e6h +;-------------------------------------------------------------------- +u1smr2 .equ 02e6h +iicm2_u1smr2 .btequ 0,u1smr2 +csc_u1smr2 .btequ 1,u1smr2 +swc_u1smr2 .btequ 2,u1smr2 +als_u1smr2 .btequ 3,u1smr2 +stc_u1smr2 .btequ 4,u1smr2 +swc2_u1smr2 .btequ 5,u1smr2 +sdhi_u1smr2 .btequ 6,u1smr2 +su1him_u1smr2 .btequ 7,u1smr2 +;-------------------------------------------------------------------- +; uart1 special mode Register adr:02e7h +;-------------------------------------------------------------------- +u1smr .equ 02e7h +iicm_u1smr .btequ 0,u1smr +abc_u1smr .btequ 1,u1smr +bbs_u1smr .btequ 2,u1smr +lsyn_u1smr .btequ 3,u1smr +abscs_u1smr .btequ 4,u1smr +acse_u1smr .btequ 5,u1smr +sss_u1smr .btequ 6,u1smr +sclkdiv_u1smr .btequ 7,u1smr +;-------------------------------------------------------------------- +; uart1 transmit receive mode Register adr:02e8h +;-------------------------------------------------------------------- +u1mr .equ 02e8h +smd0_u1mr .btequ 0,u1mr +smd1_u1mr .btequ 1,u1mr +smd2_u1mr .btequ 2,u1mr +ckdir_u1mr .btequ 3,u1mr +stps_u1mr .btequ 4,u1mr +pry_u1mr .btequ 5,u1mr +prye_u1mr .btequ 6,u1mr +iopol_u1mr .btequ 7,u1mr +;-------------------------------------------------------------------- +; uart1 bit rate generator adr:02e9h +;-------------------------------------------------------------------- +u1brg .equ 02e9h +;-------------------------------------------------------------------- +; uart1 transmit buffer Register adr:02ebh-02eah +;-------------------------------------------------------------------- +u1tb .equ 02eah +u1tbl .equ u1tb +u1tbh .equ u1tb+1 +;-------------------------------------------------------------------- +; uart1 transmit receive Control Register 0 adr:02ech +;-------------------------------------------------------------------- +u1c0 .equ 02ech +clk0_u1c0 .btequ 0,u1c0 +clk1_u1c0 .btequ 1,u1c0 +crs_u1c0 .btequ 2,u1c0 +txept_u1c0 .btequ 3,u1c0 +crd_u1c0 .btequ 4,u1c0 +nch_u1c0 .btequ 5,u1c0 +ckpol_u1c0 .btequ 6,u1c0 +uform_u1c0 .btequ 7,u1c0 +;-------------------------------------------------------------------- +; uart1 transmit receive Control Register 1 adr:02edh +;-------------------------------------------------------------------- +u1c1 .equ 02edh +te_u1c1 .btequ 0,u1c1 +ti_u1c1 .btequ 1,u1c1 +re_u1c1 .btequ 2,u1c1 +ri_u1c1 .btequ 3,u1c1 +u1irs_u1c1 .btequ 4,u1c1 +u1rrm_u1c1 .btequ 5,u1c1 +u1lch_u1c1 .btequ 6,u1c1 +sclkstpb_u1c1 .btequ 7,u1c1 +u1ere_u1c1 .btequ 7,u1c1 +;-------------------------------------------------------------------- +; uart1 receive buffer Register adr:02efh-02eeh +;-------------------------------------------------------------------- +u1rb .equ 02eeh +u1rbl .equ u1rb +u1rbh .equ u1rb+1 +abt_u1rb .btequ 3,u1rbh +oer_u1rb .btequ 4,u1rbh +fer_u1rb .btequ 5,u1rbh +per_u1rb .btequ 6,u1rbh +sum_u1rb .btequ 7,u1rbh +;-------------------------------------------------------------------- +; +; +; uart4 +; +; +;-------------------------------------------------------------------- +; uart4 special mode Register 4 adr:02f4h +;-------------------------------------------------------------------- +u4smr4 .equ 02f4h +stareq_u4smr4 .btequ 0,u4smr4 +rstareq_u4smr4 .btequ 1,u4smr4 +stpreq_u4smr4 .btequ 2,u4smr4 +stspsel_u4smr4 .btequ 3,u4smr4 +ackd_u4smr4 .btequ 4,u4smr4 +ackc_u4smr4 .btequ 5,u4smr4 +sclhi_u4smr4 .btequ 6,u4smr4 +swc9_u4smr4 .btequ 7,u4smr4 +;-------------------------------------------------------------------- +; uart4 special mode Register 3 adr:02f5h +;-------------------------------------------------------------------- +u4smr3 .equ 02f5h +sse_u4smr3 .btequ 0,u4smr3 +ckph_u4smr3 .btequ 1,u4smr3 +dinc_u4smr3 .btequ 2,u4smr3 +nodc_u4smr3 .btequ 3,u4smr3 +err_u4smr3 .btequ 4,u4smr3 +dl0_u4smr3 .btequ 5,u4smr3 +dl1_u4smr3 .btequ 6,u4smr3 +dl2_u4smr3 .btequ 7,u4smr3 +;-------------------------------------------------------------------- +; uart4 special mode Register 2 adr:02f6h +;-------------------------------------------------------------------- +u4smr2 .equ 02f6h +iicm2_u4smr2 .btequ 0,u4smr2 +csc_u4smr2 .btequ 1,u4smr2 +swc_u4smr2 .btequ 2,u4smr2 +als_u4smr2 .btequ 3,u4smr2 +stc_u4smr2 .btequ 4,u4smr2 +swc2_u4smr2 .btequ 5,u4smr2 +sdhi_u4smr2 .btequ 6,u4smr2 +su1him_u4smr2 .btequ 7,u4smr2 +;-------------------------------------------------------------------- +; uart4 special mode Register adr:02f7h +;-------------------------------------------------------------------- +u4smr .equ 02f7h +iicm_u4smr .btequ 0,u4smr +abc_u4smr .btequ 1,u4smr +bbs_u4smr .btequ 2,u4smr +lsyn_u4smr .btequ 3,u4smr +abscs_u4smr .btequ 4,u4smr +acse_u4smr .btequ 5,u4smr +sss_u4smr .btequ 6,u4smr +sclkdiv_u4smr .btequ 7,u4smr +;-------------------------------------------------------------------- +; uart4 transmit receive mode Register adr:02f8h +;-------------------------------------------------------------------- +u4mr .equ 02f8h +smd0_u4mr .btequ 0,u4mr +smd1_u4mr .btequ 1,u4mr +smd2_u4mr .btequ 2,u4mr +ckdir_u4mr .btequ 3,u4mr +stps_u4mr .btequ 4,u4mr +pry_u4mr .btequ 5,u4mr +prye_u4mr .btequ 6,u4mr +iopol_u4mr .btequ 7,u4mr +;-------------------------------------------------------------------- +; uart4 bit rate generator adr:02f9h +;-------------------------------------------------------------------- +u4brg .equ 02f9h +;-------------------------------------------------------------------- +; uart4 transmit buffer Register adr:02fbh-02fah +;-------------------------------------------------------------------- +u4tb .equ 02fah +u4tbl .equ u4tb +u4tbh .equ u4tb+1 +;-------------------------------------------------------------------- +; uart4 transmit receive Control Register 0 adr:02fch +;-------------------------------------------------------------------- +u4c0 .equ 02fch +clk0_u4c0 .btequ 0,u4c0 +clk1_u4c0 .btequ 1,u4c0 +crs_u4c0 .btequ 2,u4c0 +txept_u4c0 .btequ 3,u4c0 +crd_u4c0 .btequ 4,u4c0 +nch_u4c0 .btequ 5,u4c0 +ckpol_u4c0 .btequ 6,u4c0 +uform_u4c0 .btequ 7,u4c0 +;-------------------------------------------------------------------- +; uart4 transmit receive Control Register 1 adr:02fdh +;-------------------------------------------------------------------- +u4c1 .equ 02fdh +te_u4c1 .btequ 0,u4c1 +ti_u4c1 .btequ 1,u4c1 +re_u4c1 .btequ 2,u4c1 +ri_u4c1 .btequ 3,u4c1 +u4irs_u4c1 .btequ 4,u4c1 +u4rrm_u4c1 .btequ 5,u4c1 +u4lch_u4c1 .btequ 6,u4c1 +sclkstpb_u4c1 .btequ 7,u4c1 +u4ere_u4c1 .btequ 7,u4c1 +;-------------------------------------------------------------------- +; uart4 receive buffer Register adr:02ffh-02feh +;-------------------------------------------------------------------- +u4rb .equ 02feh +u4rbl .equ u4rb +u4rbh .equ u4rb+1 +abt_u4rb .btequ 3,u4rbh +oer_u4rb .btequ 4,u4rbh +fer_u4rb .btequ 5,u4rbh +per_u4rb .btequ 6,u4rbh +sum_u4rb .btequ 7,u4rbh +;-------------------------------------------------------------------- +; +; +; timer +; +; +;-------------------------------------------------------------------- +; timer b3,4,5 count start flag adr:0300h +;-------------------------------------------------------------------- +tbsr .equ 0300h +tb3s .btequ 5,tbsr +tb4s .btequ 6,tbsr +tb5s .btequ 7,tbsr +;-------------------------------------------------------------------- +; timer a1-1 Register adr:0303h-0302h +;-------------------------------------------------------------------- +ta11 .equ 0302h +;-------------------------------------------------------------------- +; timer a2-1 Register adr:0305h-0304h +;-------------------------------------------------------------------- +ta21 .equ 0304h +;-------------------------------------------------------------------- +; timer a4-1 Register adr:0307h-0306h +;-------------------------------------------------------------------- +ta41 .equ 0306h +;-------------------------------------------------------------------- +; three phase pwm Control Register 0 adr:0308h +;-------------------------------------------------------------------- +invc0 .equ 0308h +inv00 .btequ 0,invc0 +inv01 .btequ 1,invc0 +inv02 .btequ 2,invc0 +inv03 .btequ 3,invc0 +inv04 .btequ 4,invc0 +inv05 .btequ 5,invc0 +inv06 .btequ 6,invc0 +inv07 .btequ 7,invc0 +;-------------------------------------------------------------------- +; three phase pwm Control Register 1 adr:0309h +;-------------------------------------------------------------------- +invc1 .equ 0309h +inv10 .btequ 0,invc1 +inv11 .btequ 1,invc1 +inv12 .btequ 2,invc1 +inv13 .btequ 3,invc1 +inv14 .btequ 4,invc1 +inv15 .btequ 5,invc1 +inv16 .btequ 6,invc1 +;-------------------------------------------------------------------- +; three phase output buffer Register 0 adr:030ah +;-------------------------------------------------------------------- +idb0 .equ 030ah +du0 .btequ 0,idb0 +dub0 .btequ 1,idb0 +dv0 .btequ 2,idb0 +dvb0 .btequ 3,idb0 +dw0 .btequ 4,idb0 +dwb0 .btequ 5,idb0 +;-------------------------------------------------------------------- +; three phase output buffer Register 1 adr:030bh +;-------------------------------------------------------------------- +idb1 .equ 030bh +du1 .btequ 0,idb1 +dub1 .btequ 1,idb1 +dv1 .btequ 2,idb1 +dvb1 .btequ 3,idb1 +dw1 .btequ 4,idb1 +dwb1 .btequ 5,idb1 +;-------------------------------------------------------------------- +; dead time timer adr:030ch +;-------------------------------------------------------------------- +dtt .equ 030ch +;-------------------------------------------------------------------- +; timer b2 Interrupt occurrence +; frequency set counter adr:030dh +;-------------------------------------------------------------------- +ictb2 .equ 030dh +;-------------------------------------------------------------------- +; timer b3 Register adr:0311h-0310h +;-------------------------------------------------------------------- +tb3 .equ 0310h +;-------------------------------------------------------------------- +; timer b4 Register adr:0313h-0312h +;-------------------------------------------------------------------- +tb4 .equ 0312h +;-------------------------------------------------------------------- +; timer b5 Register adr:0315h-0314h +;-------------------------------------------------------------------- +tb5 .equ 0314h +;-------------------------------------------------------------------- +; timer b3 mode Register adr:031bh +;-------------------------------------------------------------------- +tb3mr .equ 031bh +tmod0_tb3mr .btequ 0,tb3mr +tmod1_tb3mr .btequ 1,tb3mr +mr0_tb3mr .btequ 2,tb3mr +mr1_tb3mr .btequ 3,tb3mr +mr2_tb3mr .btequ 4,tb3mr +mr3_tb3mr .btequ 5,tb3mr +tck0_tb3mr .btequ 6,tb3mr +tck1_tb3mr .btequ 7,tb3mr +;-------------------------------------------------------------------- +; timer b4 mode Register adr:031ch +;-------------------------------------------------------------------- +tb4mr .equ 031ch +tmod0_tb4mr .btequ 0,tb4mr +tmod1_tb4mr .btequ 1,tb4mr +mr0_tb4mr .btequ 2,tb4mr +mr1_tb4mr .btequ 3,tb4mr +mr2_tb4mr .btequ 4,tb4mr +mr3_tb4mr .btequ 5,tb4mr +tck0_tb4mr .btequ 6,tb4mr +tck1_tb4mr .btequ 7,tb4mr +;-------------------------------------------------------------------- +; timer b5 mode Register adr:031dh +;-------------------------------------------------------------------- +tb5mr .equ 031dh +tmod0_tb5mr .btequ 0,tb5mr +tmod1_tb5mr .btequ 1,tb5mr +mr0_tb5mr .btequ 2,tb5mr +mr1_tb5mr .btequ 3,tb5mr +mr2_tb5mr .btequ 4,tb5mr +mr3_tb5mr .btequ 5,tb5mr +tck0_tb5mr .btequ 6,tb5mr +tck1_tb5mr .btequ 7,tb5mr +;-------------------------------------------------------------------- +; Interrupt cause select Register adr:031fh +;-------------------------------------------------------------------- +ifsr .equ 031fh +ifsr0 .btequ 0,ifsr +ifsr1 .btequ 1,ifsr +ifsr2 .btequ 2,ifsr +ifsr3 .btequ 3,ifsr +ifsr4 .btequ 4,ifsr +ifsr5 .btequ 5,ifsr +ifsr6 .btequ 6,ifsr +ifsr7 .btequ 7,ifsr +;-------------------------------------------------------------------- +; +; +; uart3 +; +; +;-------------------------------------------------------------------- +; uart3 special mode Register 4 adr:0324h +;-------------------------------------------------------------------- +u3smr4 .equ 0324h +stareq_u3smr4 .btequ 0,u3smr4 +rstareq_u3smr4 .btequ 1,u3smr4 +stpreq_u3smr4 .btequ 2,u3smr4 +stspsel_u3smr4 .btequ 3,u3smr4 +ackd_u3smr4 .btequ 4,u3smr4 +ackc_u3smr4 .btequ 5,u3smr4 +sclhi_u3smr4 .btequ 6,u3smr4 +swc9_u3smr4 .btequ 7,u3smr4 +;-------------------------------------------------------------------- +; uart3 special mode Register 3 adr:0325h +;-------------------------------------------------------------------- +u3smr3 .equ 0325h +sse_u3smr3 .btequ 0,u3smr3 +ckph_u3smr3 .btequ 1,u3smr3 +dinc_u3smr3 .btequ 2,u3smr3 +nodc_u3smr3 .btequ 3,u3smr3 +err_u3smr3 .btequ 4,u3smr3 +dl0_u3smr3 .btequ 5,u3smr3 +dl1_u3smr3 .btequ 6,u3smr3 +dl2_u3smr3 .btequ 7,u3smr3 +;-------------------------------------------------------------------- +; uart3 special mode Register 2 adr:0326h +;-------------------------------------------------------------------- +u3smr2 .equ 0326h +iicm2_u3smr2 .btequ 0,u3smr2 +csc_u3smr2 .btequ 1,u3smr2 +swc_u3smr2 .btequ 2,u3smr2 +als_u3smr2 .btequ 3,u3smr2 +stc_u3smr2 .btequ 4,u3smr2 +swc2_u3smr2 .btequ 5,u3smr2 +sdhi_u3smr2 .btequ 6,u3smr2 +su1him_u3smr2 .btequ 7,u3smr2 +;-------------------------------------------------------------------- +; uart3 special mode Register adr:0327h +;-------------------------------------------------------------------- +u3smr .equ 0327h +iicm_u3smr .btequ 0,u3smr +abc_u3smr .btequ 1,u3smr +bbs_u3smr .btequ 2,u3smr +lsyn_u3smr .btequ 3,u3smr +abscs_u3smr .btequ 4,u3smr +acse_u3smr .btequ 5,u3smr +sss_u3smr .btequ 6,u3smr +sclkdiv_u3smr .btequ 7,u3smr +;-------------------------------------------------------------------- +; uart3 transmit receive mode Register adr:0328h +;-------------------------------------------------------------------- +u3mr .equ 0328h +smd0_u3mr .btequ 0,u3mr +smd1_u3mr .btequ 1,u3mr +smd2_u3mr .btequ 2,u3mr +ckdir_u3mr .btequ 3,u3mr +stps_u3mr .btequ 4,u3mr +pry_u3mr .btequ 5,u3mr +prye_u3mr .btequ 6,u3mr +iopol_u3mr .btequ 7,u3mr +;-------------------------------------------------------------------- +; uart3 bit rate generator adr:0329h +;-------------------------------------------------------------------- +u3brg .equ 0329h +;-------------------------------------------------------------------- +; uart3 transmit buffer Register adr:032bh-032ah +;-------------------------------------------------------------------- +u3tb .equ 032ah +u3tbl .equ u3tb +u3tbh .equ u3tb+1 +;-------------------------------------------------------------------- +; uart3 transmit receive Control Register 0 adr:032ch +;-------------------------------------------------------------------- +u3c0 .equ 032ch +clk0_u3c0 .btequ 0,u3c0 +clk1_u3c0 .btequ 1,u3c0 +crs_u3c0 .btequ 2,u3c0 +txept_u3c0 .btequ 3,u3c0 +crd_u3c0 .btequ 4,u3c0 +nch_u3c0 .btequ 5,u3c0 +ckpol_u3c0 .btequ 6,u3c0 +uform_u3c0 .btequ 7,u3c0 +;-------------------------------------------------------------------- +; uart3 transmit receive Control Register 1 adr:032dh +;-------------------------------------------------------------------- +u3c1 .equ 032dh +te_u3c1 .btequ 0,u3c1 +ti_u3c1 .btequ 1,u3c1 +re_u3c1 .btequ 2,u3c1 +ri_u3c1 .btequ 3,u3c1 +u3irs_u3c1 .btequ 4,u3c1 +u3rrm_u3c1 .btequ 5,u3c1 +u3lch_u3c1 .btequ 6,u3c1 +sclkstpb_u3c1 .btequ 7,u3c1 +u3ere_u3c1 .btequ 7,u3c1 +;-------------------------------------------------------------------- +; uart3 receive buffer Register adr:032fh-032eh +;-------------------------------------------------------------------- +u3rb .equ 032eh +u3rbl .equ u3rb +u3rbh .equ u3rb+1 +abt_u3rb .btequ 3,u3rbh +oer_u3rb .btequ 4,u3rbh +fer_u3rb .btequ 5,u3rbh +per_u3rb .btequ 6,u3rbh +sum_u3rb .btequ 7,u3rbh +;-------------------------------------------------------------------- +; +; +; uart2 +; +; +;-------------------------------------------------------------------- +; uart2 special mode Register 4 adr:0334h +;-------------------------------------------------------------------- +u2smr4 .equ 0334h +stareq_u2smr4 .btequ 0,u2smr4 +rstareq_u2smr4 .btequ 1,u2smr4 +stpreq_u2smr4 .btequ 2,u2smr4 +stspsel_u2smr4 .btequ 3,u2smr4 +ackd_u2smr4 .btequ 4,u2smr4 +ackc_u2smr4 .btequ 5,u2smr4 +sclhi_u2smr4 .btequ 6,u2smr4 +swc9_u2smr4 .btequ 7,u2smr4 +;-------------------------------------------------------------------- +; uart2 special mode Register 3 adr:0335h +;-------------------------------------------------------------------- +u2smr3 .equ 0335h +sse_u2smr3 .btequ 0,u2smr3 +ckph_u2smr3 .btequ 1,u2smr3 +dinc_u2smr3 .btequ 2,u2smr3 +nodc_u2smr3 .btequ 3,u2smr3 +err_u2smr3 .btequ 4,u2smr3 +dl0_u2smr3 .btequ 5,u2smr3 +dl1_u2smr3 .btequ 6,u2smr3 +dl2_u2smr3 .btequ 7,u2smr3 +;-------------------------------------------------------------------- +; uart2 special mode Register 2 adr:0336h +;-------------------------------------------------------------------- +u2smr2 .equ 0336h +iicm2_u2smr2 .btequ 0,u2smr2 +csc_u2smr2 .btequ 1,u2smr2 +swc_u2smr2 .btequ 2,u2smr2 +als_u2smr2 .btequ 3,u2smr2 +stc_u2smr2 .btequ 4,u2smr2 +swc2_u2smr2 .btequ 5,u2smr2 +sdhi_u2smr2 .btequ 6,u2smr2 +su1him_u2smr2 .btequ 7,u2smr2 +;-------------------------------------------------------------------- +; uart2 special mode Register adr:0337h +;-------------------------------------------------------------------- +u2smr .equ 0337h +iicm_u2smr .btequ 0,u2smr +abc_u2smr .btequ 1,u2smr +bbs_u2smr .btequ 2,u2smr +lsyn_u2smr .btequ 3,u2smr +abscs_u2smr .btequ 4,u2smr +acse_u2smr .btequ 5,u2smr +sss_u2smr .btequ 6,u2smr +sclkdiv_u2smr .btequ 7,u2smr +;-------------------------------------------------------------------- +; uart2 transmit receive mode Register adr:0338h +;-------------------------------------------------------------------- +u2mr .equ 0338h +smd0_u2mr .btequ 0,u2mr +smd1_u2mr .btequ 1,u2mr +smd2_u2mr .btequ 2,u2mr +ckdir_u2mr .btequ 3,u2mr +stps_u2mr .btequ 4,u2mr +pry_u2mr .btequ 5,u2mr +prye_u2mr .btequ 6,u2mr +iopol_u2mr .btequ 7,u2mr +;-------------------------------------------------------------------- +; uart2 bit rate generator adr:0339h +;-------------------------------------------------------------------- +u2brg .equ 0339h +;-------------------------------------------------------------------- +; uart2 transmit buffer Register adr:033bh-033ah +;-------------------------------------------------------------------- +u2tb .equ 033ah +u2tbl .equ u2tb +u2tbh .equ u2tb+1 +;-------------------------------------------------------------------- +; uart2 transmit receive Control Register 0 adr:033ch +;-------------------------------------------------------------------- +u2c0 .equ 033ch +clk0_u2c0 .btequ 0,u2c0 +clk1_u2c0 .btequ 1,u2c0 +crs_u2c0 .btequ 2,u2c0 +txept_u2c0 .btequ 3,u2c0 +crd_u2c0 .btequ 4,u2c0 +nch_u2c0 .btequ 5,u2c0 +ckpol_u2c0 .btequ 6,u2c0 +uform_u2c0 .btequ 7,u2c0 +;-------------------------------------------------------------------- +; uart2 transmit receive Control Register 1 adr:033dh +;-------------------------------------------------------------------- +u2c1 .equ 033dh +te_u2c1 .btequ 0,u2c1 +ti_u2c1 .btequ 1,u2c1 +re_u2c1 .btequ 2,u2c1 +ri_u2c1 .btequ 3,u2c1 +u2irs_u2c1 .btequ 4,u2c1 +u2rrm_u2c1 .btequ 5,u2c1 +u2lch_u2c1 .btequ 6,u2c1 +sclkstpb_u2c1 .btequ 7,u2c1 +u2ere_u2c1 .btequ 7,u2c1 +;-------------------------------------------------------------------- +; uart2 receive buffer Register adr:033fh-033eh +;-------------------------------------------------------------------- +u2rb .equ 033eh +u2rbl .equ u2rb +u2rbh .equ u2rb+1 +abt_u2rb .btequ 3,u2rbh +oer_u2rb .btequ 4,u2rbh +fer_u2rb .btequ 5,u2rbh +per_u2rb .btequ 6,u2rbh +sum_u2rb .btequ 7,u2rbh +;-------------------------------------------------------------------- +; +; +; timer +; +; +;-------------------------------------------------------------------- +; count start flag adr:0340h +;------------------------------------------------------------------- +tabsr .equ 0340h +ta0s .btequ 0,tabsr +ta1s .btequ 1,tabsr +ta2s .btequ 2,tabsr +ta3s .btequ 3,tabsr +ta4s .btequ 4,tabsr +tb0s .btequ 5,tabsr +tb1s .btequ 6,tabsr +tb2s .btequ 7,tabsr +;-------------------------------------------------------------------- +; clock prescaler reset flag adr:0341h +;-------------------------------------------------------------------- +cpsrf .equ 0341h +cpsr .btequ 7,cpsrf +;-------------------------------------------------------------------- +; one shot start flag adr:0342h +;-------------------------------------------------------------------- +onsf .equ 0342h +ta0os .btequ 0,onsf +ta1os .btequ 1,onsf +ta2os .btequ 2,onsf +ta3os .btequ 3,onsf +ta4os .btequ 4,onsf +tazie .btequ 5,onsf +ta0tgl .btequ 6,onsf +ta0tgh .btequ 7,onsf +;-------------------------------------------------------------------- +; trigger select Register adr:0343h +;-------------------------------------------------------------------- +trgsr .equ 0343h +ta1tgl .btequ 0,trgsr +ta1tgh .btequ 1,trgsr +ta2tgl .btequ 2,trgsr +ta2tgh .btequ 3,trgsr +ta3tgl .btequ 4,trgsr +ta3tgh .btequ 5,trgsr +ta4tgl .btequ 6,trgsr +ta4tgh .btequ 7,trgsr +;-------------------------------------------------------------------- +; up down flag adr:0344h +;-------------------------------------------------------------------- +udf .equ 0344h +ta0ud .btequ 0,udf +ta1ud .btequ 1,udf +ta2ud .btequ 2,udf +ta3ud .btequ 3,udf +ta4ud .btequ 4,udf +ta2p .btequ 5,udf +ta3p .btequ 6,udf +ta4p .btequ 7,udf +;-------------------------------------------------------------------- +; timer a0 adr:0347h-0346h +;-------------------------------------------------------------------- +ta0 .equ 0346h +;-------------------------------------------------------------------- +; timer a1 adr:0349h-0348h +;-------------------------------------------------------------------- +ta1 .equ 0348h +;-------------------------------------------------------------------- +; timer a2 adr:034bh-034ah +;-------------------------------------------------------------------- +ta2 .equ 034ah +;-------------------------------------------------------------------- +; timer a3 adr:034dh-034ch +;-------------------------------------------------------------------- +ta3 .equ 034ch +;-------------------------------------------------------------------- +; timer a4 adr:034fh-034eh +;-------------------------------------------------------------------- +ta4 .equ 034eh +;-------------------------------------------------------------------- +; timer b0 adr:0351h-0350h +;-------------------------------------------------------------------- +tb0 .equ 0350h +;-------------------------------------------------------------------- +; timer b1 adr:0353h-0352h +;-------------------------------------------------------------------- +tb1 .equ 0352h +;-------------------------------------------------------------------- +; timer b2 adr:0355h-0354h +;-------------------------------------------------------------------- +tb2 .equ 0354h +;-------------------------------------------------------------------- +; timer a0 mode Register adr:0356h +;-------------------------------------------------------------------- +ta0mr .equ 0356h +tmod0_ta0mr .btequ 0,ta0mr +tmod1_ta0mr .btequ 1,ta0mr +mr1_ta0mr .btequ 3,ta0mr +mr2_ta0mr .btequ 4,ta0mr +mr3_ta0mr .btequ 5,ta0mr +tck0_ta0mr .btequ 6,ta0mr +tck1_ta0mr .btequ 7,ta0mr +;-------------------------------------------------------------------- +; timer a1 mode Register adr:0357h +;-------------------------------------------------------------------- +ta1mr .equ 0357h +tmod0_ta1mr .btequ 0,ta1mr +tmod1_ta1mr .btequ 1,ta1mr +mr1_ta1mr .btequ 3,ta1mr +mr2_ta1mr .btequ 4,ta1mr +mr3_ta1mr .btequ 5,ta1mr +tck0_ta1mr .btequ 6,ta1mr +tck1_ta1mr .btequ 7,ta1mr +;-------------------------------------------------------------------- +; timer a2 mode Register adr:0358h +;-------------------------------------------------------------------- +ta2mr .equ 0358h +tmod0_ta2mr .btequ 0,ta2mr +tmod1_ta2mr .btequ 1,ta2mr +mr1_ta2mr .btequ 3,ta2mr +mr2_ta2mr .btequ 4,ta2mr +mr3_ta2mr .btequ 5,ta2mr +tck0_ta2mr .btequ 6,ta2mr +tck1_ta2mr .btequ 7,ta2mr +;-------------------------------------------------------------------- +; timer a3 mode Register adr:0359h +;-------------------------------------------------------------------- +ta3mr .equ 0359h +tmod0_ta3mr .btequ 0,ta3mr +tmod1_ta3mr .btequ 1,ta3mr +mr1_ta3mr .btequ 3,ta3mr +mr2_ta3mr .btequ 4,ta3mr +mr3_ta3mr .btequ 5,ta3mr +tck0_ta3mr .btequ 6,ta3mr +tck1_ta3mr .btequ 7,ta3mr +;-------------------------------------------------------------------- +; timer a4 mode Register adr:035ah +;-------------------------------------------------------------------- +ta4mr .equ 035ah +tmod0_ta4mr .btequ 0,ta4mr +tmod1_ta4mr .btequ 1,ta4mr +mr1_ta4mr .btequ 3,ta4mr +mr2_ta4mr .btequ 4,ta4mr +mr3_ta4mr .btequ 5,ta4mr +tck0_ta4mr .btequ 6,ta4mr +tck1_ta4mr .btequ 7,ta4mr +;-------------------------------------------------------------------- +; timer b0 mode Register adr:035bh +;-------------------------------------------------------------------- +tb0mr .equ 035bh +tmod0_tb0mr .btequ 0,tb0mr +tmod1_tb0mr .btequ 1,tb0mr +mr0_tb0mr .btequ 2,tb0mr +mr1_tb0mr .btequ 3,tb0mr +mr2_tb0mr .btequ 4,tb0mr +mr3_tb0mr .btequ 5,tb0mr +tck0_tb0mr .btequ 6,tb0mr +tck1_tb0mr .btequ 7,tb0mr +;-------------------------------------------------------------------- +; timer b1 mode Register adr:035ch +;-------------------------------------------------------------------- +tb1mr .equ 035ch +tmod0_tb1mr .btequ 0,tb1mr +tmod1_tb1mr .btequ 1,tb1mr +mr0_tb1mr .btequ 2,tb1mr +mr1_tb1mr .btequ 3,tb1mr +mr2_tb1mr .btequ 4,tb1mr +mr3_tb1mr .btequ 5,tb1mr +tck0_tb1mr .btequ 6,tb1mr +tck1_tb1mr .btequ 7,tb1mr +;-------------------------------------------------------------------- +; timer b2 mode Register adr:035dh +;-------------------------------------------------------------------- +tb2mr .equ 035dh +tmod0_tb2mr .btequ 0,tb2mr +tmod1_tb2mr .btequ 1,tb2mr +mr0_tb2mr .btequ 2,tb2mr +mr1_tb2mr .btequ 3,tb2mr +mr2_tb2mr .btequ 4,tb2mr +mr3_tb2mr .btequ 5,tb2mr +tck0_tb2mr .btequ 6,tb2mr +tck1_tb2mr .btequ 7,tb2mr +;-------------------------------------------------------------------- +; timer b2 special mode Register adr:035eh +;-------------------------------------------------------------------- +tb2sc .equ 035eh +pwcon_tb2sc .btequ 0,tb2sc +;-------------------------------------------------------------------- +; timer count source prescaler Register adr:035fh +;-------------------------------------------------------------------- +tcspr .equ 035fh +cnt0_tcspr .btequ 0,tcspr +cnt1_tcspr .btequ 1,tcspr +cnt2_tcspr .btequ 2,tcspr +cnt3_tcspr .btequ 3,tcspr +cst_tcspr .btequ 7,tcspr +;-------------------------------------------------------------------- +; +; +; uart0 +; +; +;-------------------------------------------------------------------- +; uart0 special mode Register 4 adr:0364h +;-------------------------------------------------------------------- +u0smr4 .equ 0364h +stareq_u0smr4 .btequ 0,u0smr4 +rstareq_u0smr4 .btequ 1,u0smr4 +stpreq_u0smr4 .btequ 2,u0smr4 +stspsel_u0smr4 .btequ 3,u0smr4 +ackd_u0smr4 .btequ 4,u0smr4 +ackc_u0smr4 .btequ 5,u0smr4 +sclhi_u0smr4 .btequ 6,u0smr4 +swc9_u0smr4 .btequ 7,u0smr4 +;-------------------------------------------------------------------- +; uart0 special mode Register 3 adr:0365h +;-------------------------------------------------------------------- +u0smr3 .equ 0365h +sse_u0smr3 .btequ 0,u0smr3 +ckph_u0smr3 .btequ 1,u0smr3 +dinc_u0smr3 .btequ 2,u0smr3 +nodc_u0smr3 .btequ 3,u0smr3 +err_u0smr3 .btequ 4,u0smr3 +dl0_u0smr3 .btequ 5,u0smr3 +dl1_u0smr3 .btequ 6,u0smr3 +dl2_u0smr3 .btequ 7,u0smr3 +;-------------------------------------------------------------------- +; uart0 special mode Register 2 adr:0366h +;-------------------------------------------------------------------- +u0smr2 .equ 0366h +iicm2_u0smr2 .btequ 0,u0smr2 +csc_u0smr2 .btequ 1,u0smr2 +swc_u0smr2 .btequ 2,u0smr2 +als_u0smr2 .btequ 3,u0smr2 +stc_u0smr2 .btequ 4,u0smr2 +swc2_u0smr2 .btequ 5,u0smr2 +sdhi_u0smr2 .btequ 6,u0smr2 +su1him_u0smr2 .btequ 7,u0smr2 +;-------------------------------------------------------------------- +; uart0 special mode Register adr:0367h +;-------------------------------------------------------------------- +u0smr .equ 0367h +iicm_u0smr .btequ 0,u0smr +abc_u0smr .btequ 1,u0smr +bbs_u0smr .btequ 2,u0smr +lsyn_u0smr .btequ 3,u0smr +abscs_u0smr .btequ 4,u0smr +acse_u0smr .btequ 5,u0smr +sss_u0smr .btequ 6,u0smr +sclkdiv_u0smr .btequ 7,u0smr +;-------------------------------------------------------------------- +; uart0 transmit receive mode Register adr:0368h +;-------------------------------------------------------------------- +u0mr .equ 0368h +smd0_u0mr .btequ 0,u0mr +smd1_u0mr .btequ 1,u0mr +smd2_u0mr .btequ 2,u0mr +ckdir_u0mr .btequ 3,u0mr +stps_u0mr .btequ 4,u0mr +pry_u0mr .btequ 5,u0mr +prye_u0mr .btequ 6,u0mr +iopol_u0mr .btequ 7,u0mr +;-------------------------------------------------------------------- +; uart0 bit rate generator adr:0369h +;-------------------------------------------------------------------- +u0brg .equ 0369h +;-------------------------------------------------------------------- +; uart0 transmit buffer Register adr:036bh-036ah +;-------------------------------------------------------------------- +u0tb .equ 036ah +u0tbl .equ u0tb +u0tbh .equ u0tb+1 +;-------------------------------------------------------------------- +; uart0 transmit receive Control Register 0 adr:036ch +;-------------------------------------------------------------------- +u0c0 .equ 036ch +clk0_u0c0 .btequ 0,u0c0 +clk1_u0c0 .btequ 1,u0c0 +crs_u0c0 .btequ 2,u0c0 +txept_u0c0 .btequ 3,u0c0 +crd_u0c0 .btequ 4,u0c0 +nch_u0c0 .btequ 5,u0c0 +ckpol_u0c0 .btequ 6,u0c0 +uform_u0c0 .btequ 7,u0c0 +;-------------------------------------------------------------------- +; uart0 transmit receive Control Register 1 adr:036dh +;-------------------------------------------------------------------- +u0c1 .equ 036dh +te_u0c1 .btequ 0,u0c1 +ti_u0c1 .btequ 1,u0c1 +re_u0c1 .btequ 2,u0c1 +ri_u0c1 .btequ 3,u0c1 +u0irs_u0c1 .btequ 4,u0c1 +u0rrm_u0c1 .btequ 5,u0c1 +u0lch_u0c1 .btequ 6,u0c1 +sclkstpb_u0c1 .btequ 7,u0c1 +u0ere_u0c1 .btequ 7,u0c1 +;-------------------------------------------------------------------- +; uart0 receive buffer Register adr:036fh-036eh +;-------------------------------------------------------------------- +u0rb .equ 036eh +u0rbl .equ u0rb +u0rbh .equ u0rb+1 +abt_u0rb .btequ 3,u0rbh +oer_u0rb .btequ 4,u0rbh +fer_u0rb .btequ 5,u0rbh +per_u0rb .btequ 6,u0rbh +sum_u0rb .btequ 7,u0rbh +;-------------------------------------------------------------------- +; +; +; dma +; +; +;-------------------------------------------------------------------- +; dma0 request cause select Register adr:0378h +;-------------------------------------------------------------------- +dm0sl .equ 0378h +dsel0_dm0sl .btequ 0,dm0sl +dsel1_dm0sl .btequ 1,dm0sl +dsel2_dm0sl .btequ 2,dm0sl +dsel3_dm0sl .btequ 3,dm0sl +dsel4_dm0sl .btequ 4,dm0sl +dsr_dm0sl .btequ 5,dm0sl +drq_dm0sl .btequ 7,dm0sl +;-------------------------------------------------------------------- +; dma1 request cause select Register adr:0379h +;-------------------------------------------------------------------- +dm1sl .equ 0379h +dsel0_dm1sl .btequ 0,dm1sl +dsel1_dm1sl .btequ 1,dm1sl +dsel2_dm1sl .btequ 2,dm1sl +dsel3_dm1sl .btequ 3,dm1sl +dsel4_dm1sl .btequ 4,dm1sl +dsr_dm1sl .btequ 5,dm1sl +drq_dm1sl .btequ 7,dm1sl +;-------------------------------------------------------------------- +; dma2 request cause select Register adr:037ah +;-------------------------------------------------------------------- +dm2sl .equ 037ah +dsel0_dm2sl .btequ 0,dm2sl +dsel1_dm2sl .btequ 1,dm2sl +dsel2_dm2sl .btequ 2,dm2sl +dsel3_dm2sl .btequ 3,dm2sl +dsel4_dm2sl .btequ 4,dm2sl +dsr_dm2sl .btequ 5,dm2sl +drq_dm2sl .btequ 7,dm2sl +;-------------------------------------------------------------------- +; dma3 request cause select Register adr:037bh +;-------------------------------------------------------------------- +dm3sl .equ 037bh +dsel0_dm3sl .btequ 0,dm3sl +dsel1_dm3sl .btequ 1,dm3sl +dsel2_dm3sl .btequ 2,dm3sl +dsel3_dm3sl .btequ 3,dm3sl +dsel4_dm3sl .btequ 4,dm3sl +dsr_dm3sl .btequ 5,dm3sl +drq_dm3sl .btequ 7,dm3sl +;-------------------------------------------------------------------- +; +; +; crc +; +; +;-------------------------------------------------------------------- +; crc data Register adr:037dh-037ch +;-------------------------------------------------------------------- +crcd .equ 037ch +crcdl .equ crcd +crcdh .equ crcd+1 +;-------------------------------------------------------------------- +; crc input Register adr:037eh +;-------------------------------------------------------------------- +crcin .equ 037eh +;-------------------------------------------------------------------- +; +; +; a/d0 +; +; +;-------------------------------------------------------------------- +; a/d0 Register 0 adr:0381h-0380h +;-------------------------------------------------------------------- +ad00 .equ 0380h +ad00l .equ ad00 +ad00h .equ ad00+1 +;-------------------------------------------------------------------- +; a/d0 Register 1 adr:0383h-0382h +;-------------------------------------------------------------------- +ad01 .equ 0382h +ad01l .equ ad01 +ad01h .equ ad01+1 +;-------------------------------------------------------------------- +; a/d0 Register 2 adr:0385h-0384h +;-------------------------------------------------------------------- +ad02 .equ 0384h +ad02l .equ ad02 +ad02h .equ ad02+1 +;-------------------------------------------------------------------- +; a/d0 Register 3 adr:0387h-0386h +;-------------------------------------------------------------------- +ad03 .equ 0386h +ad03l .equ ad03 +ad03h .equ ad03+1 +;-------------------------------------------------------------------- +; a/d0 Register 4 adr:0389h-0388h +;-------------------------------------------------------------------- +ad04 .equ 0388h +ad04l .equ ad04 +ad04h .equ ad04+1 +;-------------------------------------------------------------------- +; a/d0 Register 5 adr:038bh-038ah +;-------------------------------------------------------------------- +ad05 .equ 038ah +ad05l .equ ad05 +ad05h .equ ad05+1 +;-------------------------------------------------------------------- +; a/d0 Register 6 adr:038dh-038ch +;-------------------------------------------------------------------- +ad06 .equ 038ch +ad06l .equ ad06 +ad06h .equ ad06+1 +;-------------------------------------------------------------------- +; a/d0 Register 7 adr:038fh-038eh +;-------------------------------------------------------------------- +ad07 .equ 038eh +ad07l .equ ad07 +ad07h .equ ad07+1 +;-------------------------------------------------------------------- +; a/d0 Control Register 2 adr:0394h +;-------------------------------------------------------------------- +ad0con2 .equ 0394h +smp_ad0con2 .btequ 0,ad0con2 +aps0_ad0con2 .btequ 1,ad0con2 +aps1_ad0con2 .btequ 2,ad0con2 +trg0_ad0con2 .btequ 5,ad0con2 +;-------------------------------------------------------------------- +; a/d0 Control Register 3 adr:0395h +;-------------------------------------------------------------------- +ad0con3 .equ 0395h +dus_ad0con3 .btequ 0,ad0con3 +mss_ad0con3 .btequ 1,ad0con3 +cks2_ad0con3 .btequ 2,ad0con3 +msf0_ad0con3 .btequ 3,ad0con3 +msf1_ad0con3 .btequ 4,ad0con3 +;-------------------------------------------------------------------- +; a/d0 Control Register 0 adr:0396h +;-------------------------------------------------------------------- +ad0con0 .equ 0396h +ch0_ad0con0 .btequ 0,ad0con0 +ch1_ad0con0 .btequ 1,ad0con0 +ch2_ad0con0 .btequ 2,ad0con0 +md0_ad0con0 .btequ 3,ad0con0 +md1_ad0con0 .btequ 4,ad0con0 +trg_ad0con0 .btequ 5,ad0con0 +adst_ad0con0 .btequ 6,ad0con0 +cks0_ad0con0 .btequ 7,ad0con0 +;-------------------------------------------------------------------- +; a/d0 Control Register 1 adr:0397h +;-------------------------------------------------------------------- +ad0con1 .equ 0397h +scan0_ad0con1 .btequ 0,ad0con1 +scan1_ad0con1 .btequ 1,ad0con1 +md2_ad0con1 .btequ 2,ad0con1 +bits_ad0con1 .btequ 3,ad0con1 +cks1_ad0con1 .btequ 4,ad0con1 +vcut_ad0con1 .btequ 5,ad0con1 +opa0_ad0con1 .btequ 6,ad0con1 +opa1_ad0con1 .btequ 7,ad0con1 +;-------------------------------------------------------------------- +; +; +; d/a +; +; +;-------------------------------------------------------------------- +; d/a Register 0 adr:0398h +;-------------------------------------------------------------------- +da0 .equ 0398h +;-------------------------------------------------------------------- +; d/a Register 1 adr:039ah +;-------------------------------------------------------------------- +da1 .equ 039ah +;-------------------------------------------------------------------- +; d/a Control Register adr:039ch +;-------------------------------------------------------------------- +dacon .equ 039ch +da0e .btequ 0,dacon +da1e .btequ 1,dacon +;-------------------------------------------------------------------- +; +; +; port output function Register +; +; +;-------------------------------------------------------------------- +;-------------------------------------------------------------------- +; port output function select Register d1 adr:03a7h +;-------------------------------------------------------------------- +psd1 .equ 03a7h +psd1_0 .btequ 0,psd1 +psd1_1 .btequ 1,psd1 +psd1_6 .btequ 6,psd1 +;-------------------------------------------------------------------- +; port output function select Register c3 adr:03adh +;-------------------------------------------------------------------- +psc3 .equ 03adh +psc3_6 .btequ 6,psc3 +;-------------------------------------------------------------------- +; port output function select Register c adr:03afh +;-------------------------------------------------------------------- +psc .equ 03afh +psc_0 .btequ 0,psc +psc_1 .btequ 1,psc +psc_2 .btequ 2,psc +psc_3 .btequ 3,psc +psc_4 .btequ 4,psc +psc_6 .btequ 6,psc +psc_7 .btequ 7,psc +;-------------------------------------------------------------------- +; port output function select Register a0 adr:03b0h +;-------------------------------------------------------------------- +ps0 .equ 03b0h +ps0_0 .btequ 0,ps0 +ps0_1 .btequ 1,ps0 +ps0_2 .btequ 2,ps0 +ps0_3 .btequ 3,ps0 +ps0_4 .btequ 4,ps0 +ps0_5 .btequ 5,ps0 +ps0_6 .btequ 6,ps0 +ps0_7 .btequ 7,ps0 +;-------------------------------------------------------------------- +; port output function select Register a1 adr:03b1h +;-------------------------------------------------------------------- +ps1 .equ 03b1h +ps1_0 .btequ 0,ps1 +ps1_1 .btequ 1,ps1 +ps1_2 .btequ 2,ps1 +ps1_3 .btequ 3,ps1 +ps1_4 .btequ 4,ps1 +ps1_5 .btequ 5,ps1 +ps1_6 .btequ 6,ps1 +ps1_7 .btequ 7,ps1 +;-------------------------------------------------------------------- +; port output function select Register b0 adr:03b2h +;-------------------------------------------------------------------- +psl0 .equ 03b2h +psl0_2 .btequ 2,psl0 +psl0_4 .btequ 4,psl0 +psl0_6 .btequ 6,psl0 +;-------------------------------------------------------------------- +; port output function select Register b1 adr:03b3h +;-------------------------------------------------------------------- +psl1 .equ 03b3h +psl1_0 .btequ 0,psl1 +psl1_1 .btequ 1,psl1 +psl1_2 .btequ 2,psl1 +psl1_3 .btequ 3,psl1 +psl1_4 .btequ 4,psl1 +psl1_5 .btequ 5,psl1 +psl1_6 .btequ 6,psl1 +psl1_7 .btequ 7,psl1 +;-------------------------------------------------------------------- +; port output function select Register a2 adr:03b4h +;-------------------------------------------------------------------- +ps2 .equ 03b4h +ps2_0 .btequ 0,ps2 +ps2_1 .btequ 1,ps2 +ps2_2 .btequ 2,ps2 +;-------------------------------------------------------------------- +; port output function select Register a3 adr:03b5h +;-------------------------------------------------------------------- +ps3 .equ 03b5h +ps3_0 .btequ 0,ps3 +ps3_1 .btequ 1,ps3 +ps3_2 .btequ 2,ps3 +ps3_3 .btequ 3,ps3 +ps3_4 .btequ 4,ps3 +ps3_5 .btequ 5,ps3 +ps3_6 .btequ 6,ps3 +ps3_7 .btequ 7,ps3 +;-------------------------------------------------------------------- +; port output function select Register b2 adr:03b6h +;-------------------------------------------------------------------- +psl2 .equ 03b6h +psl2_0 .btequ 0,psl2 +psl2_1 .btequ 1,psl2 +psl2_2 .btequ 2,psl2 +;-------------------------------------------------------------------- +; port output function select Register b3 adr:03b7h +;-------------------------------------------------------------------- +psl3 .equ 03b7h +psl3_1 .btequ 1,psl3 +psl3_2 .btequ 2,psl3 +psl3_3 .btequ 3,psl3 +psl3_4 .btequ 4,psl3 +psl3_5 .btequ 5,psl3 +psl3_6 .btequ 6,psl3 +psl3_7 .btequ 7,psl3 +;-------------------------------------------------------------------- +; +; +; port group +; +; +;-------------------------------------------------------------------- +; port p6 Register adr:03c0h +;-------------------------------------------------------------------- +p6 .equ 03c0h +p6_0 .btequ 0,p6 +p6_1 .btequ 1,p6 +p6_2 .btequ 2,p6 +p6_3 .btequ 3,p6 +p6_4 .btequ 4,p6 +p6_5 .btequ 5,p6 +p6_6 .btequ 6,p6 +p6_7 .btequ 7,p6 +;-------------------------------------------------------------------- +; port p7 Register adr:03c1h +;-------------------------------------------------------------------- +p7 .equ 03c1h +p7_0 .btequ 0,p7 +p7_1 .btequ 1,p7 +p7_2 .btequ 2,p7 +p7_3 .btequ 3,p7 +p7_4 .btequ 4,p7 +p7_5 .btequ 5,p7 +p7_6 .btequ 6,p7 +p7_7 .btequ 7,p7 +;-------------------------------------------------------------------- +; port p6 direction Register adr:03c2h +;-------------------------------------------------------------------- +pd6 .equ 03c2h +pd6_0 .btequ 0,pd6 +pd6_1 .btequ 1,pd6 +pd6_2 .btequ 2,pd6 +pd6_3 .btequ 3,pd6 +pd6_4 .btequ 4,pd6 +pd6_5 .btequ 5,pd6 +pd6_6 .btequ 6,pd6 +pd6_7 .btequ 7,pd6 +;-------------------------------------------------------------------- +; port p7 direction Register adr:03c3h +;-------------------------------------------------------------------- +pd7 .equ 03c3h +pd7_0 .btequ 0,pd7 +pd7_1 .btequ 1,pd7 +pd7_2 .btequ 2,pd7 +pd7_3 .btequ 3,pd7 +pd7_4 .btequ 4,pd7 +pd7_5 .btequ 5,pd7 +pd7_6 .btequ 6,pd7 +pd7_7 .btequ 7,pd7 +;-------------------------------------------------------------------- +; port p8 Register adr:03c4h +;-------------------------------------------------------------------- +p8 .equ 03c4h +p8_0 .btequ 0,p8 +p8_1 .btequ 1,p8 +p8_2 .btequ 2,p8 +p8_3 .btequ 3,p8 +p8_4 .btequ 4,p8 +p8_5 .btequ 5,p8 +p8_6 .btequ 6,p8 +p8_7 .btequ 7,p8 +;-------------------------------------------------------------------- +; port p9 Register adr:03c5h +;-------------------------------------------------------------------- +p9 .equ 03c5h +p9_0 .btequ 0,p9 +p9_1 .btequ 1,p9 +p9_2 .btequ 2,p9 +p9_3 .btequ 3,p9 +p9_4 .btequ 4,p9 +p9_5 .btequ 5,p9 +p9_6 .btequ 6,p9 +p9_7 .btequ 7,p9 +;-------------------------------------------------------------------- +; port p8 direction Register adr:03c6h +;-------------------------------------------------------------------- +pd8 .equ 03c6h +pd8_0 .btequ 0,pd8 +pd8_1 .btequ 1,pd8 +pd8_2 .btequ 2,pd8 +pd8_3 .btequ 3,pd8 +pd8_4 .btequ 4,pd8 +pd8_6 .btequ 6,pd8 +pd8_7 .btequ 7,pd8 +;-------------------------------------------------------------------- +; port p9 direction Register adr:03c7h +;-------------------------------------------------------------------- +pd9 .equ 03c7h +pd9_0 .btequ 0,pd9 +pd9_1 .btequ 1,pd9 +pd9_2 .btequ 2,pd9 +pd9_3 .btequ 3,pd9 +pd9_4 .btequ 4,pd9 +pd9_5 .btequ 5,pd9 +pd9_6 .btequ 6,pd9 +pd9_7 .btequ 7,pd9 +;-------------------------------------------------------------------- +; port p10 Register adr:03c8h +;-------------------------------------------------------------------- +p10 .equ 03c8h +p10_0 .btequ 0,p10 +p10_1 .btequ 1,p10 +p10_2 .btequ 2,p10 +p10_3 .btequ 3,p10 +p10_4 .btequ 4,p10 +p10_5 .btequ 5,p10 +p10_6 .btequ 6,p10 +p10_7 .btequ 7,p10 +;-------------------------------------------------------------------- +; port p10 direction Register adr:03cah +;-------------------------------------------------------------------- +pd10 .equ 03cah +pd10_0 .btequ 0,pd10 +pd10_1 .btequ 1,pd10 +pd10_2 .btequ 2,pd10 +pd10_3 .btequ 3,pd10 +pd10_4 .btequ 4,pd10 +pd10_5 .btequ 5,pd10 +pd10_6 .btequ 6,pd10 +pd10_7 .btequ 7,pd10 +;-------------------------------------------------------------------- +; pull-up Control Register3 adr:03dbh +;-------------------------------------------------------------------- +pur3 .equ 03dbh +pu30 .btequ 0,pur3 +pu31 .btequ 1,pur3 +pu32 .btequ 2,pur3 +pu33 .btequ 3,pur3 +pu34 .btequ 4,pur3 +pu35 .btequ 5,pur3 +pu36 .btequ 6,pur3 +pu37 .btequ 7,pur3 +;-------------------------------------------------------------------- +; pull-up Control Register4 adr:03dch +;-------------------------------------------------------------------- +pur4 .equ 03dch +pu40 .btequ 0,pur4 +pu41 .btequ 1,pur4 +pu42 .btequ 2,pur4 +pu43 .btequ 3,pur4 +;-------------------------------------------------------------------- +; port p0 Register adr:03e0h +;-------------------------------------------------------------------- +p0 .equ 03e0h +p0_0 .btequ 0,p0 +p0_1 .btequ 1,p0 +p0_2 .btequ 2,p0 +p0_3 .btequ 3,p0 +p0_4 .btequ 4,p0 +p0_5 .btequ 5,p0 +p0_6 .btequ 6,p0 +p0_7 .btequ 7,p0 +;-------------------------------------------------------------------- +; port p1 Register adr:03e1h +;-------------------------------------------------------------------- +p1 .equ 03e1h +p1_0 .btequ 0,p1 +p1_1 .btequ 1,p1 +p1_2 .btequ 2,p1 +p1_3 .btequ 3,p1 +p1_4 .btequ 4,p1 +p1_5 .btequ 5,p1 +p1_6 .btequ 6,p1 +p1_7 .btequ 7,p1 +;-------------------------------------------------------------------- +; port p0 direction Register adr:03e2h +;-------------------------------------------------------------------- +pd0 .equ 03e2h +pd0_0 .btequ 0,pd0 +pd0_1 .btequ 1,pd0 +pd0_2 .btequ 2,pd0 +pd0_3 .btequ 3,pd0 +pd0_4 .btequ 4,pd0 +pd0_5 .btequ 5,pd0 +pd0_6 .btequ 6,pd0 +pd0_7 .btequ 7,pd0 +;-------------------------------------------------------------------- +; port p1 direction Register adr:03e3h +;-------------------------------------------------------------------- +pd1 .equ 03e3h +pd1_0 .btequ 0,pd1 +pd1_1 .btequ 1,pd1 +pd1_2 .btequ 2,pd1 +pd1_3 .btequ 3,pd1 +pd1_4 .btequ 4,pd1 +pd1_5 .btequ 5,pd1 +pd1_6 .btequ 6,pd1 +pd1_7 .btequ 7,pd1 +;-------------------------------------------------------------------- +; port p2 Register adr:03e4h +;-------------------------------------------------------------------- +p2 .equ 03e4h +p2_0 .btequ 0,p2 +p2_1 .btequ 1,p2 +p2_2 .btequ 2,p2 +p2_3 .btequ 3,p2 +p2_4 .btequ 4,p2 +p2_5 .btequ 5,p2 +p2_6 .btequ 6,p2 +p2_7 .btequ 7,p2 +;-------------------------------------------------------------------- +; port p3 Register adr:03e5h +;-------------------------------------------------------------------- +p3 .equ 03e5h +p3_0 .btequ 0,p3 +p3_1 .btequ 1,p3 +p3_2 .btequ 2,p3 +p3_3 .btequ 3,p3 +p3_4 .btequ 4,p3 +p3_5 .btequ 5,p3 +p3_6 .btequ 6,p3 +p3_7 .btequ 7,p3 +;-------------------------------------------------------------------- +; port p2 direction Register adr:03e6h +;-------------------------------------------------------------------- +pd2 .equ 03e6h +pd2_0 .btequ 0,pd2 +pd2_1 .btequ 1,pd2 +pd2_2 .btequ 2,pd2 +pd2_3 .btequ 3,pd2 +pd2_4 .btequ 4,pd2 +pd2_5 .btequ 5,pd2 +pd2_6 .btequ 6,pd2 +pd2_7 .btequ 7,pd2 +;-------------------------------------------------------------------- +; port p3 direction Register adr:03e7h +;-------------------------------------------------------------------- +pd3 .equ 03e7h +pd3_0 .btequ 0,pd3 +pd3_1 .btequ 1,pd3 +pd3_2 .btequ 2,pd3 +pd3_3 .btequ 3,pd3 +pd3_4 .btequ 4,pd3 +pd3_5 .btequ 5,pd3 +pd3_6 .btequ 6,pd3 +pd3_7 .btequ 7,pd3 +;-------------------------------------------------------------------- +; port p4 Register adr:03e8h +;-------------------------------------------------------------------- +p4 .equ 03e8h +p4_0 .btequ 0,p4 +p4_1 .btequ 1,p4 +p4_2 .btequ 2,p4 +p4_3 .btequ 3,p4 +p4_4 .btequ 4,p4 +p4_5 .btequ 5,p4 +p4_6 .btequ 6,p4 +p4_7 .btequ 7,p4 +;-------------------------------------------------------------------- +; port p5 Register adr:03e9h +;-------------------------------------------------------------------- +p5 .equ 03e9h +p5_0 .btequ 0,p5 +p5_1 .btequ 1,p5 +p5_2 .btequ 2,p5 +p5_3 .btequ 3,p5 +p5_4 .btequ 4,p5 +p5_5 .btequ 5,p5 +p5_6 .btequ 6,p5 +p5_7 .btequ 7,p5 +;-------------------------------------------------------------------- +; port p4 direction Register adr:03eah +;-------------------------------------------------------------------- +pd4 .equ 03eah +pd4_0 .btequ 0,pd4 +pd4_1 .btequ 1,pd4 +pd4_2 .btequ 2,pd4 +pd4_3 .btequ 3,pd4 +pd4_4 .btequ 4,pd4 +pd4_5 .btequ 5,pd4 +pd4_6 .btequ 6,pd4 +pd4_7 .btequ 7,pd4 +;-------------------------------------------------------------------- +; port p5 direction Register adr:03ebh +;-------------------------------------------------------------------- +pd5 .equ 03ebh +pd5_0 .btequ 0,pd5 +pd5_1 .btequ 1,pd5 +pd5_2 .btequ 2,pd5 +pd5_3 .btequ 3,pd5 +pd5_4 .btequ 4,pd5 +pd5_5 .btequ 5,pd5 +pd5_6 .btequ 6,pd5 +pd5_7 .btequ 7,pd5 +;-------------------------------------------------------------------- +; pull-up Control Register 0 adr:03f0h +;-------------------------------------------------------------------- +pur0 .equ 03f0h +pu00 .btequ 0,pur0 +pu01 .btequ 1,pur0 +pu02 .btequ 2,pur0 +pu03 .btequ 3,pur0 +pu04 .btequ 4,pur0 +pu05 .btequ 5,pur0 +pu06 .btequ 6,pur0 +pu07 .btequ 7,pur0 +;-------------------------------------------------------------------- +; pull-up Control Register 1 adr:03f1h +;-------------------------------------------------------------------- +pur1 .equ 03f1h +pu10 .btequ 0,pur1 +pu11 .btequ 1,pur1 +pu12 .btequ 2,pur1 +pu13 .btequ 3,pur1 +;-------------------------------------------------------------------- +; port Control Register adr:03ffh +;-------------------------------------------------------------------- +pcr .equ 03ffh +pcr0 .btequ 0,pcr + diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/stackdef.h b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/stackdef.h new file mode 100644 index 00000000..6177e0a2 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/stackdef.h @@ -0,0 +1,40 @@ +/***********************************************************************/ +/* */ +/* FILE :stackdef.h */ +/* DATE :Thu, Feb 27, 2014 */ +/* DESCRIPTION :define the size of stack. */ +/* CPU GROUP :80 */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.18). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/***********************************************************************/ + +/********************************************************************** + * startup for M16C/M32C + * Copyright (C) 2004 (2010) Renesas Electronics Corporation. + * and Renesas Solutions Corporation. All rights reserved. * + * stackdef.h : stack size difinition + * + * Function: define ustack size and istack size + * + * $Date: 2005/11/01 04:35:51 $ + * $Revision: 1.5 $ + *********************************************************************/ +////////////////////////////////////////////////////// +// define the size of stack +// When you change the size of stack, +// modify these lines. +// specify stacksize using -D option. +// +#ifndef __STACKSIZE__ +#pragma STACKSIZE 0x300 +#else +#pragma STACKSIZE __STACKSIZE__ +#endif +#ifndef __ISTACKSIZE__ +#pragma ISTACKSIZE 0x300 +#else +#pragma ISTACKSIZE __ISTACKSIZE__ +#endif +extern _UINT _stack_top,_istack_top; + diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/typedefine.h b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/typedefine.h new file mode 100644 index 00000000..88cd7af8 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/typedefine.h @@ -0,0 +1,34 @@ +/***********************************************************************/ +/* */ +/* FILE :typedefine.h */ +/* DATE :Thu, Feb 27, 2014 */ +/* DESCRIPTION :define scalar types. */ +/* CPU GROUP :80 */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.18). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/***********************************************************************/ + +/***************************************************** + * Startup for M32C/9X + * Copyright (C) 2004 (2010) Renesas Electronics Corporation. + * and Renesas Solutions Corporation. All rights reserved. + * + * typedef for startup + * + * $Date: 2005/11/01 04:35:51 $ + * $Revision: 1.4 $ + ****************************************************/ +#ifndef __TYPEDEF__ +typedef signed char _SBYTE; +typedef unsigned char _UBYTE; +typedef signed short _SWORD; +typedef unsigned short _UWORD; +typedef signed int _SINT; +typedef unsigned int _UINT; +typedef signed long _SDWORD; +typedef unsigned long _UDWORD; +typedef signed long long _SQDWORD; +typedef unsigned long long _UQDWORD; +#endif +#define __TYPEDEF__ diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/vector.h b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/vector.h new file mode 100644 index 00000000..8ec3e526 --- /dev/null +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/vector.h @@ -0,0 +1,32 @@ +/***********************************************************************/ +/* */ +/* FILE :vector.h */ +/* DATE :Thu, Feb 27, 2014 */ +/* DESCRIPTION :define the top address of the interrupt vectors. */ +/* CPU GROUP :80 */ +/* */ +/* This file is generated by Renesas Project Generator (Ver.4.18). */ +/* NOTE:THIS IS A TYPICAL EXAMPLE. */ +/***********************************************************************/ + +/********************************************************************* + * STARTUP for M32C/9X + * Copyright (C) 2004 (2010) Renesas Electronics Corporation. + * and Renesas Solutions Corporation. All rights reserved. * + * + * vector.h : define address for vector + * + * Function:define variable vector's address + * define fixed vector's address + * + * $Date: 2005/11/01 04:35:51 $ + * $Revision: 1.4 $ + ********************************************************************/ +//////////////////////////////////////////// +// declare sfr register using in "resetprg.c" + + +#define Fvectaddr 0xffffdc +#ifndef VECTOR_ADR +#define VECTOR_ADR 0x0fffd00 +#endif diff --git a/ports/m32c/hew_tests/led.pnl b/ports/m32c/hew_tests/led.pnl new file mode 100644 index 00000000..ae11ce86 --- /dev/null +++ b/ports/m32c/hew_tests/led.pnl @@ -0,0 +1,12 @@ +GOF01 30 90 220 230 11 1 5 03e0h 0 1 0 0 ff ffffff +GOF01 80 90 190 220 11 1 5 03e0h 0 1 0 0 ff ffffff +GOF01 30 90 170 180 11 1 5 03e0h 0 1 0 0 ff ffffff +GOF01 30 40 140 170 11 1 5 03e0h 0 1 0 0 ff ffffff +GOF01 80 90 140 170 11 1 5 03e0h 0 1 0 0 ff ffffff +GOF01 50 60 150 170 11 1 5 03e0h 0 1 0 0 ff ffffff +GOF01 30 90 120 130 11 1 5 03e0h 0 1 0 0 ff ffffff +GOF01 30 40 100 120 11 1 5 03e0h 0 1 0 0 ff ffffff +GOF01 80 90 100 120 11 1 5 03e0h 0 1 0 0 ff ffffff +GOF01 40 80 90 100 11 1 5 03E0h 0 1 0 0 ff ffffff +GOF01 10 200 240 280 10 1 5 03E0h 0 1 0 0 1 26 Click stop to view results 0 +GOF01 20 110 50 80 10 1 5 03E0h 0 1 0 0 1 8 Finished 0 diff --git a/ports/m32c/stdint.h b/ports/m32c/stdint.h new file mode 100644 index 00000000..875146c6 --- /dev/null +++ b/ports/m32c/stdint.h @@ -0,0 +1,14 @@ +#ifndef _STDINT +#define _STDINT + + +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int int16_t; +typedef unsigned short int uint16_t; +typedef signed long int int32_t; +typedef unsigned long int uint32_t; + + + +#endif /* _STDINT */ diff --git a/ports/m32c/tests-main.c b/ports/m32c/tests-main.c new file mode 100644 index 00000000..524cf762 --- /dev/null +++ b/ports/m32c/tests-main.c @@ -0,0 +1,268 @@ +/* + * Copyright (c) 2010, Kelvin Lawson. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. No personal names or organizations' names associated with the + * Atomthreads project may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE ATOMTHREADS PROJECT AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#include "atom.h" +#include "atomport-private.h" +#include "atomtests.h" +#include "atomtimer.h" + + +/* Constants */ + +/* + * Idle thread stack size + * + * This needs to be large enough to handle any interrupt handlers + * and callbacks called by interrupt handlers (e.g. user-created + * timer callbacks) as well as the saving of all context when + * switching away from this thread. + * + * In this case, the idle stack is allocated on the BSS via the + * idle_thread_stack[] byte array. + */ +#define IDLE_STACK_SIZE_BYTES 164 + + +/* + * Main thread stack size + * + * Note that this is not a required OS kernel thread - you will replace + * this with your own application thread. + * + * In this case the Main thread is responsible for calling out to the + * test routines. Once a test routine has finished, the test status is + * printed out on the UART and the thread remains running in a loop + * flashing a LED. + * + * The Main thread stack generally needs to be larger than the idle + * thread stack, as not only does it need to store interrupt handler + * stack saves and context switch saves, but the application main thread + * will generally be carrying out more nested function calls and require + * stack for application code local variables etc. + * + * With all OS tests implemented to date on the AVR, the Main thread + * stack has not exceeded 201 bytes. To allow all tests to run we set + * a minimum main thread stack size of 204 bytes. This may increase in + * future as the codebase changes but for the time being is enough to + * cope with all of the automated tests. + */ +#define MAIN_STACK_SIZE_BYTES 300 + + +/* + * Startup code stack + * + * Some stack space is required at initial startup for running the main() + * routine. This stack space is only temporarily required at first bootup + * and is no longer required as soon as the OS is started. By default + * GCC sets this to the top of RAM (RAMEND) and it grows down from there. + * Because we only need this temporarily, though, it would be wasteful to + * set aside a region at the top of RAM which is not used during runtime. + * + * What we do here is to reuse part of the idle thread's stack during + * initial startup. As soon as we enter the main() routine we move the + * stack pointer to half-way down the idle thread's stack. This is used + * temporarily while calls are made to atomOSInit(), atomThreadCreate() + * and atomOSStart(). Once the OS is started this stack area is no + * longer required, and can be used for its original purpose (for the + * idle thread's stack). + * + * This does mean, however, that we cannot monitor the stack usage of the + * idle thread. Stack usage is monitored by prefilling the stack with a + * known value, and we are obliterating some of that prefilled area by + * using it as our startup stack, so we cannot use the stack-checking API + * to get a true picture of idle thread stack usage. If you wish to + * monitor idle thread stack usage for your applications then you are + * free to use a different region for the startup stack (e.g. set aside + * an area permanently, or place it somewhere you know you can reuse + * later in the application). For the time being, this method gives us a + * simple way of reducing the memory consumption without having to add + * any special AVR-specific considerations to the automated test + * applications. + * + * This optimisation was required to allow some of the larger automated + * test modules to run on devices with 1KB of RAM. You should avoid doing + * this if you can afford to set aside 64 bytes or so, or if you are + * writing your own applications in which you have further control over + * where data is located. + */ + + +/* Local data */ + +/* Application threads' TCBs */ +static ATOM_TCB main_tcb; + +/* Main thread's stack area */ +static uint8_t main_thread_stack[MAIN_STACK_SIZE_BYTES]; + +/* Idle thread's stack area */ +static uint8_t idle_thread_stack[IDLE_STACK_SIZE_BYTES]; + + +/* Forward declarations */ +static void main_thread_func (uint32_t data); + + +/** + * \b main + * + * Program entry point. + * + * Sets up the AVR hardware resources (system tick timer interrupt) necessary + * for the OS to be started. Creates an application thread and starts the OS. + */ + +int main ( void ) +{ + int8_t status; + + init_timerb2(); + init_pin_P0(); + /** + * Initialise the OS before creating our threads. + * + * Note that we cannot enable stack-checking on the idle thread on + * this platform because we are already using part of the idle + * thread's stack now as our startup stack. Prefilling for stack + * checking would overwrite our current stack. + * + * If you are not reusing the idle thread's stack during startup then + * you are free to enable stack-checking here. + */ + status = atomOSInit(&idle_thread_stack[0], IDLE_STACK_SIZE_BYTES, FALSE); + if (status == ATOM_OK) + { + + /* Create an application thread */ + status = atomThreadCreate(&main_tcb, + TEST_THREAD_PRIO, main_thread_func, 0, + &main_thread_stack[0], + MAIN_STACK_SIZE_BYTES, + TRUE); + if (status == ATOM_OK) + { + /** + * First application thread successfully created. It is + * now possible to start the OS. Execution will not return + * from atomOSStart(), which will restore the context of + * our application thread and start executing it. + * + * Note that interrupts are still disabled at this point. + * They will be enabled as we restore and execute our first + * thread in archFirstThreadRestore(). + */ + atomOSStart(); + } + } + + while (1) + ; + + /* There was an error starting the OS if we reach here */ + return (0); +} + + +/** + * \b main_thread_func + * + * Entry point for main application thread. + * + * This is the first thread that will be executed when the OS is started. + * + * @param[in] data Unused (optional thread entry parameter) + * + * @return None + */ +static void main_thread_func (uint32_t data) +{ + uint32_t test_status; + int sleep_ticks; + + + + /* Put a message out on the UART */ + printf("Go\n"); + + /* Start test. All tests use the same start API. */ + test_status = test_start(); + + /* Check main thread stack usage (if enabled) */ +#ifdef ATOM_STACK_CHECKING + if (test_status == 0) + { + uint32_t used_bytes, free_bytes; + + /* Check idle thread stack usage */ + if (atomThreadStackCheck (&main_tcb, &used_bytes, &free_bytes) == ATOM_OK) + { + /* Check the thread did not use up to the end of stack */ + if (free_bytes == 0) + { + printf("Main stack overflow\n"); + test_status++; + } + + /* Log the stack usage */ +#ifdef TESTS_LOG_STACK_USAGE + printf("MainUse:%d\n", used_bytes); +#endif + } + + } +#endif + + /* Log final status */ + if (test_status == 0) + { + printf("Pass\n"); + } + else + { + printf("Fail(%d)\n", test_status); + } + + /* Flash LED once per second if passed, very quickly if failed */ + sleep_ticks = (test_status == 0) ? SYSTEM_TICKS_PER_SEC : (SYSTEM_TICKS_PER_SEC/8); + + /* Test finished, flash slowly for pass, fast for fail */ + while (1) + { + /* Put code here to toggle led. Platform specific */ + /* For simulator just use a breakpoint */ + toggle_pin_P0(); + + /* Sleep then toggle LED again */ + atomTimerDelay (sleep_ticks); + } + +} From 5c093ce7bc4c04b9a7bfce1ee12ab5988b707ae3 Mon Sep 17 00:00:00 2001 From: Juan Angel Hdez Date: Thu, 6 Mar 2014 08:47:01 -0600 Subject: [PATCH 2/6] Corrected some indentations. --- ports/m32c/atomport-asm.A30 | 32 ++++++++++++++++---------------- ports/m32c/atomport-private.h | 4 ++-- ports/m32c/atomport.c | 25 ++++++++++++------------- ports/m32c/tests-main.c | 8 ++++---- 4 files changed, 34 insertions(+), 35 deletions(-) diff --git a/ports/m32c/atomport-asm.A30 b/ports/m32c/atomport-asm.A30 index 730cb712..0a0b4ea8 100644 --- a/ports/m32c/atomport-asm.A30 +++ b/ports/m32c/atomport-asm.A30 @@ -42,32 +42,32 @@ ; * @return None ; */ - .GLB _atomIntEnter - .GLB _atomTimerTick - .GLB $atomIntExit - .GLB __timer_b2 - .FB 0 + .GLB _atomIntEnter + .GLB _atomTimerTick + .GLB $atomIntExit + .GLB __timer_b2 + .FB 0 .SECTION program,CODE,ALIGN - .align + .align .GLB __timer_b2 .rvector 23, __timer_b2 -__timer_b2: - PUSHC FB ;Save FB temporary on I stack. +__timer_b2: + PUSHC FB ;Save FB temporary on I stack. FSET U ;Select user stack PUSHC ISP ;Save ISP in U stack POPC FB ;POP ISP to FB - PUSH.W 8H[FB] ;Copy FLG from Istack to Ustack - PUSH.L 4H[FB] ;Copy TskX ReturnAddress from Istack to Ustack + PUSH.W 8H[FB] ;Copy FLG from Istack to Ustack + PUSH.L 4H[FB] ;Copy TskX ReturnAddress from Istack to Ustack FCLR U ;Select Istack POPC FB ;restore original value of FB ADD.L #6,SP ;Clean Istack, so it is free for interrupts. FSET U ;Carry on, on Ustack - - JSR.A _atomIntEnter - JSR.A _atomTimerTick - + + JSR.A _atomIntEnter + JSR.A _atomTimerTick + MOV.B:Q #1H,R0L ;Pass the TRUE parameter - JSR.A $atomIntExit - REIT + JSR.A $atomIntExit + REIT .END diff --git a/ports/m32c/atomport-private.h b/ports/m32c/atomport-private.h index ff16a8bd..5ab9633b 100644 --- a/ports/m32c/atomport-private.h +++ b/ports/m32c/atomport-private.h @@ -56,8 +56,8 @@ typedef enum /* Function prototypes */ void init_timerb2(void); -void init_pin_P0(void); -void toggle_pin_P0(void); +void init_pin_P0_0(void); +void toggle_pin_P0_0(void); /* Timer B2 registers */ #pragma ADDRESS TB2MR 035Dh diff --git a/ports/m32c/atomport.c b/ports/m32c/atomport.c index 033b23eb..2aa9526f 100644 --- a/ports/m32c/atomport.c +++ b/ports/m32c/atomport.c @@ -109,7 +109,7 @@ void archThreadContextInit (ATOM_TCB *tcb_ptr, void *stack_top, void (*entry_poi { uint16_t *stack_ptr; - /** Start at stack top */ + /** Start at stack top */ stack_ptr = (uint16_t*)stack_top; /** @@ -129,8 +129,8 @@ void archThreadContextInit (ATOM_TCB *tcb_ptr, void *stack_top, void (*entry_poi * Because we are filling the stack from top to bottom, this goes * on the stack first (at the top). */ - - /* | Ret ADD High PC (H) | */ + + /* | Ret ADD High PC (H) | */ *stack_ptr-- = ((uint32_t)thread_shell >> 16L); /* | Ret ADD Low PC (L) | */ *stack_ptr-- = (uint16_t)((uint32_t)thread_shell & 0x0000FFFFL); @@ -230,22 +230,22 @@ void archFirstThreadRestore(ATOM_TCB *new_tcb_ptr) */ void archContextSwitch(ATOM_TCB *old_tcb, ATOM_TCB *new_tcb) { - asm_shell_old_tcb = old_tcb; + asm_shell_old_tcb = old_tcb; asm_shell_new_tcb = new_tcb; - + /* Save context */ asm("PUSHC FLG"); asm("PUSHM R0,R1,R2,R3,A0,A1,SB"); - asm("MOV.L _asm_shell_old_tcb,A0"); + asm("MOV.L _asm_shell_old_tcb,A0"); asm("STC SP,[A0]"); - - /* Restore Context */ + + /* Restore Context */ asm("MOV.L _asm_shell_new_tcb,A0"); asm("LDC [A0],SP"); asm("POPM R0,R1,R2,R3,A0,A1,SB"); asm("POPC FLG"); asm("POPC FB"); - asm("RTS"); + asm("RTS"); } /** @@ -259,19 +259,18 @@ void init_timerb2(void) { #ifndef HEW_SIMULATOR TB2MR = 0x40; // M32C_OSC_FREQUENCY/8 - TB2 = COUNT_10MS; + TB2 = COUNT_10MS; TB2IC = INTERRUPT_LVL_1; #endif } -void init_pin_P0(void) +void init_pin_P0_0(void) { PD0 = 0xFF; //All outputs. P0 = 0x00; //Outputs low. } -void toggle_pin_P0(void) +void toggle_pin_P0_0(void) { P0 ^= 1 << 0; - P0 ^= 1 << 1; } \ No newline at end of file diff --git a/ports/m32c/tests-main.c b/ports/m32c/tests-main.c index 524cf762..ce207d9a 100644 --- a/ports/m32c/tests-main.c +++ b/ports/m32c/tests-main.c @@ -145,9 +145,9 @@ int main ( void ) { int8_t status; - init_timerb2(); - init_pin_P0(); - /** + init_timerb2(); + init_pin_P0_0(); + /** * Initialise the OS before creating our threads. * * Note that we cannot enable stack-checking on the idle thread on @@ -259,7 +259,7 @@ static void main_thread_func (uint32_t data) { /* Put code here to toggle led. Platform specific */ /* For simulator just use a breakpoint */ - toggle_pin_P0(); + toggle_pin_P0_0(); /* Sleep then toggle LED again */ atomTimerDelay (sleep_ticks); From 7625f56ad69b3cb7271b867caf716e2370172832 Mon Sep 17 00:00:00 2001 From: Juan Angel Hdez Date: Thu, 6 Mar 2014 09:12:28 -0600 Subject: [PATCH 3/6] Made some corrections to comments and removed debug output --- ports/m32c/atomport-asm.A30 | 2 +- .../hew_tests/hew_tst_sem1/hew_tst_sem1.hws | 4 +- .../hew_tests/hew_tst_sem1/hew_tst_sem1.tws | 8 +- .../hew_tst_sem1/hew_tst_sem1/Comm.log | 60 +- .../hew_tst_sem1/hew_tst_sem1/Debug/Debug.hdp | Bin 13855 -> 0 bytes .../hew_tst_sem1/Debug/atomkernel.m32cc | 14 - .../hew_tst_sem1/Debug/atomkernel.r30 | Bin 22489 -> 0 bytes .../hew_tst_sem1/Debug/atommutex.m32cc | 14 - .../hew_tst_sem1/Debug/atommutex.r30 | Bin 17079 -> 0 bytes .../hew_tst_sem1/Debug/atomport-asm.lst | 93 -- .../hew_tst_sem1/Debug/atomport-asm.r30 | Bin 1133 -> 0 bytes .../hew_tst_sem1/Debug/atomport.m32cc | 14 - .../hew_tst_sem1/Debug/atomport.r30 | Bin 11973 -> 0 bytes .../hew_tst_sem1/Debug/atomqueue.m32cc | 14 - .../hew_tst_sem1/Debug/atomqueue.r30 | Bin 28492 -> 0 bytes .../hew_tst_sem1/Debug/atomsem.m32cc | 14 - .../hew_tst_sem1/Debug/atomsem.r30 | Bin 16970 -> 0 bytes .../hew_tst_sem1/Debug/atomtimer.m32cc | 14 - .../hew_tst_sem1/Debug/atomtimer.r30 | Bin 14712 -> 0 bytes .../hew_tst_sem1/Debug/fvector.m32cc | 14 - .../hew_tst_sem1/Debug/fvector.r30 | Bin 1227 -> 0 bytes .../hew_tst_sem1/Debug/hew_tst_sem1.m32cl | 19 - .../hew_tst_sem1/Debug/hew_tst_sem1.map | 817 ------------------ .../hew_tst_sem1/Debug/hew_tst_sem1.mot | 496 ----------- .../hew_tst_sem1/Debug/hew_tst_sem1.sni | Bin 15968 -> 0 bytes .../hew_tst_sem1/Debug/hew_tst_sem1.x30 | Bin 198567 -> 0 bytes .../hew_tst_sem1/Debug/initsct.m32cc | 14 - .../hew_tst_sem1/Debug/initsct.r30 | Bin 3254 -> 0 bytes .../hew_tst_sem1/Debug/intprg.m32cc | 14 - .../hew_tst_sem1/Debug/intprg.r30 | Bin 13593 -> 0 bytes .../hew_tst_sem1/Debug/resetprg.m32cc | 14 - .../hew_tst_sem1/Debug/resetprg.r30 | Bin 4841 -> 0 bytes .../hew_tst_sem1/Debug/sem1.m32cc | 14 - .../hew_tst_sem1/hew_tst_sem1/Debug/sem1.r30 | Bin 26464 -> 0 bytes .../hew_tst_sem1/Debug/tests-main.m32cc | 14 - .../hew_tst_sem1/Debug/tests-main.r30 | Bin 16362 -> 0 bytes .../Debug_M32C_Simulator.hdp | Bin 1748 -> 0 bytes .../hew_tst_sem1/Release/Release.hdp | Bin 1722 -> 0 bytes .../hew_tst_sem1/SessionM32C_Simulator.hsf | 6 +- .../hew_tst_sem1/SessionM32C_Simulator.ini | 2 +- .../hew_tst_sem1/hew_tst_sem1.hwp | 140 +-- .../hew_tst_sem1/hew_tst_sem1.nav | Bin 29757 -> 36695 bytes 42 files changed, 111 insertions(+), 1704 deletions(-) delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/Debug.hdp delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomkernel.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomkernel.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atommutex.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atommutex.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.lst delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomqueue.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomqueue.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.m32cl delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.map delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.mot delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.sni delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.x30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/initsct.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/initsct.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/sem1.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/sem1.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.m32cc delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.r30 delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug_M32C_Simulator/Debug_M32C_Simulator.hdp delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Release/Release.hdp diff --git a/ports/m32c/atomport-asm.A30 b/ports/m32c/atomport-asm.A30 index 0a0b4ea8..06e69957 100644 --- a/ports/m32c/atomport-asm.A30 +++ b/ports/m32c/atomport-asm.A30 @@ -32,7 +32,7 @@ ;/** ; * \b _timer_b2 ; * -; * Timer B2 1ms interrupt. +; * Timer B2 interrupt service routine. ; * On interrupt, the U flag is cleared meaning that the interrupt stack (IStack) ; * is selected. FLG and PC are saved on IStack, this routine then cuts and pastes ; * FLG and PC from IStack to UStack (User stack) so that all data relevant to a diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.hws b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.hws index a38f5307..c65c25ef 100644 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.hws +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.hws @@ -3,12 +3,12 @@ [DATABASE_VERSION] "11.0" [WORKSPACE_DETAILS] -"hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws" "M16C/80,M32C" "Renesas M32C Standard" +"hew_tst_sem1" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws" "M16C/80,M32C" "Renesas M32C Standard" [SHARED_WORKSPACE_CONTROL_STATUS] "" "" "" "" "" "" [PROJECTS] -"hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\hew_tst_sem1.hwp" 0 +"hew_tst_sem1" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\hew_tst_sem1.hwp" 0 [INFORMATION] "No workspace information available" [SCRAP] diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws index 4cc0da6b..93a73342 100644 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws @@ -7,11 +7,11 @@ [GENERAL_DATA] [BREAKPOINTS] [OPEN_WORKSPACE_FILES] -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" +"C:\atomthreads\kernel\atomkernel.c" +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" [WORKSPACE_FILE_STATES] -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" -8 -30 1114 570 1 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" 0 0 919 353 0 0 +"C:\atomthreads\kernel\atomkernel.c" -8 -30 1114 570 1 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" 0 0 1114 570 0 0 [LOADED_PROJECTS] "hew_tst_sem1" [END] diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log index 87f06244..9209a895 100644 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log @@ -1,31 +1,31 @@ [CommunicationLog] -R [0764E98A] : 0 -S [0764E98A] : (4100020000200) -R [0764E98A] : 0 -S [0764E98A] : (53) -R [0764E96B] : 000 -S [0764E96B] : (7D) -R [0764E96B] : 002000080001 -S [0764E96B] : (75) -R [0764E96B] : 0FFFF800100000000 -S [0764E96B] : (78) -R [0764E96B] : 0400000FE05A8 -S [0764E96B] : (34) -R [0764E96B] : 010000000000FE05A8 -S [0764E96B] : (35) -R [0764E8DE] : 0 -S [0764E8DE] : (53) -R [0764E890] : 000 -S [0764E890] : (7D) -R [0764E890] : 002000080001 -S [0764E890] : (75) -R [0764E890] : 0FFFF800100000000 -S [0764E890] : (78) -R [0764E890] : 0400000FE05A8 -S [0764E890] : (34) -R [0764E890] : 010000000000FE05A8 -S [0764E890] : (35) -R [0764E890] : 00001111100003333000989A1A1A10008403B3B3B000000000000000000000000000000000000040000082E00174300C0FE05A8FFFD000000000000000000000000000000000000000000000000000000000000000000000000000000 -S [0764E890] : (40) -R [0764E890] : 000 -S [0764E890] : (7D) +R [002C5551] : 0 +S [002C5551] : (4100020000200) +R [002C5551] : 0 +S [002C5551] : (53) +R [002C5531] : 000 +S [002C5531] : (7D) +R [002C5531] : 002000080001 +S [002C5531] : (75) +R [002C5531] : 0FFFF800100000000 +S [002C5531] : (78) +R [002C5531] : 0400000FE05A6 +S [002C5531] : (34) +R [002C5531] : 010000000000FE05A6 +S [002C5531] : (35) +R [002C54B5] : 0 +S [002C54B5] : (53) +R [002C5447] : 0 +S [002C5447] : (53) +R [002C5419] : 000 +S [002C5419] : (7D) +R [002C5419] : 002000080001 +S [002C5419] : (75) +R [002C5419] : 0FFFF800100000000 +S [002C5419] : (78) +R [002C5419] : 0400000FE05A6 +S [002C5419] : (34) +R [002C5419] : 010000000000FE05A6 +S [002C5419] : (35) +R [002C5419] : 00001111100003333000989A1A1A10008403B3B3B000000000000000000000000000000000000040000082E00174300C0FE05A6FFFD000000000000000000000000000000000000000000000000000000000000000000000000000000 +S [002C5419] : (40) diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/Debug.hdp b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/Debug.hdp deleted file mode 100644 index f85afab7730c2ddd0cf4b7e50466e4227466d395..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13855 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 Jkz`r<@PF+YvYY?_ diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.lst b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.lst deleted file mode 100644 index 5ebc8e97..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.lst +++ /dev/null @@ -1,93 +0,0 @@ -* M32C SERIES ASSEMBLER * SOURCE LIST Wed Mar 05 18:52:21 2014 PAGE 001 - - SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 - - 1 ;/* - 2 ; * Copyright (c) 2014, Juan Angel Hernandez Hdez. for Atomthreads Project. - 3 ; * All rights reserved. - 4 ; * - 5 ; * Redistribution and use in source and binary forms, with or without - 6 ; * modification, are permitted provided that the following conditions - 7 ; * are met: - 8 ; * - 9 ; * 1. Redistributions of source code must retain the above copyright - 10 ; * notice, this list of conditions and the following disclaimer. - 11 ; * 2. Redistributions in binary form must reproduce the above copyright - 12 ; * notice, this list of conditions and the following disclaimer in the - 13 ; * documentation and/or other materials provided with the distribution. - 14 ; * 3. No personal names or organizations' names associated with the - 15 ; * Atomthreads project may be used to endorse or promote products - 16 ; * derived from this software without specific prior written permission. - 17 ; * - 18 ; * THIS SOFTWARE IS PROVIDED BY THE ATOMTHREADS PROJECT AND CONTRIBUTORS - 19 ; * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - 20 ; * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - 21 ; * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE - 22 ; * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - 23 ; * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - 24 ; * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - 25 ; * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - 26 ; * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - 27 ; * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - 28 ; * POSSIBILITY OF SUCH DAMAGE. - 29 ; */ - 30 - 31 - 32 ;/** - 33 ; * \b _timer_b2 - 34 ; * - 35 ; * Timer B2 1ms interrupt. - 36 ; * On interrupt, the U flag is cleared meaning that the interrupt stack (IStack) - 37 ; * is selected. FLG and PC are saved on IStack, this routine then cuts and pastes - 38 ; * FLG and PC from IStack to UStack (User stack) so that all data relevant to a - 39 ; * thread is kept on the same stack area. This also makes the IStack available to - 40 ; * use for interrupt nesting. - 41 ; * - 42 ; * @return None - 43 ; */ - 44 - 45 .GLB _atomIntEnter - 46 .GLB _atomTimerTick - 47 .GLB $atomIntExit - 48 .GLB __timer_b2 - 49 .FB 0 - 50 - 51 .SECTION program,CODE,ALIGN - 52 .align - 53 .GLB __timer_b2 - 54 .rvector 23, __timer_b2 - 55 000000 __timer_b2: - 56 000000 D12B PUSHC FB ;Save FB temporary on I stack. - 57 000002 D1EF FSET U ;Select user stack - 58 000004 D12F PUSHC ISP ;Save ISP in U stack - 59 000006 D32B POPC FB ;POP ISP to FB - 60 000008 C3CE08 PUSH.W 8H[FB] ;Copy FLG from Istack to Ustack - 61 00000B A2C104 PUSH.L 4H[FB] ;Copy TskX ReturnAddress from Istack to Ustack - 62 00000E D3EF FCLR U ;Select Istack - * M32C SERIES ASSEMBLER * SOURCE LIST Wed Mar 05 18:52:21 2014 PAGE 002 - - SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 - - 63 000010 D32B POPC FB ;restore original value of FB - 64 000012 63 Q ADD.L #6,SP ;Clean Istack, so it is free for interrupts. - 65 000013 D1EF FSET U ;Carry on, on Ustack - 66 - 67 000015 CD000000r A JSR.A _atomIntEnter - 68 000019 CD000000r A JSR.A _atomTimerTick - 69 - 70 00001D F8A1 Q MOV.B:Q #1H,R0L ;Pass the TRUE parameter - 71 00001F CD000000r A JSR.A $atomIntExit - 72 000023 9E REIT - 73 .END - -Information List - -TOTAL ERROR(S) 00000 -TOTAL WARNING(S) 00000 -TOTAL LINE(S) 00073 LINES - -Section List - -Attr Size Name -CODE 00000036(000024H) program -ROMDATA 00000004(000004H) vector diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport-asm.r30 deleted file mode 100644 index ea8cb650032fec13e410a2887e586248a583c307..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1133 zcmcJOO-~a+7{_O3x3r;%211MnvdzLnN2#nXFDthBWYu)s<1dm{!EsGHC#K`%EJH8mmds~) z7rHqZId0xDt&vWcH0M_r{c+kpsFtBcM2Vw*)fZqAgXAIuJ4A3Pa5pojPWd4w!s=Wm zolVc&Rz@^GJwJQz9~6IlY19d$bFKXU^xtPeuxQaPSZyWybaT562bA$08rx@^wXUb& zW7$4nl&znU(xP--Yr?CouAi_wxTCPly60Alx!Tvdi|bR@iJQ~ zK0X}kiM2mnE4fXHbnKx<96X7Wab4!sID;01CW+KUSXXsj)ik)ZRx?2Uheyx-tC4^r z5+rC)UQN_sCqkUUm~8lT8Hpi{A<0Nrkh+krB88ByA%&5yBlRNPKstpqj?{-Vfz*$b zMjAkxL^^{sg>)8a8tEL;3{rHX)$H!Hov`qzs=@8M+dgK^FdSW4qwBO46S2fr5N}p#sLtMgqB1b#AxDdT7y9Mhw}|w{`?R#g7@^DoV|uTua3 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.m32cc deleted file mode 100644 index 189f2ef0..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.m32cc +++ /dev/null @@ -1,14 +0,0 @@ --I"E:\projects\atomthreads-master\kernel" --I"E:\projects\atomthreads-master\tests" --I"E:\projects\atomthreads-master\ports\m32c" --D__STANDARD_IO__ --D__STACKSIZE__=0X800 --D__ISTACKSIZE__=0X300 --DVECTOR_ADR=0x0fffd00 --DATOM_STACK_CHECKING --DTESTS_LOG_STACK_USAGE --c --finfo --dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" --M82 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomport.r30 deleted file mode 100644 index 8c9f28c52bc2e0e3b11727ae76b36fdefa9fb00b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11973 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 E07rHhZU6uP diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.m32cc deleted file mode 100644 index 037ded62..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.m32cc +++ /dev/null @@ -1,14 +0,0 @@ --I"E:\projects\atomthreads-master\kernel" --I"E:\projects\atomthreads-master\tests" --I"E:\projects\atomthreads-master\ports\m32c" --D__STANDARD_IO__ --D__STACKSIZE__=0X800 --D__ISTACKSIZE__=0X300 --DVECTOR_ADR=0x0fffd00 --DATOM_STACK_CHECKING --DTESTS_LOG_STACK_USAGE --c --finfo --dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" --M82 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomsem.r30 deleted file mode 100644 index aedbb79041a588b41925f7271791c29147042850..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16970 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 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.m32cc deleted file mode 100644 index 5c6a0939..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.m32cc +++ /dev/null @@ -1,14 +0,0 @@ --I"E:\projects\atomthreads-master\kernel" --I"E:\projects\atomthreads-master\tests" --I"E:\projects\atomthreads-master\ports\m32c" --D__STANDARD_IO__ --D__STACKSIZE__=0X800 --D__ISTACKSIZE__=0X300 --DVECTOR_ADR=0x0fffd00 --DATOM_STACK_CHECKING --DTESTS_LOG_STACK_USAGE --c --finfo --dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" --M82 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/atomtimer.r30 deleted file mode 100644 index 16019d749b6291eea286cdcc5b1f6cbf4e5949d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14712 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 E2Qo(gRsaA1 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.m32cc deleted file mode 100644 index 9753df4a..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.m32cc +++ /dev/null @@ -1,14 +0,0 @@ --I"E:\projects\atomthreads-master\kernel" --I"E:\projects\atomthreads-master\tests" --I"E:\projects\atomthreads-master\ports\m32c" --D__STANDARD_IO__ --D__STACKSIZE__=0X800 --D__ISTACKSIZE__=0X300 --DVECTOR_ADR=0x0fffd00 --DATOM_STACK_CHECKING --DTESTS_LOG_STACK_USAGE --c --finfo --dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" --M82 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/fvector.r30 deleted file mode 100644 index 1f08ef0e713bab05191f048f24b365a9514e4497..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1227 zcmcgszfaph6u!GSF(O0NA6r$)p>9e5J0=MwVyOCyFtN0vQzR=T4$$HxwVjl9szUz& zwr<_hKclFsI;27o3WGaTsGNWnse|bhPxPG=2Qx5q!MeNeyLb1VzxVX)pZt6}^)Q)L z_)=Y4v?|7*q0kn!(L03D0<|&27t|(z|87fT0`I4g+#;s2ySWjoQ42j)0Ea z0=mUv264jH+r){1HHK0Rem4}plDWn<>D~7Qvzk`2vbLrPQfZ}JstA%SNOOXuXH&w+ z>`cCDRGx!0GheVOy0vU*g`z1`Ypbh*p}nkWrWHJp^nz(=M!s4xz(Y@`7W2#6E7gK) zW{;VcYHIrA+07&ES#2rbFM+J5l@X>c;|ZPu{V{ZhKqVNN4nLlKD(5`fGwkloS7&FE zzRu)%I)ev&ok>q;lIctiboN+Z=h=;~aIt)`FZ8m#x*#@KK2T5J!cN9#hR|a zR#(baR6XT$5zjN0E1q{Dfz}6=y_~ZG*XA17tNgT((*ou*;k`b^hxqeO$8TV|gGIW9 z*H2D<9Fi~FzS3WW&>e!0Zbnq~$pcmWEd~P}x5P_Bn6|_YLCvFhL^Z8~VRbR`qdH^g zZv&(DSlthrrRO7i9fpCFuL%5d+R+;0yHHMpMYc%Or+Z#9%PG1 zG$Si86qc0#m3O1?r@$S&L0pk>mfQw*v3r2&HrV@sn){zxBDeWJ>-RXfc|hnkMBK+8 G_Wl8ksn6N~ diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.m32cl b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.m32cl deleted file mode 100644 index f8fe49ac..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.m32cl +++ /dev/null @@ -1,19 +0,0 @@ --L "nc382lib" --G --MS --O "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\hew_tst_sem1.x30" --ORDER data_SE=0400,bss_SE,data_SO,bss_SO,data_NE,bss_NE,data_NO,bss_NO,stack,istack,heap_NE,rom_NE,rom_NO,data_6E=010000,bss_6E,data_6O,bss_6O,data_FE,bss_FE,data_FO,bss_FO,rom_FE=0FE0000,rom_FO,data_SEI,data_SOI,data_6EI,data_6OI,data_NEI,data_NOI,data_FEI,data_FOI,switch_table,program,interrupt,program_S,vector=0FFFD00 --M82 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomkernel.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atommutex.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport-asm.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomqueue.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomsem.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomtimer.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\fvector.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\initsct.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\intprg.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\resetprg.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\sem1.r30" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\tests-main.r30" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.map b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.map deleted file mode 100644 index 91ee7fc1..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.map +++ /dev/null @@ -1,817 +0,0 @@ -########################################## -# (1) LINK INFORMATION # -########################################## -c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\bin\ln308.exe @E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\hew_tst_sem1.m32cl - -# LINK FILE INFORMATION -atomkernel (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomkernel.r30) - Mar 5 18:52:19 2014 - -atommutex (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atommutex.r30) - Mar 5 18:52:19 2014 - -atomport-asm (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport-asm.r30) - Mar 5 18:52:21 2014 - -atomport (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport.r30) - Mar 5 18:52:20 2014 - -atomqueue (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomqueue.r30) - Mar 5 18:52:20 2014 - -atomsem (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomsem.r30) - Mar 5 18:52:20 2014 - -atomtimer (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomtimer.r30) - Mar 5 18:52:20 2014 - -fvector (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\fvector.r30) - Mar 5 18:52:20 2014 - -initsct (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\initsct.r30) - Mar 5 18:52:20 2014 - -intprg (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\intprg.r30) - Mar 5 18:52:21 2014 - -resetprg (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\resetprg.r30) - Mar 5 18:52:21 2014 - -sem1 (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\sem1.r30) - Mar 5 18:52:21 2014 - -tests-main (E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\tests-main.r30) - Mar 5 18:52:21 2014 - -init (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:56 2009 - -printf (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:30:00 2009 - -device (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:52 2009 - -fputc (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:54 2009 - -print (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:30:00 2009 - -_f8eq (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:43 2009 - -_f8ge (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:43 2009 - -_f8lt (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:43 2009 - -_f8mul (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:44 2009 - -_f8ne (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:44 2009 - -_i4modu (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:46 2009 - -_i8divu (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:46 2009 - -_i8modu (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:46 2009 - -cdata (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:50 2009 - -fgetc (c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib) - Dec 9 13:29:53 2009 - - -########################################## -# (2) SECTION INFORMATION # -########################################## -# SECTION ATR TYPE START LENGTH ALIGN MODULENAME -data_SE REL DATA 000400 000000 2 initsct -bss_SE REL DATA 000400 000000 2 initsct -data_SO REL DATA 000400 000000 initsct -bss_SO REL DATA 000400 000000 initsct -data_NE REL DATA 000400 00000A 2 atomkernel - REL DATA 00040A 000008 2 atomtimer - REL DATA 000412 000000 2 initsct -bss_NE REL DATA 000412 00000C 2 atomport - REL DATA 00041E 000000 2 initsct - REL DATA 00041E 000256 2 sem1 - REL DATA 000674 0001D0 2 tests-main - REL DATA 000844 00003C 2 init - REL DATA 000880 000108 2 print -data_NO REL DATA 000988 000001 atomkernel - REL DATA 000989 000000 initsct -bss_NO REL DATA 000989 000023 atomkernel - REL DATA 0009AC 000000 initsct - REL DATA 0009AC 00000A sem1 - REL DATA 0009B6 000023 tests-main - REL DATA 0009D9 00026A print -stack REL DATA 000C43 000800 resetprg -istack REL DATA 001443 000300 resetprg -data_FE REL DATA 010000 000000 2 initsct -bss_FE REL DATA 010000 000000 2 initsct -data_FO REL DATA 010000 000000 initsct -bss_FO REL DATA 010000 000000 initsct -rom_FO REL ROMDATA FE0000 0001FC sem1 - REL ROMDATA FE01FC 000035 tests-main - REL ROMDATA FE0231 00000A print - REL ROMDATA FE023B 000101 cdata -data_SEI REL ROMDATA FE033C 000000 initsct -data_SOI REL ROMDATA FE033C 000000 initsct -data_NEI REL ROMDATA FE033C 00000A atomkernel - REL ROMDATA FE0346 000008 atomtimer - REL ROMDATA FE034E 000000 initsct -data_NOI REL ROMDATA FE034E 000001 atomkernel - REL ROMDATA FE034F 000000 initsct -data_FEI REL ROMDATA FE034F 000000 initsct -data_FOI REL ROMDATA FE034F 000000 initsct -program REL CODE FE0350 0003F6 2 atomkernel - REL CODE FE0746 0002A4 2 atommutex - REL CODE FE09EA 000024 2 atomport-asm - REL CODE FE0A0E 000159 2 atomport - REL CODE FE0B68 0004D4 2 atomqueue - REL CODE FE103C 00026E 2 atomsem - REL CODE FE12AA 0001CC 2 atomtimer - REL CODE FE1476 000001 2 fvector - REL CODE FE1478 00004F 2 intprg - REL CODE FE14C8 0003C9 2 sem1 - REL CODE FE1892 0000EE 2 tests-main - REL CODE FE1980 00007B 2 init - REL CODE FE19FC 000098 2 printf - REL CODE FE1A94 000137 2 device - REL CODE FE1BCC 000047 2 fputc - REL CODE FE1C14 001573 2 print - REL CODE FE3188 000060 2 _f8eq - REL CODE FE31E8 000086 2 _f8ge - REL CODE FE326E 000084 2 _f8lt - REL CODE FE32F2 000258 2 _f8mul - REL CODE FE354A 000060 2 _f8ne - REL CODE FE35AA 00001E 2 _i4modu - REL CODE FE35C8 0000EC 2 _i8divu - REL CODE FE36B4 0000C9 2 _i8modu - REL CODE FE377E 0000D4 2 fgetc -interrupt REL CODE FE3852 0001B3 2 initsct - REL CODE FE3A06 00004D 2 resetprg -vector REL ROMDATA FFFD00 000100 atomport-asm -fvector ABS ROMDATA FFFFDC 000024 fvector -bss_MON1_E REL DATA 1000000 000000 2 initsct -bss_MON2_E REL DATA 1000000 000000 2 initsct -bss_MON3_E REL DATA 1000000 000000 2 initsct -bss_MON4_E REL DATA 1000000 000000 2 initsct -bss_MON1_O REL DATA 1000000 000000 initsct -bss_MON2_O REL DATA 1000000 000000 initsct -bss_MON3_O REL DATA 1000000 000000 initsct -bss_MON4_O REL DATA 1000000 000000 initsct -data_MON1_E REL DATA 1000000 000000 2 initsct -data_MON1_EI REL ROMDATA 1000000 000000 initsct -data_MON2_E REL DATA 1000000 000000 2 initsct -data_MON2_EI REL ROMDATA 1000000 000000 initsct -data_MON3_E REL DATA 1000000 000000 2 initsct -data_MON3_EI REL ROMDATA 1000000 000000 initsct -data_MON4_E REL DATA 1000000 000000 2 initsct -data_MON4_EI REL ROMDATA 1000000 000000 initsct -data_MON1_O REL DATA 1000000 000000 initsct -data_MON1_OI REL ROMDATA 1000000 000000 initsct -data_MON2_O REL DATA 1000000 000000 initsct -data_MON2_OI REL ROMDATA 1000000 000000 initsct -data_MON3_O REL DATA 1000000 000000 initsct -data_MON3_OI REL ROMDATA 1000000 000000 initsct -data_MON4_O REL DATA 1000000 000000 initsct -data_MON4_OI REL ROMDATA 1000000 000000 initsct -# Total ------------------------------------------------------------------- - DATA 0001343(00004931) Byte(s) - ROMDATA 0000473(00001139) Byte(s) - CODE 0003703(00014083) Byte(s) - -########################################## -# VARIABLE VECTOR TABLE INFORMATION # -########################################## -No. Address No. Address No. Address -0 __brk 1 __dummy_int 2 __dummy_int -3 __dummy_int 4 __dummy_int 5 __dummy_int -6 __dummy_int 7 __dummy_int 8 __dma0 -9 __dma1 10 __dma2 11 __dma3 -12 __timer_a0 13 __timer_a1 14 __timer_a2 -15 __timer_a3 16 __timer_a4 17 __uart0_trance -18 __uart0_receive 19 __dummy_int 20 __uart1_receive -21 __timer_b0 22 __timer_b1 23 __timer_b2 -24 __timer_b3 25 __timer_b4 26 __int5 -27 __int4 28 __int3 29 __int2 -30 __int1 31 __int0 32 __timer_b5 -33 __uart2_trance 34 __uart2_receive 35 __uart3_trance -36 __uart3_receive 37 __uart4_trance 38 __uart4_receive -39 __bus_collision_u2 40 __bus_collision_u3 41 __bus_collision_u4 -42 __ad_converter 43 __input_key 44 __intelligent_io_int0 -45 __intelligent_io_int1 46 __intelligent_io_int2 47 __intelligent_io_int3 -48 __intelligent_io_int4 49 __dummy_int 50 __dummy_int -51 __dummy_int 52 __dummy_int 53 __dummy_int -54 __dummy_int 55 __dummy_int 56 __dummy_int -57 __dummy_int 58 __dummy_int 59 __dummy_int -60 __dummy_int 61 __dummy_int 62 __dummy_int -63 __dummy_int - -########################################## -# (3) GLOBAL LABEL INFORMATION # -########################################## -$_pput fe1b92 $_sput fe1b7a $atomIntExit fe0524 -$atomSched fe0350 $fputc fe1bcc $speed fe1ab2 -__ad_converter fe14ba __brk fe1478 __bus_collision_ fe14b4 -__bus_collision_ fe14b6 __bus_collision_ fe14b8 __ctype fe023b -__dma0 fe147a __dma1 fe147c __dma2 fe147e -__dma3 fe1480 __dummy_int fe1476 __f8eq fe3188 -__f8ge fe31e8 __f8geti fe2e9c __f8lt fe326e -__f8mul fe32f2 __f8ne fe354a __f8prn fe2870 -__i4modU fe35aa __i8divU fe35c8 __i8modU fe36b4 -__init fe1980 __inmod fe3072 __input_key fe14bc -__int0 fe14a4 __int1 fe14a2 __int2 fe14a0 -__int3 fe149e __int4 fe149c __int5 fe149a -__intelligent_io fe14be __intelligent_io fe14c0 __intelligent_io fe14c2 -__intelligent_io fe14c4 __intelligent_io fe14c6 __iob 000844 -__istack_top 001743 __pri fe2dbe __print fe1c14 -__sget fe1b6a __stack_top 001443 __timer_a0 fe1482 -__timer_a1 fe1484 __timer_a2 fe1486 __timer_a3 fe1488 -__timer_a4 fe148a __timer_b0 fe1492 __timer_b1 fe1494 -__timer_b2 fe09ea __timer_b3 fe1496 __timer_b4 fe1498 -__timer_b5 fe14a6 __uart0_receive fe148e __uart0_trance fe148c -__uart1_receive fe1490 __uart2_receive fe14aa __uart2_trance fe14a8 -__uart3_receive fe14ae __uart3_trance fe14ac __uart4_receive fe14b2 -__uart4_trance fe14b0 _archContextSwit fe0b22 _archFirstThread fe0b0c -_archThreadConte fe0a44 _asm_shell_new_t 00041a _asm_shell_new_t 000412 -_asm_shell_old_t 000416 _atomCurrentCont fe0532 _atomIntEnter fe051e -_atomMutexCreate fe0746 _atomMutexDelete fe076a _atomMutexGet fe07f4 -_atomMutexPut fe08fc _atomOSInit fe0540 _atomOSStart fe057c -_atomOSStarted 000988 _atomQueueCreate fe0b68 _atomQueueDelete fe0bba -_atomQueueGet fe0c54 _atomQueuePut fe0d5a _atomSemCreate fe103c -_atomSemDelete fe105c _atomSemGet fe10e6 _atomSemPut fe11bc -_atomSemResetCou fe1252 _atomThreadCreat fe0406 _atomThreadStack fe04c8 -_atomTimeGet fe1344 _atomTimeSet fe134a _atomTimerCancel fe12ee -_atomTimerDelay fe1360 _atomTimerRegist fe12aa _atomTimerTick fe1352 -_dummy fe3a52 _exit fe3a4c _fgetc fe377e -_henkan1 fe2d2c _henkan2 fe2d5c _init_dev fe1a94 -_init_pin_P0 fe0b4a _init_prn fe1b36 _init_timerb2 fe0b48 -_initsct fe3852 _main fe1892 _printf fe19fc -_start fe3a06 _tcbDequeueEntry fe0670 _tcbDequeueHead fe062c -_tcbDequeuePrior fe06fa _tcbEnqueuePrior fe05ac _tcbReadyQ 000400 -_test_start fe14c8 _toggle_pin_P0 fe0b52 - -########################################## -# (4) GLOBAL EQU SYMBOL INFORMATION # -########################################## -__SB__ 00000400 - -########################################## -# (5) GLOBAL EQU BIT-SYMBOL INFORMATION # -########################################## - -########################################## -# (6) LOCAL LABEL INFORMATION # -########################################## -@ atomkernel ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomkernel.r30 ) -@ atommutex ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atommutex.r30 ) -@ atomport-asm ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport-asm.r30 ) -@ atomport ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport.r30 ) -@ atomqueue ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomqueue.r30 ) -@ atomsem ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomsem.r30 ) -@ atomtimer ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomtimer.r30 ) -@ fvector ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\fvector.r30 ) -@ initsct ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\initsct.r30 ) -@ intprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\intprg.r30 ) -@ resetprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\resetprg.r30 ) -@ sem1 ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\sem1.r30 ) -@ tests-main ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\tests-main.r30 ) -@ init ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ printf ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ device ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ fputc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ print ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8eq ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8ge ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8lt ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8mul ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8ne ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _i4modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _i8divu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _i8modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ cdata ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ fgetc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) - -########################################## -# (7) LOCAL EQU SYMBOL INFORMATION # -########################################## -@ atomkernel ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomkernel.r30 ) -@ atommutex ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atommutex.r30 ) -@ atomport-asm ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport-asm.r30 ) -@ atomport ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport.r30 ) -@ atomqueue ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomqueue.r30 ) -@ atomsem ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomsem.r30 ) -@ atomtimer ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomtimer.r30 ) -@ fvector ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\fvector.r30 ) -@ initsct ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\initsct.r30 ) -@ intprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\intprg.r30 ) -@ resetprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\resetprg.r30 ) -@ sem1 ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\sem1.r30 ) -@ tests-main ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\tests-main.r30 ) -@ init ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ printf ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ device ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ fputc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ print ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8eq ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8ge ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8lt ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8mul ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8ne ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _i4modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _i8divu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _i8modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ cdata ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ fgetc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) - -########################################## -# (8) LOCAL EQU BIT-SYMBOL INFORMATION # -########################################## -@ atomkernel ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomkernel.r30 ) -@ atommutex ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atommutex.r30 ) -@ atomport-asm ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport-asm.r30 ) -@ atomport ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomport.r30 ) -@ atomqueue ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomqueue.r30 ) -@ atomsem ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomsem.r30 ) -@ atomtimer ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\atomtimer.r30 ) -@ fvector ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\fvector.r30 ) -@ initsct ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\initsct.r30 ) -@ intprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\intprg.r30 ) -@ resetprg ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\resetprg.r30 ) -@ sem1 ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\sem1.r30 ) -@ tests-main ( E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\tests-main.r30 ) -@ init ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ printf ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ device ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ fputc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ print ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8eq ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8ge ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8lt ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8mul ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _f8ne ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _i4modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _i8divu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ _i8modu ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ cdata ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) -@ fgetc ( c:\program files (x86)\renesas\hew\tools\renesas\nc308wa\v542r00\lib308\nc382lib.lib ) - -*** Mapping List *** - -SECTION START END SIZE ALIGN - -data_SE - 00000400 00000400 0 2 -bss_SE - 00000400 00000400 0 2 -data_SO - 00000400 00000400 0 1 -bss_SO - 00000400 00000400 0 1 -data_NE - 00000400 00000411 12 2 -bss_NE - 00000412 00000987 576 2 -data_NO - 00000988 00000988 1 1 -bss_NO - 00000989 00000c42 2ba 1 -stack - 00000c43 00001442 800 1 -istack - 00001443 00001742 300 1 -data_FE - 00010000 00010000 0 2 -bss_FE - 00010000 00010000 0 2 -data_FO - 00010000 00010000 0 1 -bss_FO - 00010000 00010000 0 1 -rom_FO - 00fe0000 00fe033b 33c 1 -data_SEI - 00fe033c 00fe033c 0 1 -data_SOI - 00fe033c 00fe033c 0 1 -data_NEI - 00fe033c 00fe034d 12 1 -data_NOI - 00fe034e 00fe034e 1 1 -data_FEI - 00fe034f 00fe034f 0 1 -data_FOI - 00fe034f 00fe034f 0 1 -program - 00fe0350 00fe3851 3502 2 -interrupt - 00fe3852 00fe3a52 201 2 -vector - 00fffd00 00fffdff 100 1 -fvector - 00ffffdc 00ffffff 24 1 -bss_MON1_E - 01000000 01000000 0 2 -bss_MON2_E - 01000000 01000000 0 2 -bss_MON3_E - 01000000 01000000 0 2 -bss_MON4_E - 01000000 01000000 0 2 -bss_MON1_O - 01000000 01000000 0 1 -bss_MON2_O - 01000000 01000000 0 1 -bss_MON3_O - 01000000 01000000 0 1 -bss_MON4_O - 01000000 01000000 0 1 -data_MON1_E - 01000000 01000000 0 2 -data_MON1_EI - 01000000 01000000 0 1 -data_MON2_E - 01000000 01000000 0 2 -data_MON2_EI - 01000000 01000000 0 1 -data_MON3_E - 01000000 01000000 0 2 -data_MON3_EI - 01000000 01000000 0 1 -data_MON4_E - 01000000 01000000 0 2 -data_MON4_EI - 01000000 01000000 0 1 -data_MON1_O - 01000000 01000000 0 1 -data_MON1_OI - 01000000 01000000 0 1 -data_MON2_O - 01000000 01000000 0 1 -data_MON2_OI - 01000000 01000000 0 1 -data_MON3_O - 01000000 01000000 0 1 -data_MON3_OI - 01000000 01000000 0 1 -data_MON4_O - 01000000 01000000 0 1 -data_MON4_OI - 01000000 01000000 0 1 - -*** Symbol List *** - -SECTION= -FILE= START END SIZE - SYMBOL ADDR SIZE INFO COUNTS OPT - -SECTION=data_NE -FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomkernel - 00000400 00000409 a - _tcbReadyQ - 00000400 4 data ,g 0 - __SB__ - 00000400 1 data ,g 0 - -SECTION=bss_NE -FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/atomport - 00000412 0000041d c - _asm_shell_new_tcb_ptr - 00000412 4 data ,g 0 - _asm_shell_old_tcb - 00000416 4 data ,g 0 - _asm_shell_new_tcb - 0000041a 4 data ,g 0 - -FILE=init - 00000844 0000087f 3c - __iob - 00000844 0 none ,g 0 - -SECTION=data_NO -FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomkernel - 00000988 00000988 1 - _atomOSStarted - 00000988 1 data ,g 0 - -SECTION=istack -FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg - 00001443 00001742 300 - __stack_top - 00001443 0 none ,g 0 - -SECTION=rom_FO -FILE=cdata - 00fe023b 00fe033b 101 - __ctype - 00fe023b 0 none ,g 0 - -SECTION=program -FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomkernel - 00fe0350 00fe0745 3f6 - $atomSched - 00fe0350 93 func ,g 0 - _atomThreadCreate - 00fe0406 c2 func ,g 0 - _atomThreadStackCheck - 00fe04c8 56 func ,g 0 - _atomIntEnter - 00fe051e 5 func ,g 0 - $atomIntExit - 00fe0524 f func ,g 0 - _atomCurrentContext - 00fe0532 e func ,g 0 - _atomOSInit - 00fe0540 3c func ,g 0 - _atomOSStart - 00fe057c 29 func ,g 0 - _tcbEnqueuePriority - 00fe05ac 81 func ,g 0 - _tcbDequeueHead - 00fe062c 44 func ,g 0 - _tcbDequeueEntry - 00fe0670 8a func ,g 0 - _tcbDequeuePriority - 00fe06fa 4c func ,g 0 - -FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atommutex - 00fe0746 00fe09e9 2a4 - _atomMutexCreate - 00fe0746 24 func ,g 0 - _atomMutexDelete - 00fe076a 89 func ,g 0 - _atomMutexGet - 00fe07f4 109 func ,g 0 - _atomMutexPut - 00fe08fc b0 func ,g 0 - -FILE=atomport-asm - 00fe09ea 00fe0a0d 24 - __timer_b2 - 00fe09ea 0 none ,g 0 - -FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/atomport - 00fe0a0e 00fe0b66 159 - _archThreadContextInit - 00fe0a44 c8 func ,g 0 - _archFirstThreadRestore - 00fe0b0c 17 func ,g 0 - _archContextSwitch - 00fe0b22 26 func ,g 0 - _init_timerb2 - 00fe0b48 1 func ,g 0 - _init_pin_P0 - 00fe0b4a 9 func ,g 0 - _toggle_pin_P0 - 00fe0b52 15 func ,g 0 - -FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomqueue - 00fe0b68 00fe103b 4d4 - _atomQueueCreate - 00fe0b68 52 func ,g 0 - _atomQueueDelete - 00fe0bba 9a func ,g 0 - _atomQueueGet - 00fe0c54 106 func ,g 0 - _atomQueuePut - 00fe0d5a 100 func ,g 0 - -FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomsem - 00fe103c 00fe12a9 26e - _atomSemCreate - 00fe103c 1f func ,g 0 - _atomSemDelete - 00fe105c 8a func ,g 0 - _atomSemGet - 00fe10e6 d7 func ,g 0 - _atomSemPut - 00fe11bc 95 func ,g 0 - _atomSemResetCount - 00fe1252 1a func ,g 0 - -FILE=E:/projects/atomthreads pull request/atomthreads-master/kernel/atomtimer - 00fe12aa 00fe1475 1cc - _atomTimerRegister - 00fe12aa 44 func ,g 0 - _atomTimerCancel - 00fe12ee 56 func ,g 0 - _atomTimeGet - 00fe1344 5 func ,g 0 - _atomTimeSet - 00fe134a 9 func ,g 0 - _atomTimerTick - 00fe1352 d func ,g 0 - _atomTimerDelay - 00fe1360 66 func ,g 0 - -FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/fvector - 00fe1476 00fe1476 1 - __dummy_int - 00fe1476 1 func ,g 0 - -FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/intprg - 00fe1478 00fe14c6 4f - __brk - 00fe1478 1 func ,g 0 - __dma0 - 00fe147a 2 func ,g 0 - __dma1 - 00fe147c 2 func ,g 0 - __dma2 - 00fe147e 2 func ,g 0 - __dma3 - 00fe1480 2 func ,g 0 - __timer_a0 - 00fe1482 2 func ,g 0 - __timer_a1 - 00fe1484 2 func ,g 0 - __timer_a2 - 00fe1486 2 func ,g 0 - __timer_a3 - 00fe1488 2 func ,g 0 - __timer_a4 - 00fe148a 2 func ,g 0 - __uart0_trance - 00fe148c 2 func ,g 0 - __uart0_receive - 00fe148e 2 func ,g 0 - __uart1_receive - 00fe1490 2 func ,g 0 - __timer_b0 - 00fe1492 2 func ,g 0 - __timer_b1 - 00fe1494 2 func ,g 0 - __timer_b3 - 00fe1496 2 func ,g 0 - __timer_b4 - 00fe1498 2 func ,g 0 - __int5 - 00fe149a 2 func ,g 0 - __int4 - 00fe149c 2 func ,g 0 - __int3 - 00fe149e 2 func ,g 0 - __int2 - 00fe14a0 2 func ,g 0 - __int1 - 00fe14a2 2 func ,g 0 - __int0 - 00fe14a4 2 func ,g 0 - __timer_b5 - 00fe14a6 2 func ,g 0 - __uart2_trance - 00fe14a8 2 func ,g 0 - __uart2_receive - 00fe14aa 2 func ,g 0 - __uart3_trance - 00fe14ac 2 func ,g 0 - __uart3_receive - 00fe14ae 2 func ,g 0 - __uart4_trance - 00fe14b0 2 func ,g 0 - __uart4_receive - 00fe14b2 2 func ,g 0 - __bus_collision_u2 - 00fe14b4 2 func ,g 0 - __bus_collision_u3 - 00fe14b6 2 func ,g 0 - __bus_collision_u4 - 00fe14b8 2 func ,g 0 - __ad_converter - 00fe14ba 2 func ,g 0 - __input_key - 00fe14bc 2 func ,g 0 - __intelligent_io_int0 - 00fe14be 2 func ,g 0 - __intelligent_io_int1 - 00fe14c0 2 func ,g 0 - __intelligent_io_int2 - 00fe14c2 2 func ,g 0 - __intelligent_io_int3 - 00fe14c4 2 func ,g 0 - -FILE=E:/projects/atomthreads pull request/atomthreads-master/tests/sem1 - 00fe14c8 00fe1890 3c9 - _test_start - 00fe14c8 30f func ,g 0 - -FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/tests-main - 00fe1892 00fe197f ee - _main - 00fe1892 5a func ,g 0 - -FILE=init - 00fe1980 00fe19fa 7b - __init - 00fe1980 7b func ,g 0 - -FILE=printf - 00fe19fc 00fe1a93 98 - _printf - 00fe19fc 8c func ,g 0 - -FILE=device - 00fe1a94 00fe1bca 137 - _init_dev - 00fe1a94 1d func ,g 0 - $speed - 00fe1ab2 85 func ,g 0 - _init_prn - 00fe1b36 33 func ,g 0 - __sget - 00fe1b6a 10 func ,g 0 - $_sput - 00fe1b7a 19 func ,g 0 - $_pput - 00fe1b92 39 func ,g 0 - -FILE=fputc - 00fe1bcc 00fe1c12 47 - $fputc - 00fe1bcc 47 func ,g 0 - -FILE=print - 00fe1c14 00fe3186 1573 - __print - 00fe1c14 c5c func ,g 0 - __f8prn - 00fe2870 4bc func ,g 0 - _henkan1 - 00fe2d2c 30 func ,g 0 - _henkan2 - 00fe2d5c 62 func ,g 0 - __pri - 00fe2dbe dd func ,g 0 - __f8geti - 00fe2e9c 1d7 func ,g 0 - __inmod - 00fe3072 115 func ,g 0 - -FILE=_f8eq - 00fe3188 00fe31e7 60 - __f8eq - 00fe3188 60 func ,g 0 - -FILE=_f8ge - 00fe31e8 00fe326d 86 - __f8ge - 00fe31e8 86 func ,g 0 - -FILE=_f8lt - 00fe326e 00fe32f1 84 - __f8lt - 00fe326e 84 func ,g 0 - -FILE=_f8mul - 00fe32f2 00fe3549 258 - __f8mul - 00fe32f2 258 func ,g 0 - -FILE=_f8ne - 00fe354a 00fe35a9 60 - __f8ne - 00fe354a 60 func ,g 0 - -FILE=_i4modu - 00fe35aa 00fe35c7 1e - __i4modU - 00fe35aa 1e func ,g 0 - -FILE=_i8divu - 00fe35c8 00fe36b3 ec - __i8divU - 00fe35c8 ec func ,g 0 - -FILE=_i8modu - 00fe36b4 00fe377c c9 - __i8modU - 00fe36b4 c9 func ,g 0 - -FILE=fgetc - 00fe377e 00fe3851 d4 - _fgetc - 00fe377e d4 func ,g 0 - -SECTION=interrupt -FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/initsct - 00fe3852 00fe3a04 1b3 - _initsct - 00fe3852 1b3 func ,g 0 - -FILE=E:/projects/atomthreads pull request/atomthreads-master/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/resetprg - 00fe3a06 00fe3a52 4d - _start - 00fe3a06 45 func ,g 0 - _exit - 00fe3a4c 6 func ,g 0 - diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.mot b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.mot deleted file mode 100644 index 4cf41da3..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.mot +++ /dev/null @@ -1,496 +0,0 @@ -S0030000FC -S224FE00004572726F7220706F7374696E672073656D32206F6E2077616B6575700A005465AB -S224FE00207374322074687265616420776F6B6520776974686F75742064656C6574696F6E8E -S224FE004020282564290A004572726F7220706F7374696E672073656D32206F6E2077616B74 -S224FE006065757020282564290A0054657374312074687265616420776F6B65207769746814 -S224FE00806F75742064656C6574696F6E20282564290A00537461636B5573653A25640A009D -S224FE00A0537461636B4F766572666C6F772025640A00537461636B436865636B0A004572AB -S224FE00C0726F72206372656174696E6720746573742074687265616420320A004661696C0D -S224FE00E065642073656D322064656C6574650A004E6F74696679206661696C2028256429D1 -S224FE01000A004661696C65642073656D312064656C6574650A004661696C65642074696DAB -S224FE012065722064656C61790A004572726F72206372656174696E67207465737420746859 -S224FE01407265616420310A004572726F72206372656174696E6720746573742073656D6188 -S224FE016070686F726520320A004572726F72206372656174696E6720746573742073656D46 -S224FE01806170686F726520310A004261642073656D6170686F72652064656C6574696F6E23 -S224FE01A020636865636B730A004261642073656D6170686F7265206372656174696F6E2021 -S224FE01C0636865636B730A004572726F72206372656174696E672073656D6170686F726546 -S220FE01E00A004572726F722064656C6574696E672073656D6170686F72650A0092 -S224FE01FC4661696C282564290A00506173730A004D61696E5573653A25640A004D61696EDB -S219FE021C20737461636B206F766572666C6F770A00476F0A0036 -S20EFE02312D496E66696E6974790049 -S224FE023B002020202020202020202828282828202020202020202020202020202020202098 -S224FE025B2048101010101010101010101010101010848484848484848484841010101010B0 -S224FE027B1010818181818181010101010101010101010101010101010101010110101010E6 -S224FE029B1010828282828282020202020202020202020202020202020202020210101010AC -S224FE02BB200000000000000000000000000000000000000000000000000000000000000000 -S224FE02DB000000000000000000000000000000000000000000000000000000000000000000 -S224FE02FB0000000000000000000000000000000000000000000000000000000000000000E0 -S224FE031B0000000000000000000000000000000000000000000000000000000000000000BF -S205FE033B00BE -S20EFE033C00000000000000000000B4 -S20CFE03460000000000000000AC -S205FE034E00AB -S224FE0350EC068F2830FE32FAB2D1FA001888099A048E14FCD3EE580404E211159A1BB6533E -S224FE037000040000CFB70253C3E3FAA2C1FAA6C10404CF610073BB57E2D1FE9A0B580404B4 -S224FE03900192CB04FEBB18580404E210048B0D58040401988B04E9BF31FE5AF3EFFE39FE59 -S224FE03B0DB2D38FEC88EB65300040000CF3D0363C3E3FADA1AA6C10404B65300040000CF38 -S224FE03D0DC0173A2C1FAA6C10404CF090073D1EE8E14FCDEEC008F0893F10C08DA1197F3D8 -S224FE03F00C0404A2C10CA2C108CD220BFE737808F220158E10FCEC0A8F2832FA7808DA0D10 -S224FE0410780EDA097816DA05781A9A0734FEC9CEA3007808F220157808923B0C04B8910007 -S224FE04307808C3230D7808C323117808C32317780893330E0578089333120999B31AD8B09A -S224FE045099B216F8BEC3E3F6381EDA2678089333161B780893331A1F93F31AFAA2D1FA0083 -S224FE0470EB1078FAF0BF91B216902F5AF2FFFABBECA2C112A2C10EA2C1F6A2C108CD440A84 -S224FE0490FEB60310D3EEA2C108B65300040000CF0C0173E890DA08D1EE34FECCBB16D1EE53 -S224FE04B0E6D188099A0CCF7B00C9A3DA0502CF91FE32FE38FE8E14FCEC088F287808DA0934 -S224FE04D0780CDA0578109A0634FEC9BB3D780893C31BF833FC780839FCC99E99811FCA1341 -S224FE04F099B3F8F2F1F8C1A3902E5A9A06E3F1FCBBE439FCC99E09C3E310780899831F41E8 -S224FE051099B01009C3E30C32FE38FE8E14FCE7F10804DFDEEC0230FEE7FF080438FECF21DB -S224FE0530FEFC1908049A06B9B30404DFB89100DFEC028F20B89100C7E30404C7E300041018 -S224FE05508809C2CE10A2C10CA2C108B65300000000B653A605FE00AEFFB65389090000CFAB -S224FE057096FEB6031830FE38FE8E04FCEC048F20F6E18809AEFFB65300040000CF6D0163B0 -S224FE0590C3E3FCDA0E97F3FC0404A2C1FCCD0C0BFE538E04FCDEF9A19AFDDFDEEC0A8F2C91 -S224FE05B07808DA05780C9A0634FEC9BB6B4199B308C3E3F6C3E3FA78F6DA0B780C79F692DB -S224FE05D04604048B434193F108F69A1E0993F30C08780CB2110D00780C9333F61178F6DAE1 -S224FE05F03578F693330C0DBB2D780C9333FA0D780C9333F61178FA93330C1178F6DA1778B0 -S224FE0610F693330C0DBB0F93F3F6FA78F693C311F678FA9AA332FE38FE8E34FCEC048F088D -S224FE063078089A07B2D1FC00BB310978089A07B2D1FC00BB264193F308FC78FC0993C311E2 -S224FE065008097808DA08097808B2110D00B8910078FCC3230D78FCC3231199B3FC8E10FCBE -S224FE0670EC0C8F0C78089A07B2D1F400BB770978089A07B2D1F400BB6CB2D1F4004199B33E -S224FE069008C3E3F8C3E3FC78F8DA5A93F10CF89A484193F108F89A1678F80993C31108098B -S224FE06B07808DA22097808B2110D00BB1978F879FC9343111178F8918311DA0A78F89183A4 -S224FE06D0119333FC0D93F3F8F4B8910078F4C3231178F4C3230DBB0D93F3F8FC78F893C3A2 -S224FE06F011F8BBA499B3F48E30FCEC048F0878089A07B2D1FC00BB390978089A07B2D1FCC1 -S224FE071000BB2E09780892360C04CB214193F308FC0978080993C31108097808DA130978CD -S21AFE073008B2110D0078FCB21111005BB2D1FC0099B3FC8E10FCD4 -S224FE0746EC028F0878089A0634FEC9BB137808B21104007808F2200809B2D1080032FE3845 -S224FE0766FE8E10FCEC068F2832FA32FE78089A0634FFC9BB7432FFF9A1DA5CD3EEA2C1085B -S224FE0786CD2C06FE53C3E3FADA4B78FA922F16CAA2C1FAB65300040000CDAC05FE73E89057 -S224FE07A6DA08D1EE34FFCCBB2E78FA918317DA1E78FA809117A001CDEE12FE53E890DA085F -S224FE07C6D1EE34FFCDBB1078FAB2111700D1EEF2E1FEBBA4D1EEE2D1FE9A0ECD3205FEC968 -S224FE07E6A3DA0602CD5003FE38FF8E14FCDEEC1E8F2C32FA78089A0734FEC9CEF500CD32CB -S224FE080605FEC3E3FAD3EE78FA9A09D1EE34FEC8CEE00078089183049A04CEAD007808932B -S224FE082631FA049A04CEA200780C9B04CE9400A2C1FAA2C108CDAC05FE73E890DA09D1EE1C -S224FE084634FECCCEAD0078FAF2211532FE780CDA4A93F3FAF293F308F6B2F1E2AC09FE0076 -S224FE0866D3DAF283E3E693F30CEAD3DAE279FA836317D3DAE2A081CDAA12FE53E890DA210C -S224FE088634FECDA2C1FAA2C108CD7006FE7378FAF2201578FAB21117006B78FAB211170038 -S224FE08A6D1EE38FE9A4C02CD5003FE78FA92CB16FE9A3F78087908988B08E8B1C26B08BBC3 -S224FE08C631D1EEF2E3FEBB2A7808E21F089A0634FECBBB1C78087908988B08E8B1C26B0870 -S224FE08E678089183049A0778089333FA0432FED1EE38FE8E34FCEC068F2C32FA78089A0795 -S224FE090634FEC9CE9D00CD3205FEC3E3FAD3EE78089331FA04DA09D1EE34FECFCE84007856 -S224FE0926087908988B080E01C26B087808988B089A6C7808B2110400097808DA5CA2C10894 -S224FE0946CD2C06FE53C3E3FAA2C1FAB65300040000CDAC05FE73E890DA08D1EE34FECCBB73 -S224FE09664178FAF2201678089333FA0478FA918317DA1578FA809117A001CDEE12FE53E882 -S224FE098690DA0534FECD7B78FAB211170032FED1EE02CD5003FEBB0AD1EE32FE5BD1EE320A -S224FE09A6FE38FE8E34FCEC048F2832FC93F308FCDA30D3EE0978FCF222160978FCB2111714 -S224FE09C60078FCA00178FCF0B4A001CD7006FE7378FCA001B65300040000CDAC05FE73D1AA -S208FE09E6EE8E14FC7E -S224FE09EAD12BD1EFD12FD32BC3CE08A2C104D3EFD32B63D1EFCD1E05FECD5213FEF8A1CDC9 -S208FE0A0A2405FE9E20 -S224FE0A0EEC048F28CD3205FEC3E3FCD1EE78FCDA1878FC918305DA1199B3FC889109C1A30F -S224FE0A2EA00178FC9201055378FCF2211502CD5003FE8E14FCDEEC048F7893F30CFC99B39C -S224FE0A4EFCF2FEFCD7990E0AFEC9DBF960C1A3C13B99B3FCF2FEFCD7990E0AFEF960C1A343 -S224FE0A6EC13B99B3FCF2FEFCC1A3912FFBFB99B3FCF2FEFCC1A3912FFBFB99B3FCF2FEFC99 -S224FE0A8EC1A3912FC00099B3FCF2FEFCC1A3912F3B3B99B3FCF2FEFCC1A3912F3B3B99B379 -S224FE0AAEFCF2FEFCC1A3912FA1A199B3FCF2FEFCC1A3912FA1A199B3FCF2FEFCC1A3912FE5 -S224FE0ACEA0A099B3FCF2FEFCC1A3912FA0A099B3FCF2FEFCC1A3912F333399B3FCF2FEFC3B -S224FE0AEEC1A3912F222299B3FCF2FEFCC1A3912F11110933FC0993F3FC088E1EFCDEEC00C6 -S224FE0B0E97F3081204B1A3120400D1018E7FD3AAD32BDFFCEC0097F308160497F30C1A0431 -S224FE0B2ED1AA8FFEB1A3160400D111B1A31A0400D1018E7FD3AAD32BDFFCDFDEF6EFE2031E -S21DFE0B4E12E003DF01B8BBE003D89810E00301B8BBE003D89910E003DF63 -S224FE0B68EC028F287808DA05780C9A0634FEC9BB3D7810DA0578149A0634FEC9BB30780856 -S224FE0B8893330C0878089333100C780893331410B8910009C3E3087808C323047808C323D4 -S224FE0BA8147808C323187808C3231C30FE38FE8E14FCEC068F2832FA32FE78089A0734FFBB -S224FE0BC8C9CE850032FFF9A1DA6CD3EE7808F0B4A081CD2C06FE53C3E3FA9A0EA2C108CD07 -S224FE0BE82C06FE53C3E3FADA4B78FA922F16CAA2C1FAB65300040000CDAC05FE73E890DAE4 -S224FE0C0808D1EE34FFCCBB2E78FA918317DA1E78FA809117A001CDEE12FE53E890DA08D101 -S224FE0C28EE34FFCDBB1078FAB2111700D1EEF2E1FEBB94D1EEE2D1FE9A0ECD3205FEC9A33F -S224FE0C48DA0602CD5003FE38FF8E14FCEC228F2C32FA7808DA0578109A0734FEC9CEEF007F -S224FE0C68D3EE780891831CDA04CEC800780C9B04CEBA00CD3205FEC3E3FA9A04CEA700A282 -S224FE0C88C1FA7808F0B4A081CDAC05FE73E890DA04CE8B0078FAF2211532FE780CDA54939C -S224FE0CA8F3FAEE93F308F27808F0B483E3F6B2F1DE5A0EFE00D3DAEE83E3E293F30CE6D339 -S224FE0CC8DADE79FA836317D3DADEA081CDAA12FE53E890DA2434FECDA2C1FA7808F0B4A0C5 -S224FE0CE881CD7006FE7378FAF2201578FAB21117006B78FAB2111700D1EE38FE9A5002CD6A -S224FE0D085003FE78FA92CB16FE9A43D3EEA2C110A2C108CF7E017330FED1EEBB31D1EE348B -S224FE0D28FECCBB2AD1EE34FEC8BB23D1EEF2E3FEBB1CA2C110A2C108CF59017330FED1EE92 -S224FE0D48CD3205FEC9A3DA0602CD5003FE38FE8E34FCEC228F2C32FA7808DA0578109A07A9 -S224FE0D6834FEC9CEE900D3EE780879089341101CDA04CEBF00780C9B04CEB100CD3205FEE5 -S224FE0D88C3E3FA9A04CE9E00A2C1FAA2C108CDAC05FE73E890DA04CE850078FAF221153272 -S224FE0DA8FE780CDA4E93F3FAEE93F308F293F308F6B2F1DE5A0EFE00D3DAEE83E3E293F3BC -S224FE0DC80CE6D3DADE79FA836317D3DADEA081CDAA12FE53E890DA2134FECDA2C1FAA2C163 -S224FE0DE808CD7006FE7378FAF2201578FAB21117006B78FAB2111700D1EE38FE9A5002CDE2 -S224FE0E085003FE78FA92CB16FE9A43D3EEA2C110A2C108CF4C017330FED1EEBB31D1EE34BC -S224FE0E28FECCBB2AD1EE34FEC8BB23D1EEF2E3FEBB1CA2C110A2C108CF27017330FED1EEC3 -S224FE0E48CD3205FEC9A3DA0602CD5003FE38FE8E34FCEC048F2832FC93F308FCDA31D3EEFA -S224FE0E680978FCF222160978FCB211170078FCA00178FC809108A001CD7006FE7378FCA05E -S224FE0E8801B65300040000CDAC05FE73D1EE8E14FCDEEC068F7C7808DA05780C9A0734FE5C -S224FE0EA8C9CEB800780899C30C78089183087908919218790C8F5CC91BDA0F996F0080B023 -S224FE0EC893E9509AFBB90E9AF3C97BB083E9509AFB8E3A89B37808790899B30899C31899A7 -S224FE0EE8D20CC1A3C333187808790899831CF8BFC3631C780899830C780801831F1078080A -S224FE0F08C321188A077808B2111800A2C108CD2C06FE53C3E3FADA41A2C1FAB653000400FE -S224FE0F2800CDAC05FE73E8909A2B78FAF2201678FA918317DA1678FA809117A001CDEE124B -S224FE0F48FE53E890DA0634FECDBB1078FAB211170032FE6B34FECC4B32FE38FE8E3EFCDED7 -S224FE0F68EC068F7C7808DA05780C9A0734FEC9CEBF00780899C30C780C790891D30889A3D8 -S224FE0F88780891C214C1A38F5CC91BDA0F996F0080B093E9509AFBB90E9AF3C97BB083E9F6 -S224FE0FA8509AFB8E3A89B37808790899B30899C31499D20CC1A3C333147808790899831C5A -S224FE0FC8F8B1C3631C780899830C780801831F107808C321148A077808B21114007808F070 -S224FE0FE8B4A081CD2C06FE53C3E3FADA41A2C1FAB65300040000CDAC05FE73E8909A2B78F8 -S224FE1008FAF2201678FA918317DA1678FA809117A001CDEE12FE53E890DA0634FECDBB109B -S218FE102878FAB211170032FE6B34FECC4B32FE38FE8E3EFC53 -S224FE103CEC028F0878089A0634FEC9BB0E7808923B0C0409B2D1080032FE38FE8E10FCDE59 -S224FE105CEC068F2832FA32FE78089A0634FFC9BB7432FFF9A1DA5CD3EEA2C108CD2C06FEF7 -S224FE107C53C3E3FADA4B78FA922F16CAA2C1FAB65300040000CDAC05FE73E890DA08D1EEB4 -S224FE109C34FFCCBB2E78FA918317DA1E78FA809117A001CDEE12FE53E890DA08D1EE34FF0F -S224FE10BCCDBB1078FAB2111700D1EEF2E1FEBBA4D1EEE2D1FE9A0ECD3205FEC9A3DA0602D6 -S224FE10DCCD5003FE38FF8E14FCDEEC1E8F2C32FA78089A0734FEC9CEC300D3EE7808988B1E -S224FE10FC04DA04CEA700780C9B04CE9900CD3205FEC3E3FA9A04CE8600A2C1FAA2C108CDC7 -S224FE111CAC05FE73E890DA09D1EE34FECCCE8D0078FAF2211532FE780CDA4A93F3FAF293A4 -S224FE113CF308F6B2F1E26C12FE00D3DAF283E3E693F30CEAD3DAE279FA836317D3DAE2A009 -S224FE115C81CDAA12FE53E890DA2134FECDA2C1FAA2C108CD7006FE7378FAF2201578FAB26A -S224FE117C1117006B78FAB2111700D1EE38FE9A2C02CD5003FE78FA92CB16FEBB1FD1EE34E6 -S224FE119CFEC8BB18D1EEF2E3FEBB1178087908988B040E01C26B04D1EE32FE38FE8E34FCEE -S224FE11BCEC068F2C32FA78089A0734FEC9CE8200D3EE097808DA5EA2C108CD2C06FE53C3CB -S224FE11DCE3FAA2C1FAB65300040000CDAC05FE73E890DA08D1EE34FECCBB5678FAF22016F8 -S224FE11FC78FA918317DA1578FA809117A001CDEE12FE53E890DA0534FECD7B78FAB21117CE -S224FE121C0032FED1EECD3205FEC9A3DA2402CD5003FEBB1D7808E21F049A0634FECBBB0F70 -S224FE123C78087908988B04E8B1C26B0432FED1EE38FE8E34FCDEEC028F0878089A0534FE06 -S224FE125CC97B7808923B0C0432FE38FE8E10FCDEEC048F2832FC93F308FCDA30D3EE097845 -S224FE127CFCF222160978FCB211170078FCA00178FCF0B4A001CD7006FE7378FCA001B65332 -S212FE129C00040000CDAC05FE73D1EE8E14FCF1 -S224FE12AAEC028F0832FE7808DA0D097808DA0878089183089A0634FEC9BB25D3EE580A045C -S224FE12CA9A0E7808B2110C0097F3080A04BB0D7808B3330A040C97F3080A04D1EE32FE385B -S224FE12EAFE8E10FCEC0A8F2C34FECE32FA78089A0634FEC9BB40D3EEB9B30A04C3E3F6C3BC -S224FE130AE3FA78F6DA2E93F108F69A1CB3F10A04F69A0978F697C30C0A047B78F679FA9319 -S224FE132A430C0C32FEBB0D93F3F6FA78F693C30CF6BBD0D1EE38FE8E34FCB9B30E04DFDE98 -S224FE134AEC0097F3080E04FC188809DA08F6F10E04CF6A00DFDEEC1A8F2C32F6CD3205FE8F -S224FE136AC3E3F678089A0634FEC9BB4B78F69A0634FEC8BB42D3EE78F6F2211593F3F6FAD1 -S224FE138AB2F1E65414FE00D3DAFA83E3EA93F308EED3DAE679F6836317D3DAE6A081CF015B -S224FE13AAFF53E890DA08D1EE34FECDBB0AD1EE32FE02CD5003FE38FE8E34FCDEEC148F2C55 -S224FE13CAB2D1EC00B9B30A04C3E3F0C3E3F478F0DA5178F093C30CF878F0998308F8BF78D7 -S224FE13EAF0C323089A33B3F10A04F09A0978F097C30C0A047B78F079F493430C0C78EC9AD8 -S224FE140A0B99B3F0C3E3FCC3E3EC6B78FC9333F00C78F0B2110C005B93F3F0F493F3F8F039 -S224FE142ABBAD78ECDA2193F3ECF078F0DA190978F0DA0C78F0F0B4A00178F090015378F063 -S224FE144A93C30CF0BBE58E34FCDEEC048F0832FC93F308FCDA14D3EE78FCA001B6530004E1 -S210FE146A0000CDAC05FE73D1EE8E10FC2B -S205FE14769ED4 -S224FE14789EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE91 -S224FE14989EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE9EDE71 -S213FE14B89EDE9EDE9EDE9EDE9EDE9EDE9EDE9E20 -S224FE14C8EC0E8F0833FEB2D1F200A2F1F2E8030000CA45AE00B653AC090000CD3C10FE6365 -S224FE14E8E8909A20B653AC090000CD5C10FE53E890DA20B653E201FE00CDFC19FE53E3F104 -S224FE1508FEBB15B653C801FE00CDFC19FE53E3F1FE6AF2F1F2BBB4AE00B65300000000CDEB -S224FE15283C10FE63E8909A0FB653A901FE00CDFC19FE53E3F1FEB65300000000CD5C10FEDC -S224FE154853E8909A0FB6538A01FE00CDFC19FE53E3F1FEAE00B653AC090000CD3C10FE638F -S224FE1568E890DA12B6536901FE00CDFC19FE53E3F1FECEE800AE00B653B1090000CD3C1046 -S224FE1588FE63E890DA12B6534801FE00CDFC19FE53E3F1FECEC600AE01B65308010000B61B -S224FE15A85364040000B65300000000B653D817FE00AE10B6531E040000CD0604FEB60318D7 -S224FE15C8E890DA12B6532A01FE00CDFC19FE53E3F1FECE8800B65364000000CD6013FE5311 -S224FE15E8E890DA11B6531601FE00CDFC19FE53E3F1FEBB68B653AC090000CD5C10FE53E807 -S224FE160890DA11B6530201FE00CDFC19FE53E3F1FEBB49B653F4010000B653B1090000CDA3 -S224FE1628E610FE7330F2DA170198BBF2C98EB653F000FE00CDFC19FE63E3F1FEBB1EB6539A -S224FE1648B1090000CD5C10FE53E890DA0FB653DC00FE00CDFC19FE53E3F1FEAE00B653AC8F -S224FE1668090000CD3C10FE63E890DA12B6536901FE00CDFC19FE53E3F1FECEE800AE00B6E8 -S224FE168853B1090000CD3C10FE63E890DA12B6534801FE00CDFC19FE53E3F1FECEC600AEBD -S224FE16A801B65308010000B6536C050000B65300000000B6533818FE00AE10B65341040026 -S224FE16C800CD0604FEB60318E890DA12B653BE00FE00CDFC19FE53E3F1FECE8800B6536468 -S224FE16E8000000CD6013FE53E890DA11B6531601FE00CDFC19FE53E3F1FEBB68B653AC09E7 -S224FE17080000CD5C10FE53E890DA11B6530201FE00CDFC19FE53E3F1FEBB49B653F40100C0 -S224FE172800B653B1090000CDE610FE7330F2DA170198BBF2C98EB653F000FE00CDFC19FE20 -S224FE174863E3F1FEBB1EB653B1090000CD5C10FE53E890DA0FB653DC00FE00CDFC19FE53AC -S224FE1768E3F1FE33F2E3D2F2BA5FD3DAF6A081D3DAFAA08139F2899F2300F92088B11E0431 -S224FE17880000A881CDC804FEB6030CE890DA11B653B200FE00CDFC19FE53E3F1FEBB257840 -S224FE17A8F69A12C3CEF2B653A000FE00CDFC19FE63E3F1FE39FAC98EB6539300FE00CDFC50 -S224FE17C819FE63E3F1F2BB9E39FEC99E8E10FCDEEC02B65300000000B653AC090000CDE6E7 -S224FE17E810FE7330FE76FECADA140198BBFEC98EB6536A00FE00CDFC19FE63BB21B653B110 -S224FE1808090000CDBC11FE5330FEDA120198BBFEC98EB6534700FE00CDFC19FE63F9A1DA01 -S224FE18280EB65364000000CD6013FE53BBF0FCDEEC02B653F4010000B653AC090000CDE6AF -S224FE184810FE7330FE76FECADA140198BBFEC98EB6531E00FE00CDFC19FE63BB1BB653B101 -S224FE1868090000CDBC11FE5330FEDA0CB6530000FE00CDFC19FE53F9A1DA0EB6536400002C -S20DFE188800CD6013FE53BBF0FC1C -S224FE1892EC02CD480BFECD4A0BFEAE00B653A4000000B653A0070000CD4005FEB6030A30F9 -S224FE18B2FE9A32AE01B6532C010000B65374060000B65300000000B653EC18FE00AE10B659 -S224FE18D253B6090000CD0604FEB6031830FE9A05CD7C05FEF9A19AFD03FCEC0C8F28B6533A -S224FE18F22D02FE00CDFC19FE53CDC814FEC3E3F49A3CD3DAF8A081D3DAFCA081B653B60904 -S224FE19120000CDC804FEB6030CE8909A2178F89A0FB6531802FE00CDFC19FE53F2F1F4A23D -S224FE1932C1FCB6530C02FE00CDFC19FE7378F49A0EB6530602FE00CDFC19FE53BB0FA2C1EA -S224FE1952F4B653FC01FE00CDFC19FE7378F499BF64000C0031F4F9A1DA12CD520BFE39F4F3 -S212FE1972C99EA881CD6013FE53BBEC8E14FCFE -S224FE19808F20B6F1720800000200F7E17608B6F1630800001000F7E26708B6F154080000AF -S224FE19A00200F7E15808B6F1450800000100F7E14908B6F14B086A1BFE00B6D15A0800B6B0 -S224FE19C0F169086A1BFE00B6D1780800D7987A1BFEC7E34F08C7E35E08C7E36D08B6F17CC3 -S21FFE19E008921BFE00AF0100AF0000AF000003CDB21AFE63CD361BFE8E04DF9E -S224FE19FCEC068F2833FED3DA0883E3FAF2F4FA093808DA74097608259A4DF2F1080976085D -S224FE1A1C259A20B65353080000052500CDCC1BFE53E99F9A06F9AF8E14FCF2F108E3F1FE0A -S224FE1A3CBBCED3DAFEA081D3DAFAA081A2C108B653881AFE00CD141CFEB60310C3E3089A4A -S224FE1A5CAFF9AF8E14FCB65353080000780801888BCDCC1BFE53E99F9A06F9AF8E14FCF215 -S21CFE1A7CF108E3F1FEBB8939FE8E14FCB65353080000CDCC1BFE53DF23 -S224FE1A94EC008F08390CE991DA0AE992DA06F9AF8E10FC7808C32B05F9A18E10FCDEEC00FB -S224FE1AB48F4054B003B0126D03E990DA12E991DA17E992DA1DE993DA22F9AF8E02FC14699C -S224FE1AD40381126C03BB1C1469031FF6E16C03BB1214690340F6E16C037B14690381F6E108 -S224FE1AF46C033908DA0AE991DA09F9AF8E02FCF9A54BF9A47F0ADA13E9D1DA0AE9D2DA0972 -S224FE1B14F9AF8E02FC44604BD8BE7F0CDA0DE9D19A04D8BC6AF9AF8E02FC106803F9A18E56 -S224FE1B3402FC14E8030C14EA038C12E903F6EFEB03F6E4E80303E9B1475000FAFA14E8033B -S224FE1B540C03E9B1475000FAFA18E8034C1099BF0100FFFFDFDED6FA6D031B6D03DAFC0125 -S224FE1B74B8BB6E03DFDED6F86D030B6D03DAFC106A03186D034CF099BF0100FFFFDF2AE895 -S224FE1B9403DA04F9AFDF2BE803DAFC10E90303E9B1470A00FAFA14E8030803E9B1470A0007 -S21BFE1BB4FAFA14E8030C3AE8039AFC18E8034C1099BF0100FFFFDFC8 -S224FE1BCCEC008F68780898CB0398FE0DDA06F9AF8E16FCE311059A18470A009A134F050D58 -S224FE1BEC0092010BE99F9A06F9AF8E16FCC9BBA081C92BCD7E37FE534FC98B99EE1300DA45 -S20BFE1C0CEF92010B8E16FCA1 -S224FE1C14EC648F5E03D3DA9C83E3C493F310C8F9E0C93BC3CBD0C92B09380C462DDA0D4680 -S224FE1C342BDA094620DA0546239A3DC94B99B30CF2F10CC1A3888B462DDA11462BDA144625 -S224FE1C5423DA174620DA1AC99BBBCCD2F8D0C99BBBC5D2F9D0C99BBBBED2FAD0C99BBBB7AC -S224FE1C74D2FBD0C99BBBB034FD2033D2C82BC883B8AB3C02FED882DA64982E309A07F2F19C -S224FE1C940C34FD3009760C2A9A1FF2F10CC94B4199B3C8C1A3F8B209C3E3C883CBD29B6357 -S224FE1CB4D2F8D0A3EFD2BB5709380CC883B82B3C02FED802DA23C94B99B30CF2F10CC1A3B0 -S224FE1CD4888B4C0FF82091BBD2819F0A0081ABC1A883EBD2C91BBBD1C94BBB2309760C2A33 -S224FE1CF49A1FF2F10CC94B4199B3C8C1A3F8B209C3E3C883CBD29B07D2F8D0A3EFD2C91B93 -S224FE1D14C94BF3EFD409760C2E9A51F2F10C09760C2A9A1AF2F10C4199B3C8C1A3F8B2098B -S224FE1D34C3E3C883CBD49B34F3EFD4BB2F33D409380CC883B82B3C02FED802DA1F99B30CA4 -S224FE1D54F2F10CC1A3888B4C0FF82091BBD4819F0A0081ABC1A883EBD4BBD509760C6CDA11 -S224FE1D740709760C689A2299B30CF2F10CC1A301888B780CF0BF902E6C9A1C09760C6C9A33 -S224FE1D9416F9A2F2F10CBB0C09760C4C9A07F2F10CC9BB4FC9BB4192FB0CFE7EFE98EE64C9 -S224FE1DB4DA5198EE69DA4C98EE759A04CEEC0098EE6F9A04CEE40098EE789A04CEDC009856 -S224FE1DD4EE589A04CED40098EE659A04CE1D0198EE459A04CE150198EE669A04CE0D0198A6 -S224FE1DF4EE679A04CE380198EE479A04CE3001CE5601476C009A284F4199B3C8C1A3F8B41A -S224FE1E1409C3E3C883C3BC9B0DD2FCD0B8910099B0BCC3E3BC93F3BCCCC9BBCE2A01E99236 -S224FE1E349A494F4199B3C8C1A388910809C3E3C883C3A493C304A8A2D1A800AB21FA07A292 -S224FE1E54D1A400CA19D2FCD0A3DEAAA3DEA8A3DEA6A3EFA4B3DEA6B3DEA8B3DEAA93F3A4EF -S224FE1E74AC93F3A8B0C9BBCEDE004F4199B3C8C1A3F8B209C3E3C8898BC99EC3E3BC9B0DE3 -S224FE1E94D2FCD0B8910099B0BCC3E3BC99B3BCF920C3E3CCC9BBCEAF00476C009A164F4156 -S224FE1EB499B3C8C1A3F8B409C3E3C883C3CCC9BBCE9500E9929A1A4F4199B3C8C1A3889127 -S224FE1ED40809C3E3C883C3AC93C304B0C9BBBB774F4199B3C8C1A3F8B209C3E3C8898BC9B4 -S224FE1EF49EF920C3E3CCC9BBBB5D4F4199B3C8C1A388910809C3E3C893C304A083C39C7812 -S224FE1F14C499830488A1F088A1F14D0100893F0000C9A3DA30D2FCD0D23707BB280978C82D -S224FE1F3493C304A083C39C78C44F99830488A1F088A1F14D0100893F0000C9A3DA07D2FC9F -S224FE1F54D0D23707C9BB7EFE98EE64DA1A98EE69DA1598EE6FDA1098EE75DA0B98EE78DA37 -S224FE1F740698EE589A0EE3DFD49A06D2C0D0DA0434FD20B2D1D61E7EFE98EE64DA7198EE49 -S224FE1F9469DA6C98EE75DA6798EE789A04CE770198EE589A04CE6F0198EE6F9A04CECC0274 -S224FE1FB498EE659A04CEBC0398EE459A04CEB40398EE669A04CEAC0398EE679A04CEA403FF -S224FE1FD498EE479A04CE9C0398EE639A04CEC70598EE709A04CEE70598EE6E9A04CEA70696 -S224FE1FF498EE739A04CEF50699B30C8E7AFCE9929A7439D49A12A2D1AC009A0CA2D1B000E4 -S224FE20149A0633DACE020791BBD6E3FFD693F3ACBC93F3B0C099B3BC99F3C0B6530000000A -S224FE203400B6530A000000CDB436FE730630A09330DE99B3BC99F3C0B65300000000B65371 -S224FE20540A000000CDC835FE73C3E3B4C3F3B893F3B4AC93F3B8B0A2D1B4009AABA2D1B8F1 -S224FE2074009AA5BB3739D49A0A78CC9A0633DACE97067FD6E3FFD6B6530A00000099B3CCD3 -S224FE2094CDAA35FE530630A8D330DE99B3CCB8D10A01A9CFC3E3CCC9E39AD8051E0099BA43 -S224FE20B4D631DA93F6D4DABA1039D6E3FFD6A89334DE30E3F1DABBECD2C4D09A0BD2C1D020 -S224FE20D49A06D2C3D0DA07E3F1DAF3E1D8D2C4D0DA09A2D3D634DE2DBB1DD2C1D0DA09A216 -S224FE20F4D3D634DE2BBB10D2C3D0DA08A2D3D634DE205AE3F1D639D6F920D3DADE89A2C3AF -S224FE2114E3A4CE0406E992DA04CEB40039D49A12A2D1AC009A0CA2D1B0009A0633DACEE86A -S224FE21340576FE5898BF4161A2D1AC009A0AA2D1B0009A04D2F2D030DC99B3AC99F3B0B6B0 -S224FE21545300000000B65310000000CDB436FE73A2D3D630DE39D6F920D3DADEC1A27EDC0B -S224FE2174902E0A8A12C2D3D698BBDE0E0AC8B8A2D3D630DEBB0BD3DADE89A2C1A3802E3099 -S224FE2194E3FFD6C2FBDC99B3AC99F3B0B65300000000B65310000000CDC835FE73C3E3BCE4 -S224FE21B4C3F3C093F3BCAC93F3C0B038DCA2D1BC009A85A2D1C000DA04CE7DFFBB5C39D4CD -S224FE21D49A0A78CC9A0633DACE3E0576FE5898BF416178CC9A04D2F2D0983BCC883F0FA2F0 -S224FE21F4D3D6C2CBDE7FD6F960D3DADEC1B2902E0A8A14C2D3D6983BDE883E0AC828A2D351 -S224FE2214D6C2CBDEBB0BD3DADE89E2C1B3802E30E3FFD682E1CCFC9AC1051E0099BAD6319D -S224FE2234DAD2C2D0DA07E3F2DAF3E2D893F6D4DABA1039D6E3FFD6A89334DE30E3F1DABB5E -S224FE2254ECD2C2D0DA1339D6E3FFD6A89392FBFEDEA2D3D634DE305AE3F1D639D6F920D333 -S224FE2274DADE89A2C3E3A4CE9F04E992DA04CE840039D49A12A2D1AC009A0CA2D1B0009AC3 -S224FE22940633DACE8304A2D1AC009A0AA2D1B0009A04D2F2D091BBD6E3FFD693F3ACB49354 -S224FE22B4F3B0B899B3B499F3B8B65300000000B65308000000CDB436FE730630A09330DEAF -S224FE22D499B3B499F3B8B65300000000B65308000000CDC835FE73C3E3BCC3F3C093F3BC34 -S224FE22F4AC93F3C0B0A2D1BC009AABA2D1C0009AA5BB2D39D49A0A78CC9A0633DACE0904DA -S224FE231478CC9A04D2F2D039D6E3FFD67ECC88FF0788EE30A893C2FBDE82E1CCFD9AE90561 -S224FE23341E0099BAD631DAD2C2D0DA04E3F1DA93F6D4DABA1039D6E3FFD6A89334DE30E31C -S224FE2354F1DABBECD2C2D0DA08A2D3D634DE305AE3F1D639D6F920D3DADE89A2C3E3A4CE27 -S224FE2374A703D2FFD078C499830488A1F088A1FC4DFF07893F0000A8B1FF0700009A44BC4D -S224FE23943102FED2C4D09A028C888BDA2189A3C1A3F8B1C9E301888B92C108E99F9A07B824 -S224FE23B491008E7AFC09E3F114C1B3BBDD76FE67DA0976FE47DA04CE4F030982D1C808CE03 -S224FE23D4470339D49A26C3DBDCA2C1A0A2C19CB65300000000B65300000000CD4A35FEB641 -S224FE23F40310E8909A0333DA997BDCE3DFD493CFD4060076FE669A04CEE500C3DBDCA2C1C7 -S224FE2414A0A2C19CB65300000000B65300000000CD8831FEB60310E890DA04CEBF00A2C161 -S224FE2434A0A2C19CB6530000F03FB65300000000CDE831FEB60310E8909A51A2C1A0A2C12F -S224FE24549CB6530000F03FB65300000000CDE831FEB60310E8909A2DB65300002440B65326 -S224FE247400000000A2C1A0A2C19CCDF232FEB60310C3DBA2C3CBA0C3FB9E319C39DCE9B145 -S224FE249431DCBBB8D2FDD039DCBB4FA2C1A0A2C19CB65300002440B65300000000CD6E3202 -S224FE24B4FEB60310E8909A2DB6539999B93FB6539A999999A2C1A0A2C19CCDF232FEB603B4 -S224FE24D410C3DBA2C3CBA0C3FB9E319C39DCE9B131DCBBB8D2F5D039DC31DC997BDC76FEF2 -S224FE24F467DA0676FE479A7ED2FED039D493CFD40100D2C5D0DA05E954AB0BD2C5D09A1B72 -S224FE25149976D4FA1676FE679A0534FE657A76FE4792CFFE45E3FFD4BB4734FE660978C82E -S224FE253493C304A083C39C78C499830488A1F088A1F14D0100893F0000C9A3DA04D23707A9 -S224FE2554D2C5D09A0CC99BE971C3DAD4C96BBB11D2C5D0DA0CC99BA96FE971C3DAD4C96B60 -S224FE25740982D1C808C3CED0A2C114C3CED2C2CEFDC94EC2CEFEC3CED4A2C1A0A2C19CA2A2 -S224FE2594C108CFD902B6031CE9909A04CE7A01B891008E7AFC34FD204199B3C8C1A3F8B27B -S224FE25B409C3E3C8888BA2D3D630DEF3E1DA39D6F920D3DADE89A2C3E3A4CE4C0134FD20DF -S224FE25D478C84183C3CC33CE037ECC88FF0FA2D3D6C2FBDE7FD6F960D3DADEC1B2902E0A13 -S224FE25F48A0DD3DADE89E2C1B3802E37BB0BD3DADE89E2C1B3802E30E3FFD682E1CCFCE904 -S224FE2614B1E994FAC539D6E3FFD6A89334DE3A4199B3C8C1A3F8B409C3E3C883C3CC99B32E -S224FE2634CCC98BF9204DFF00893F0000C3E3CC037ECC88FF0FA2D3D6C2FBDE7FD6F960D37A -S224FE2654DADEC1B2902E0A8A0DD3DADE89E2C1B3802E37BB0BD3DADE89E2C1B3802E30E399 -S224FE2674FFD682E1CCFCE9B1E992FAC5051E0099BAD631DA39D6E9B1F920D3DADE89A2C3DD -S224FE2694E3A4CE8400476C009A12093914C99E0978C809C12309F2F4C8BB39E9929A2A0905 -S224FE26B43914C99E993E008099FF0000FFFFC97BC3E3B4C3F3B878C84181839133B4933393 -S224FE26D4B80409F2F4C8BB0C0978C849913B1409F2F4C899B30CF8B18E7AFC34FD20419950 -S224FE26F4B3C8C1A3F8B409C3E3C883C3A433DA93F6D4DADA1339DAC99EC1A391B2A4888BCE -S224FE2714DA06E3F1DABBE938D09B04CE480193F6D2DAFA04CE1501D2C0D0DA4A33D693F683 -S224FE2734DAD6BA1E99B3A4F2F1A4C1A301888B92C108E99F9A07B891008E7AFCE3F1D6BBD5 -S224FE2754DE33D639D299BADAC3E6D6FA04CED60005200092C108E99F9A07B891008E7AFC2C -S224FE2774E3F1D6BBDF39D8DA7576FD309A7033D693F6D8D6BA1E99B3A4F2F1A4C1A3018875 -S224FE27948B92C108E99F9A07B891008E7AFCE3F1D6BBDE33D639D299BADAC3E6D6BA1605EE -S224FE27B4300092C108E99F9A07B891008E7AFCE3F1D6BBE233D639DA99BAD8C3E6D6BA65D5 -S224FE27D499B3A4F2F1A4C1A301888B92C108E99F9A07B891008E7AFCE3F1D6BBDA33D639A1 -S224FE27F4D299BADAC3E6D6BA170198BBFD92C108E99F9A07B891008E7AFCE3F1D6BBE133D8 -S224FE2814D693F6DAD6BA1E99B3A4F2F1A4C1A301888B92C108E99F9A07B891008E7AFCE317 -S224FE2834F1D6BBDE93FBD2DABB2633D693F6DAD6BA1E99B3A4F2F1A4C1A301888B92C108A2 -S224FE2854E99F9A07B891008E7AFCE3F1D6BBDE0993F8DA1499B30CF8B18E7AFCEC208F780E -S224FE28740331EC31EED3DAE0A081D3DA0CA081CFA8047377E2FF079A06F9A18E1EFC03C187 -S224FE2894ABE9B1942FD90930473501FAF303C1ABE9B1942F0E0B30473501FAF3D3DAE0A0F1 -S224FE28B481B65380080000CFE00573D3DAE0A081CF970453C3DB12C3CB10C3FB0E310CF115 -S224FE28D4A03914E9B1C1A6BA29B65300002440B65300000000A2C110A2C10CCDF232FEB613 -S224FE28F40310C3DB12C3CB10C3FB0E310CE0B1BBD1D3DAE0A081D3DA0CA081CF1C0473B29E -S224FE2914D1F040D3DAF0A081AF1027D3DAF4A081B65380080000CF4707B6030EE990DA2C45 -S224FE2934F9E091BBF2E3F1F239F4F920B0130A00C98B073000C42BD90939F4F920B0130A21 -S224FE29540031F4E9F1E9D4FADABBB9D3DAE0A081B65380080000CF31057335F0400033F617 -S224FE2974D3DAF0A081AF1027D3DAF4A081B65380080000CFEA06B6030EE990DA5239F69A55 -S224FE29941D39F4F920B0130A00E9158A04D2F92339F4F920B0130A0031F4F9A34BF9A4F9C1 -S224FE29B4E0C9E6BABC91BBF6E3F1F6C96B39F4F920B0130A00C98B073000C42B0E0B39F4E8 -S224FE29D4F920B0130A0031F4E9F1C99BBBD4D2C123DA27037114BA1BC1AB942E0E0B399ADA -S224FE29F40C942F0E0B30E0B189ABBBE9E4310E0B89AB71149A04D2FA23D2C622DA29D2C27A -S224FE2A14229A2433EE93F6F6EEAB1091BBEE942E0E0B309A06E3F1EEBBEC39EEE9BF71F6F2 -S224FE2A349A0533EE33F6391499BAEEC3E8ECD2C223DA66761665DA067616459A1E56D909E8 -S224FE2A54399A1814D90931D2C522DA0AF3DF184AD2F522BB44E3F118BB3F0371F2BA1BC1B2 -S224FE2A74AB942ED909399A0C942FD90930E0B189ABBBE9E431D90989AB71F29A11E990DA47 -S224FE2A940DA2D3F214D90931E3F1F2BB0C39F29A0814D90931F3E1F239F2DA17E3FFF23914 -S224FE2AB4F2DB1091BBF2942ED909309A06E3FFF2BBEE39F2E9B1C3E8ECD2C4229A0BD2C1A7 -S224FE2AD4229A06D2C322DA07E3F1ECD2F823D2C422DA0DE3F1F2A2D3F214D9092DBB21D23B -S224FE2AF4C122DA0DE3F1F2A2D3F214D9092BBB10D2C322DA0BE3F1F2A2D3F214D90920E31A -S224FE2B14D014EB0FD2C622DA0A39F69A06D2C222DA0EE3D014AB06D2C222DA04E3F1EC7673 -S224FE2B341665DA067616459A6EF3E4F87FF8E3FFF83918C96BC99EB0530A00C98B0630A8FF -S224FE2B54D330FAC99BC99EB0530A0031184F9ADDE3D3F89A07F3E2F834FD30D2C522DA0D5D -S224FE2B7439F8E3FFF8A89334FA2DBB0B39F8E3FFF8A89334FA2B7616659A09A2D3F834FA09 -S224FE2B9465BB0C7616459A07A2D3F834FA45F9A599BAF8C3E8EC93F61CECFA04CE3A01D2B6 -S224FE2BB4C022DA5CC3CE22C3CE14C3CEF8C3CEEEC3CEF6C3CEF2D3DAFAA081B6530E0B0092 -S224FE2BD400B653D9090000C2CE16A2C108CFDC01B6031EE990DA06F9A18E1EFC33F6391C46 -S224FE2BF499BAECC3E6F6FA04CEE80005200092C108E99F9A06F9A18E1EFCE3F1F6BBE0D20B -S224FE2C14C023DA75761A309A7091BBF2E3FFF201A88BD90992C108E99F9A06F9A18E1EFCB4 -S224FE2C3433F6391C99BAECC3E6F6BA1505300092C108E99F9A06F9A18E1EFCE3F1F6BBE3F0 -S224FE2C54C3CE22C3CE14C3CEF8C3CEEEC3CEF6C3CEF2D3DAFAA081B6530E0B0000B653D927 -S224FE2C74090000C2CE16A2C108CF4001B6031EE990DA5FF9A18E1EFC33F6391C99BAECC3C8 -S224FE2C94E6F6BA160198BB1A92C108E99F9A06F9A18E1EFCE3F1F6BBE2C3CE22C3CE14C3BC -S224FE2CB4CEF8C3CEEEC3CEF6C3CEF2D3DAFAA081B6530E0B0000B653D9090000C2CE16A291 -S224FE2CD4C108CFE700B6031EE990DA06F9A18E1EFC93FB1CECBB39C3CE22C3CE14C3CEF881 -S224FE2CF4C3CEEEC3CEF6C3CEF2D3DAFAA081B6530E0B0000B653D9090000C2CE16A2C1084E -S224FE2D14CFA900B6031EE990DA06F9A18E1EFC0993F8EC1E038E1EFCEC008F2C780C7908BD -S224FE2D34F022D24707D9B8C22B01999B06E98B4DFF07C32B029993044DFFFF893F0F00C3C5 -S224FE2D5423048313088E34FCEC088F087808D20001D2D7FF08998B02C99E99F3FC88A110FD -S224FE2D7488A1044D0000893FF07F89FFFFFF897F0F80C9E5C945C3F3FC99830499F3FC4D0B -S224FE2D94FFFF893F0F0089FF0000897FF0FFC9E5C945C3F3FC93C308F8D3DAF8994B0699DC -S224FE2DB40B0499CB02898B8E10FCEC008F7C391A78087F1CE9909A0709760E30DA22E99028 -S224FE2DD4DB3FC96BC99EC1E391F20E01889B9081E99F9A06F9A18E3EFCE97FC99BBBE0D2FA -S224FE2DF4C225DA0F0531009081E99F9A14F9A18E3EFC0530009081E99F9A06F9A18E3EFC3D -S224FE2E14E3D022EB13D2C624DA0EE9D09A0AD2C2249A05038E3EFCE3D022AB06D2C224DA8D -S224FE2E340F052E009081E99F9A06F9A18E3EFCE3D022EB253922E9BF711EFA1D4FC99EC199 -S224FE2E54E391F21201889B9081E99F9A06F9A18E3EFCE9FFC9BBBBE1760C65DA06760C458E -S224FE2E749A22E3D420AB1D3920C99EC1E391F21601889B9081E99F9A06F9A18E3EFCE3F150 -S224FE2E9420BBE0038E3EFCDEEC0E8F7C780C034FE9B1C9DEC1F381F291F208F1604744000D -S224FE2EB4FAEE998B029A0E91C3049A0991C3089A048E3EFC932E02FF03BA048E3EFC7908BC -S224FE2ED4F3617E9983044DF0FF893F0F0088A1FCC36B80998B044D0F00E987E983C36B82F3 -S224FE2EF49983084D0000893FF0FF88A1EC999582C36B829983084DF0FF893F0F0088A1FCC2 -S224FE2F14C36B84998B084D0F00E987E983C36B86998B020FFF03C99EB053100031F6DA50CE -S224FE2F34034F99B8F6474400BA27C9BB99F8F6C9DEC9F299F208C1EBC99E83E3FAC1A3811D -S224FE2F54A291B20889BBC1F3811BE9B178FABBD299EE4400BA13C9BBC9DEC1F381F291F2D3 -S224FE2F7408F160E9B14FBBE939F6E983C32A02998B020FFF0331F6932F02FF03E990DA4013 -S224FE2F9405100099BAF631FA987BFAF9AFA9BE31F233FE054300C96BC99EC9A299B208C1BF -S224FE2FB4E389DB99FDF2C9BB987BFAA86FA9BE987BF6A17E9175FE31FEE97FC99B9BD87909 -S224FE2FD408999B86E98FE98B31F233F4999B84F92088A104C3E5F2C3C5F4999B82F9208877 -S224FE2FF4A114C3E5F2C3C5F4999B82E98FE98B31F633F8999B80F92088A104C3E5F6C3C5DB -S224FE3014F89333F6049333F20891C3049A0C91C3089A07F320028E3EFCE33F029983044DB8 -S224FE30340000893F0800C3E3F699830888A1F088A1F14D0100893F0000C9A3DA05B891010B -S224FE30545AB89100C3E3F282210801822104019335F2049335F40679F6DABF8E3EFCEC147A -S224FE30748F7C093912B2F1EC0809000093F308F033F4F9E0C9E6BA1EC96B99B3ECF2F2ECF9 -S224FE3094C1A3F12099B3F0F2F2F0C1A383C5F4E9F1C99BBBE07FF49A05038E3EFC93F308B0 -S224FE30B4F033F671F6EB1299F3F0F2F2F0C1B389CB9A06E3F1F6BBEC99BAF631F8E9833144 -S224FE30D4FA33FC35F4008039F64FC99EC9A299B208C3E3F04193FBF0FEF9A1C9F8F96088D5 -S224FE30F4F108090000C3F3ECF2FEECF9E0E9D0DA0509C3E5ECE3FFFADB39E9889A07050024 -S224FE311480F2F2EC7FF49A0D35F40080F2F2F04193FBF0FE7FFE99FDF4D9F2E3C8F4E3C0E0 -S224FE3134FCC3F5FC93F6FC10CBC293FA10FCF9E1BBBC39F6C9A8F92088B108090000C3E313 -S224FE3154EC93F308F00371F8BA1B99F3ECF2F2ECC1AB99B3F0F2F2F0C1E389ABC1B3814BD1 -S217FE3174E9B1BBE30993FBF8120993FBFC0CF9A18E3EFC6B -S224FE3188EC00C9CE39164DF07F9A093116311431123110390E4DF07F9A09310E310C310A86 -S224FE31A8310839107F08C9E69A3339127F0AC9E69A2B39147F0CC9E69A2339164DFF7F7F5A -S224FE31C80E89FFFF7FC9E69A1439167F0ED80701D86F8A060DF07F9A04F9A14A03B9EFFC3B -S224FE31E8EC00C9CE39164DF07F9A093116311431123110390E4DF07F9A09310E310C310A26 -S224FE3208310839167F0ED80701D86F8A1A0DF07F9A0C99FEF07F9A06F9A1CE4800D8070369 -S224FE3228D89000CE3F0039167F0E4DFF7F89FFFF7FC9E6DA04CE200039147F0CC9E6DA0481 -S224FE3248CE150039127F0AC9E6DA04CE0A0039107F08C9E6DA0C7F1601D86F03B9AED8982B -S20AFE32684BF9A1B9EFFCD4 -S224FE326EEC00C9CE39164DF07F9A093116311431123110390E4DF07F9A09310E310C310A9F -S224FE328E3108390E7F16D80701D86F8A190DF07F9A0B99FEF07F9A0503CE4700D84703D866 -S224FE32AE9008CE3E00390E7F164DFF7F89FFFF7FC9E6DA04CE2000390C7F14C9E6DA04CEFE -S224FE32CE1500390A7F12C9E6DA04CE0A0039087F10C9E6DA0C7F0E01D86F03B9AED8984A31 -S208FE32EE03B9EFFC32 -S224FE32F2EC2C93F314E893F310E493F30CF093F308ECD2C7EBD9B8D2C7F3D9F8C8B97FEA4D -S224FE3312E9CB89FFFF0730FE39F2E98B4DFF0799EEFF079A04CE9C0147FF079A04CE940152 -S224FE3332E9D09A04CEE101E9909A04CEDA01C9E8C3FBFC3FFCFF037DEA0F0075EA10007DA7 -S224FE3352F20F0075F210008FFC7FE499F4ECC3FBD4F9E0F1A039E699B4ECC96801C184B9F5 -S224FE3372DE39E499B4EEC96801C184B9DEC3DBD6F96039E899B4ECC1A801C9C4B95E39E6A0 -S224FE339299B4EEC1A801C9C4B95E39E499B4F0C1A801C9C4B95E83EBD8F1A039EA99B4EC34 -S224FE33B2C9E801C944B19E39E899B4EEC9E801C944B19E39E699B4F0C9E801C944B19E39DD -S224FE33D2E499B4F2C9E801C944B19EC3FBDAF9E039EA99B4EEC96801C184B9DE39E899B45C -S224FE33F2F0C96801C184B9DE39E699B4F2C96801C184B9DEC3DBDCF96039EA99B4F0C1A8B2 -S224FE341201C9C4B95E39E899B4F2C1A801C9C4B95E83EBDE39EA99B4F2C9E801C944C3FB59 -S224FE3432E0C3DBE2997BE0993BDE7FDC39DAE948A92EA9EEA9AEE948A92EA9EEA9AEE948E6 -S224FE3452A92EA9EEA9AE997EC0FFDA0CE948A92EA9EEA9AEE3F1FCE9B1B9DEB91EB95E9958 -S224FE34727EC0FFDA0CE948A92EA9EEA9AEE3F1FCE948A92EA9EEA9AEC3DBFAC3CBF8C3FB7C -S224FE3492F631F48E3F38FEE3D0FCEB7977FCFF07BA567FFCE9C389FFF07F7DFA0F80C3F581 -S224FE34B2FAD880D2D7FB02997BFA993BF87FF639F4FC7DEA0F007DF20F0099EEFF079A0D5F -S224FE34D2A2D1E8009A60A2D1E4009A5A47FF079A0DA2D1F0009A4FA2D1EC009A49E9D0DA22 -S224FE34F245E990DA4138FEB2D1F400B2D1F80075FAF07FD880D2D7FB02997BFA993BF87F81 -S224FE3512F639F4FC30FEB2D1F400B2D1F8007DFA0F8038FED880D2D7FB02997BFA993BF843 -S21CFE35327FF639F4FCB2D1F4FFB2D1F8FF997BFA993BF87FF639F4FC78 -S224FE354AEC00C9CE39164DF07F9A093116311431123110390E4DF07F9A09310E310C310AC0 -S224FE356A310839107F08C9E69A3239127F0AC9E69A2A39147F0CC9E69A2239164DFF7F7F97 -S224FE358A0E89FFFF7FC9E69A1339167F0ED80701D86F8A060DF07F9A03034BF9A1B9EFFC76 -S222FE35AA8F508FA0B9CF0CB94F0E01A9CF0189CFB9CF00B94F02C9E0C9B3538E0ADFF5 -S224FE35C8EC108F04F1E093FB0EF8DA7993FB0CFA93FB0AFC93FB08FEB2D1F000B2D1F400F3 -S224FE35E8D2C7F9CA169976F88B11A1CEE3C0FEB3EEFCB3EEFAB3EEF89BEC99BAFE01993622 -S224FE3608FC0199F6FA019976F8CA1299B8FE019934FC0199F4FA019974F8D3E8B3EEF6B389 -S224FE3628EEF4B3EEF2B3EEF0E3C8F8A3EEFAA3EEFCA3EEFEB1CE9BC339F6993BF47FF29951 -S224FE36487BF0BB6693FB0CF8DA1093FB0AFA93FB08FC33FE9D1000BB8093FB0AF8DA0F930E -S224FE3668FB08FA33FC33FE9D2000CE6DFF31F6C3CBF4C3FBF2C3DBF0F960F9E0F92039F090 -S224FE36889A0F39F29A1239F49A1439F69A17BB1A83CE08C96B39F283CE084F39F483CE0829 -S210FE36A8C1EB39F683CE08893B8E20FC71 -S224FE36B4EC088F04F1E093FB0EF8DA5B93FB0CFA93FB0AFC93FB08FED2C7F9CA169976F89D -S224FE36D48B11A1CEE3C0FEB3EEFCB3EEFAB3EEF89BEC99BAFE019936FC0199F6FA01997618 -S224FE36F4F8CA1299B8FE019934FC0199F4FA019974F8D3E8E3C8F8A3EEFAA3EEFCA3EEFE33 -S224FE3714B1CE9BCFBB6193FB0CF8DA1093FB0AFA93FB08FC33FE9D1000BB9E93FB0AF8DA4C -S224FE37340E93FB08FAB2D1FC009D2000BB8B31FEC3CBFCC3FBFAC3DBF8B8D100F92039F878 -S224FE37549A0F39FA9A1039FC9A1139FE9A12BB1783CE0839FA83CE0839FC83CE0839FE830A -S20DFE3774CE08C98BF9208E20FC5C -S224FE377EEC028F087808988B030C0EDA06F9AF8E10FC998B01DA0AF3200101888B8E10FCF6 -S224FE379EE31105DA04CE9C0092010731FE470D00DA16470A00DA11470800DA24471A00DAF6 -S224FE37BE39E99FDA50BB57A2110B00DA0D050D0092010B050A0092010B050A008E10FCA29E -S224FE37DE110B00DAC405080092010B05200092010B05080092010BBBB0A2110B00DA0D05E0 -S224FE37FE0D0092010B050A0092010B822F0304F9AF8E10FC822F0308F9AF8E10FCA2110B9A -S224FE381E00DA1B77FE2000BA10055E0092010B39FE07400092010B6A39FE92010B39FE8E12 -S218FE383E10FC92010731FEE99F9A05822F030839FE8E10FCEA -S224FE385202B0F100040000996F0000B80302B0F100040000996F0000B80302B0F1120400C6 -S224FE387200996F7605B80302B0F189090000996FBA02B80302B0F100000100996F0000B8DD -S224FE38920302B0F100000100996F0000B80302B0F100000001996F0000B80302B0F100009F -S224FE38B20001996F0000B80302B0F100000001996F0000B80302B0F100000001996F00001C -S224FE38D2B80302B0F100000001996F0000B80302B0F100000001996F0000B80302B0F100A7 -S224FE38F2000001996F0000B80302B0F100000001996F0000B803B0B13C03FE00B0F1000445 -S224FE39120000996F0000B083B0B13C03FE00B0F100040000996F0000B083B0B13C03FE003B -S224FE3932B0F100040000996F1200B083B0B14E03FE00B0F188090000996F0100B083B0B101 -S224FE395200000001B0F100000001996F0000B083B0B100000001B0F100000001996F000068 -S224FE3972B083B0B100000001B0F100000001996F0000B083B0B100000001B0F100000001BC -S224FE3992996F0000B083B0B100000001B0F100000001996F0000B083B0B100000001B0F195 -S224FE39B200000001996F0000B083B0B100000001B0F100000001996F0000B083B0B1000016 -S224FE39D20001B0F100000001996F0000B083B0B14F03FE00B0F100000100996F0000B08366 -S217FE39F2B0B14F03FE00B0F100000100996F0000B083DF52 -S224FE3A06D52F431700F6E20A00120400120A00D5AA8000D529431400D52A000400D1ECD542 -S224FE3A262A000400D3ECD52800FDFFCD5238FED529431400CD8019FED52B000000CD921812 -S211FE3A46FECF04009EDEF9A19AFDDFDE9E97 -S224FFFD007814FE007614FE007614FE007614FE007614FE007614FE007614FE007614FE009D -S224FFFD207A14FE007C14FE007E14FE008014FE008214FE008414FE008614FE008814FE0027 -S224FFFD408A14FE008C14FE008E14FE007614FE009014FE009214FE009414FE00EA09FE0060 -S224FFFD609614FE009814FE009A14FE009C14FE009E14FE00A014FE00A214FE00A414FE0007 -S224FFFD80A614FE00A814FE00AA14FE00AC14FE00AE14FE00B014FE00B214FE00B414FE0067 -S224FFFDA0B614FE00B814FE00BA14FE00BC14FE00BE14FE00C014FE00C214FE00C414FE00C7 -S224FFFDC0C614FE007614FE007614FE007614FE007614FE007614FE007614FE007614FE008F -S224FFFDE07614FE007614FE007614FE007614FE007614FE007614FE007614FE007614FE00BF -S224FFFFDC7614FE007614FE007614FE007614FE007614FE007614FE007614FE007614FE00C1 -S208FFFFFC063AFE00BF -S804000000FB diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.sni b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/hew_tst_sem1.sni deleted file mode 100644 index ed69ca689b4d034ce3e13fc95aacd9117244e484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15968 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

{BMmVXBAt)Ub?w9}BN(nICL9wJr0P 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 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.m32cc deleted file mode 100644 index 2d510fc7..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.m32cc +++ /dev/null @@ -1,14 +0,0 @@ --I"E:\projects\atomthreads-master\kernel" --I"E:\projects\atomthreads-master\tests" --I"E:\projects\atomthreads-master\ports\m32c" --D__STANDARD_IO__ --D__STACKSIZE__=0X800 --D__ISTACKSIZE__=0X300 --DVECTOR_ADR=0x0fffd00 --DATOM_STACK_CHECKING --DTESTS_LOG_STACK_USAGE --c --finfo --dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" --M82 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/intprg.r30 deleted file mode 100644 index 7a404f4253f51b0bea940880a21e79d020f45f3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13593 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 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.m32cc deleted file mode 100644 index 503c5121..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.m32cc +++ /dev/null @@ -1,14 +0,0 @@ --I"E:\projects\atomthreads-master\kernel" --I"E:\projects\atomthreads-master\tests" --I"E:\projects\atomthreads-master\ports\m32c" --D__STANDARD_IO__ --D__STACKSIZE__=0X800 --D__ISTACKSIZE__=0X300 --DVECTOR_ADR=0x0fffd00 --DATOM_STACK_CHECKING --DTESTS_LOG_STACK_USAGE --c --finfo --dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" --M82 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/resetprg.r30 deleted file mode 100644 index b0a96d074316f71b1525dd0da7cfd6cb36859818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4841 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 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.m32cc b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.m32cc deleted file mode 100644 index 9fb2936f..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.m32cc +++ /dev/null @@ -1,14 +0,0 @@ --I"E:\projects\atomthreads-master\kernel" --I"E:\projects\atomthreads-master\tests" --I"E:\projects\atomthreads-master\ports\m32c" --D__STANDARD_IO__ --D__STACKSIZE__=0X800 --D__ISTACKSIZE__=0X300 --DVECTOR_ADR=0x0fffd00 --DATOM_STACK_CHECKING --DTESTS_LOG_STACK_USAGE --c --finfo --dir "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" --M82 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\tests-main.c" diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.r30 b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug/tests-main.r30 deleted file mode 100644 index 308c69cae49aab318919bf3903e5a5599f3e1681..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16362 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 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug_M32C_Simulator/Debug_M32C_Simulator.hdp b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Debug_M32C_Simulator/Debug_M32C_Simulator.hdp deleted file mode 100644 index 3a85b1f44b96d3a0cad313fd1726cbcd5e7a97bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1748 zcmchYL2H9R5QT-Fdu^}&fk>*i-a=CdDWT9@1=*Ns+}3qBGqY`fNPlqGN+CiI6Ir4c zU6t?c5Z^YxeFsNs{$cVefz)w1Z@A0JHk`1v(%_ zX^&6CX^qn@V4(aRPZ4MXScE%H#hvLo0s%Wbh(yJ3+<1mB5zSr50^Mn*nnjvcQ#GAr zE<|6%is5z`P7fm5a_Y{8x$fs##IaL3X9in$;#faNko4<9Xg=MET-ZcF_FdeYA_87& gm|j1^f5OTtbsN!ynIe-diuui`$rluIxf>Vx58U=*1poj5 diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Release/Release.hdp b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Release/Release.hdp deleted file mode 100644 index d816f0a60c635d5caa307111c8f780937f667ac1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1722 zcmchYPfNo<5XA$Yz3MezprIx=Z$*Wo6ro-h%9>8i+Wps^iHe`zjZtWB(`9LLNR}l0 z-ag*ET-4S4`{7pj;NGDn6q1~wE`Z!(>3glq0EZrsjvvg7M1ml^3-Jrn)UD{?b3^ep z9Pf}e2)R&AV V%p{s>(af(VO}@aG%hzd<{{U=#Sh)ZI diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.hsf b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.hsf index e76cb597..d1f37a3d 100644 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.hsf +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.hsf @@ -114,7 +114,7 @@ "{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewBInstanceKey0" "{WK_00000001_REGISTERS}hew_tst_sem1SessionM32C_SimulatorViewB" "{98DFB68C-498C-4346-A6B8-C7260C534267}PDTraceCtrlViews" "0" "{99F424FE-E727-45AE-AE1F-11E29DEF272C}ECX_GuiIO_SAMPLING_RATE" "1000" -"{99F424FE-E727-45AE-AE1F-11E29DEF272C}PDGuiIOCtrlPDGuiIOLastSaveDirectory" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\led.pnl" +"{99F424FE-E727-45AE-AE1F-11E29DEF272C}PDGuiIOCtrlPDGuiIOLastSaveDirectory" "C:\atomthreads\ports\m32c\hew_tests\led.pnl" "{99F424FE-E727-45AE-AE1F-11E29DEF272C}PDGuiIOCtrlViews" "1" "{99F424FE-E727-45AE-AE1F-11E29DEF272C}PDGuiIOWndInstanceKey0" "{WK_00000001_PDGUIIO}hew_tst_sem1SessionM32C_Simulator" "{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_ADDRESS_NAME" "" @@ -210,8 +210,8 @@ [WINDOW_POSITION_STATE_DATA_VD3] [WINDOW_POSITION_STATE_DATA_VD4] [WINDOW_Z_ORDER] -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" +"C:\atomthreads\kernel\atomkernel.c" +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" [TARGET_NAME] "M32C Simulator" "" 0 [STATUSBAR_STATEINFO_VD1] diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.ini b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.ini index 6843984d..f37b7d93 100644 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.ini +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/SessionM32C_Simulator.ini @@ -3,7 +3,7 @@ FMT=5 OMF=14 DISP_DA_FMT=1 HIDE=0 -LOADFILE=E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\hew_tst_sem1.x30 +LOADFILE=C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug\hew_tst_sem1.x30 LOADMODE=4 [MCU] PATH=C:\Program Files (x86)\Renesas\Hew\Tools\Renesas\DebugComp\Platform\PDTarget\PD308SIM\McuFiles\M32c8x.mcu diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.hwp b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.hwp index 01ac5953..a8a19f4c 100644 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.hwp +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.hwp @@ -3,15 +3,15 @@ [DATABASE_VERSION] "2.8" [PROJECT_DETAILS] -"hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\hew_tst_sem1.hwp" "M16C/80,M32C" "Renesas M32C Standard" "C source startup Application" "M32C/80" "M32C/80" +"hew_tst_sem1" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\hew_tst_sem1.hwp" "M16C/80,M32C" "Renesas M32C Standard" "C source startup Application" "M32C/80" "M32C/80" [INFORMATION] "No project information available" [TOOL_CHAIN] "Renesas M32C Standard Toolchain" "5.42.00" [CONFIGURATIONS] -"Debug" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" -"Debug_M32C_Simulator" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug_M32C_Simulator" -"Release" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Release" +"Debug" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug" +"Debug_M32C_Simulator" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Debug_M32C_Simulator" +"Release" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\Release" [BUILD_PHASES] "Renesas M32C Assembler" 1 "Renesas M32C C Compiler" 1 @@ -104,29 +104,29 @@ "Relocatable file" "Renesas M32C Linker" "Renesas M32C Assembler" "Relocatable file" "Renesas M32C Linker" "Renesas M32C C Compiler" [PROJECT_FILES] -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atom.h" "User" "C header file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atommutex.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atommutex.h" "User" "C header file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomport-template.h" "User" "C header file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomqueue.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomqueue.h" "User" "C header file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.h" "User" "C header file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.h" "User" "C header file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport-asm.A30" "User" "Assembly source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport-tests.h" "User" "C header file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.h" "User" "C header file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\stdint.h" "User" "C header file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\tests-main.c" "User" "C source file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\tests\atomtests.h" "User" "C header file" 2 -"E:\projects\atomthreads pull request\atomthreads-master\tests\sem1.c" "User" "C source file" 2 +"C:\atomthreads\kernel\atom.h" "User" "C header file" 2 +"C:\atomthreads\kernel\atomkernel.c" "User" "C source file" 2 +"C:\atomthreads\kernel\atommutex.c" "User" "C source file" 2 +"C:\atomthreads\kernel\atommutex.h" "User" "C header file" 2 +"C:\atomthreads\kernel\atomport-template.h" "User" "C header file" 2 +"C:\atomthreads\kernel\atomqueue.c" "User" "C source file" 2 +"C:\atomthreads\kernel\atomqueue.h" "User" "C header file" 2 +"C:\atomthreads\kernel\atomsem.c" "User" "C source file" 2 +"C:\atomthreads\kernel\atomsem.h" "User" "C header file" 2 +"C:\atomthreads\kernel\atomtimer.c" "User" "C source file" 2 +"C:\atomthreads\kernel\atomtimer.h" "User" "C header file" 2 +"C:\atomthreads\ports\m32c\atomport-asm.A30" "User" "Assembly source file" 2 +"C:\atomthreads\ports\m32c\atomport-tests.h" "User" "C header file" 2 +"C:\atomthreads\ports\m32c\atomport.c" "User" "C source file" 2 +"C:\atomthreads\ports\m32c\atomport.h" "User" "C header file" 2 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "User" "C source file" 2 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "User" "C source file" 2 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "User" "C source file" 2 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "User" "C source file" 2 +"C:\atomthreads\ports\m32c\stdint.h" "User" "C header file" 2 +"C:\atomthreads\ports\m32c\tests-main.c" "User" "C source file" 2 +"C:\atomthreads\tests\atomtests.h" "User" "C header file" 2 +"C:\atomthreads\tests\sem1.c" "User" "C source file" 2 [FOLDER] "Assembly source file" "Assembly source file" "C header file" "C header file" @@ -136,27 +136,27 @@ [ON_DEMAND_COMPONENTS_LOADED] [SYNC_SESSION_NAMES] [SESSIONS] -"DefaultSession" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\DefaultSession.hsf" 0 -"SessionM32C_Simulator" "E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\SessionM32C_Simulator.hsf" 0 +"DefaultSession" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\DefaultSession.hsf" 0 +"SessionM32C_Simulator" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\SessionM32C_Simulator.hsf" 0 [GENERAL_DATA_SESSION_DefaultSession] [GENERAL_DATA_SESSION_SessionM32C_Simulator] [OPTIONS_Debug_Renesas M32C Assembler] "Assembly source file" "00ab06e22b33fc10" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport-asm.A30" "08e4f9442b33fc10" 2 +"C:\atomthreads\ports\m32c\atomport-asm.A30" "08e4f9442b33fc10" 2 [OPTIONS_Debug_Renesas M32C C Compiler] -"C source file" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atommutex.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomqueue.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\tests-main.c" "0d0c6cf52b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\tests\sem1.c" "0d0c6cf52b33fc10" 1 +"C source file" "09993d82b193fc10" 1 +"C:\atomthreads\kernel\atomkernel.c" "09993d82b193fc10" 1 +"C:\atomthreads\kernel\atommutex.c" "09993d82b193fc10" 1 +"C:\atomthreads\kernel\atomqueue.c" "09993d82b193fc10" 1 +"C:\atomthreads\kernel\atomsem.c" "09993d82b193fc10" 1 +"C:\atomthreads\kernel\atomtimer.c" "09993d82b193fc10" 1 +"C:\atomthreads\ports\m32c\atomport.c" "09993d82b193fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "09993d82b193fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "09993d82b193fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "09993d82b193fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "09993d82b193fc10" 1 +"C:\atomthreads\ports\m32c\tests-main.c" "09993d82b193fc10" 1 +"C:\atomthreads\tests\sem1.c" "09993d82b193fc10" 1 [OPTIONS_Debug_Renesas M32C Configurator] "Single Shot" "03825b772b33fc10" 6 [OPTIONS_Debug_Renesas M32C Librarian] @@ -172,28 +172,28 @@ "[V|VERSION|1] [B|STARTUPLINK|1] [B|DEBUG|1] [B|MAP-S|1] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).x30^"] [S|INPUTLIBRARY|^"L=nc382lib^"] [S|CPU|M32C80] [S|SECTION_ORDER|^"data_SE=400,bss_SE,data_SO,bss_SO,data_NE,bss_NE,data_NO,bss_NO,stack,istack,heap_NE,rom_NE,rom_NO,data_6E=010000,bss_6E,data_6O,bss_6O,data_FE,bss_FE,data_FO,bss_FO,rom_FE=0fe0000,rom_FO,data_SEI,data_SOI,data_6EI,data_6OI,data_NEI,data_NOI,data_FEI,data_FOI,switch_table,program,interrupt,program_S,vector=0fffd00^"] " 3 "[V|VERSION|1] [S|LIST|LM] [B|INSPECTOR|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).r30^"] [S|CPU|M32C80] " 2 "[V|VERSION|1] [S|MODE|CREATE|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] " 5 -"[V|VERSION|2] [S|INCLUDE|^"E:\projects\atomthreads-master\kernel^"|^"E:\projects\atomthreads-master\tests^"|^"E:\projects\atomthreads-master\ports\m32c^"] [S|DEFINE|__STANDARD_IO__|__STACKSIZE__=0X800|__ISTACKSIZE__=0X300|VECTOR_ADR=0x0fffd00|ATOM_STACK_CHECKING|TESTS_LOG_STACK_USAGE] [S|OUTPUT|OBJECTCODE] [B|INSPECTOR|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).r30^"] [S|CPU|M32C80] +"[V|VERSION|2] [S|INCLUDE|^"C:\atomthreads\ports\m32c^"|^"C:\atomthreads\tests^"|^"C:\atomthreads\kernel^"] [S|DEFINE|__STANDARD_IO__|__STACKSIZE__=0X800|__ISTACKSIZE__=0X300|VECTOR_ADR=0x0fffd00|ATOM_STACK_CHECKING|TESTS_LOG_STACK_USAGE] [S|OUTPUT|OBJECTCODE] [B|INSPECTOR|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).r30^"] [S|CPU|M32C80] " 1 [EXCLUDED_FILES_Debug] [LINKAGE_ORDER_Debug] [GENERAL_DATA_CONFIGURATION_Debug] [OPTIONS_Debug_M32C_Simulator_Renesas M32C Assembler] "Assembly source file" "00ab06e22b33fc10" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport-asm.A30" "08e4f9442b33fc10" 2 +"C:\atomthreads\ports\m32c\atomport-asm.A30" "08e4f9442b33fc10" 2 [OPTIONS_Debug_M32C_Simulator_Renesas M32C C Compiler] "C source file" "00ab06e22b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" "0c3547e32b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atommutex.c" "0c3547e32b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomqueue.c" "0c3547e32b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.c" "0c3547e32b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.c" "0c3547e32b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.c" "08e4f9442b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "00ab06e22b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "00ab06e22b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "00ab06e22b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "00ab06e22b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\tests-main.c" "08e4f9442b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\tests\sem1.c" "004e82b42b33fc10" 1 +"C:\atomthreads\kernel\atomkernel.c" "0c3547e32b33fc10" 1 +"C:\atomthreads\kernel\atommutex.c" "0c3547e32b33fc10" 1 +"C:\atomthreads\kernel\atomqueue.c" "0c3547e32b33fc10" 1 +"C:\atomthreads\kernel\atomsem.c" "0c3547e32b33fc10" 1 +"C:\atomthreads\kernel\atomtimer.c" "0c3547e32b33fc10" 1 +"C:\atomthreads\ports\m32c\atomport.c" "08e4f9442b33fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "00ab06e22b33fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "00ab06e22b33fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "00ab06e22b33fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "00ab06e22b33fc10" 1 +"C:\atomthreads\ports\m32c\tests-main.c" "08e4f9442b33fc10" 1 +"C:\atomthreads\tests\sem1.c" "004e82b42b33fc10" 1 [OPTIONS_Debug_M32C_Simulator_Renesas M32C Configurator] "Single Shot" "03825b772b33fc10" 6 [OPTIONS_Debug_M32C_Simulator_Renesas M32C Librarian] @@ -215,21 +215,21 @@ [GENERAL_DATA_CONFIGURATION_Debug_M32C_Simulator] [OPTIONS_Release_Renesas M32C Assembler] "Assembly source file" "00ab06e22b33fc10" 2 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport-asm.A30" "08e4f9442b33fc10" 2 +"C:\atomthreads\ports\m32c\atomport-asm.A30" "08e4f9442b33fc10" 2 [OPTIONS_Release_Renesas M32C C Compiler] "C source file" "00ab06e22b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomkernel.c" "0c3547e32b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atommutex.c" "0c3547e32b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomqueue.c" "0c3547e32b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomsem.c" "0c3547e32b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\kernel\atomtimer.c" "0c3547e32b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\atomport.c" "08e4f9442b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "00ab06e22b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "00ab06e22b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "00ab06e22b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "00ab06e22b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\ports\m32c\tests-main.c" "08e4f9442b33fc10" 1 -"E:\projects\atomthreads pull request\atomthreads-master\tests\sem1.c" "004e82b42b33fc10" 1 +"C:\atomthreads\kernel\atomkernel.c" "0c3547e32b33fc10" 1 +"C:\atomthreads\kernel\atommutex.c" "0c3547e32b33fc10" 1 +"C:\atomthreads\kernel\atomqueue.c" "0c3547e32b33fc10" 1 +"C:\atomthreads\kernel\atomsem.c" "0c3547e32b33fc10" 1 +"C:\atomthreads\kernel\atomtimer.c" "0c3547e32b33fc10" 1 +"C:\atomthreads\ports\m32c\atomport.c" "08e4f9442b33fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c" "00ab06e22b33fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c" "00ab06e22b33fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c" "00ab06e22b33fc10" 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" "00ab06e22b33fc10" 1 +"C:\atomthreads\ports\m32c\tests-main.c" "08e4f9442b33fc10" 1 +"C:\atomthreads\tests\sem1.c" "004e82b42b33fc10" 1 [OPTIONS_Release_Renesas M32C Configurator] "Single Shot" "03825b772b33fc10" 6 [OPTIONS_Release_Renesas M32C Librarian] diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.nav b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.nav index 8167a30dd38cef028619761caedbb5445411370b..95b2152548bb99951ad221f302978edb96b593a1 100644 GIT binary patch literal 36695 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 z Date: Thu, 6 Mar 2014 09:32:46 -0600 Subject: [PATCH 4/6] Removed unnecessary log files --- ports/m32c/atomport.c | 2 +- .../hew_tst_sem1/hew_tst_sem1/Comm.log | 31 -------------- .../hew_tst_sem1/hew_tst_sem1/Readme.txt | 40 ------------------- 3 files changed, 1 insertion(+), 72 deletions(-) delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log delete mode 100644 ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Readme.txt diff --git a/ports/m32c/atomport.c b/ports/m32c/atomport.c index 2aa9526f..a0c842a9 100644 --- a/ports/m32c/atomport.c +++ b/ports/m32c/atomport.c @@ -273,4 +273,4 @@ void init_pin_P0_0(void) void toggle_pin_P0_0(void) { P0 ^= 1 << 0; -} \ No newline at end of file +} diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log deleted file mode 100644 index 9209a895..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Comm.log +++ /dev/null @@ -1,31 +0,0 @@ -[CommunicationLog] -R [002C5551] : 0 -S [002C5551] : (4100020000200) -R [002C5551] : 0 -S [002C5551] : (53) -R [002C5531] : 000 -S [002C5531] : (7D) -R [002C5531] : 002000080001 -S [002C5531] : (75) -R [002C5531] : 0FFFF800100000000 -S [002C5531] : (78) -R [002C5531] : 0400000FE05A6 -S [002C5531] : (34) -R [002C5531] : 010000000000FE05A6 -S [002C5531] : (35) -R [002C54B5] : 0 -S [002C54B5] : (53) -R [002C5447] : 0 -S [002C5447] : (53) -R [002C5419] : 000 -S [002C5419] : (7D) -R [002C5419] : 002000080001 -S [002C5419] : (75) -R [002C5419] : 0FFFF800100000000 -S [002C5419] : (78) -R [002C5419] : 0400000FE05A6 -S [002C5419] : (34) -R [002C5419] : 010000000000FE05A6 -S [002C5419] : (35) -R [002C5419] : 00001111100003333000989A1A1A10008403B3B3B000000000000000000000000000000000000040000082E00174300C0FE05A6FFFD000000000000000000000000000000000000000000000000000000000000000000000000000000 -S [002C5419] : (40) diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Readme.txt b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Readme.txt deleted file mode 100644 index 67024d4f..00000000 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/Readme.txt +++ /dev/null @@ -1,40 +0,0 @@ --------- PROJECT GENERATOR -------- -PROJECT NAME : hew_tst_sem1 -PROJECT DIRECTORY : E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1 -CPU SERIES : M32C/80 -CPU GROUP : 80 -TOOLCHAIN NAME : Renesas M32C Standard Toolchain -TOOLCHAIN VERSION : 5.42.00 -GENERATION FILES : - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\typedefine.h - define scalar types. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c - initialize for C language. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.h - include some headder files. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.c - initialize each sections. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\initsct.h - define the macro for initialization of sections. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\stackdef.h - define the size of stack. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\fvector.c - define the fixed vector table. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\vector.h - define the top address of the interrupt vectors. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\cregdef.h - define the internal registers of MCU. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\sfr32c80.h - define the sfr register. (for C language) - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\sfr32c80.inc - define the sfr register. (for Assembler language) - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\heapdef.h - initialize the heap area. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\intprg.c - interrupt program. - E:\projects\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\hew_tst_sem1.c - main program file. - -SELECT TARGET : - M32C Simulator -DATE & TIME : 2/27/2014 11:51:11 AM From 91e6eb2f059fec8a365b8d62abe25571278adccf Mon Sep 17 00:00:00 2001 From: Juan Angel Hdez Date: Thu, 6 Mar 2014 09:35:22 -0600 Subject: [PATCH 5/6] HEW project files were automatically updated when testing before commit --- .../hew_tests/hew_tst_sem1/hew_tst_sem1.tws | 4 ++-- .../hew_tst_sem1/hew_tst_sem1.nav | Bin 36695 -> 36695 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws index 93a73342..5f750ff6 100644 --- a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws +++ b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1.tws @@ -10,8 +10,8 @@ "C:\atomthreads\kernel\atomkernel.c" "C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" [WORKSPACE_FILE_STATES] -"C:\atomthreads\kernel\atomkernel.c" -8 -30 1114 570 1 1 -"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" 0 0 1114 570 0 0 +"C:\atomthreads\kernel\atomkernel.c" 0 0 1114 570 0 1 +"C:\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1\resetprg.c" -8 -30 1114 570 1 0 [LOADED_PROJECTS] "hew_tst_sem1" [END] diff --git a/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.nav b/ports/m32c/hew_tests/hew_tst_sem1/hew_tst_sem1/hew_tst_sem1.nav index 95b2152548bb99951ad221f302978edb96b593a1..f6eded40294c6e37c17a95c1df05b5c9e87c9896 100644 GIT binary patch delta 3107 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 From 3af408ba47107008ebc7c5f647a1a7799aa6403e Mon Sep 17 00:00:00 2001 From: Juan Angel Hdez Date: Thu, 6 Mar 2014 09:48:29 -0600 Subject: [PATCH 6/6] Added corrections to the README file --- ports/m32c/README | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/ports/m32c/README b/ports/m32c/README index f3c540d2..e3b6961e 100644 --- a/ports/m32c/README +++ b/ports/m32c/README @@ -39,11 +39,23 @@ FILES IN THE m32c port folder PREREQUISITES -The port works out-of-the-box with the Renesas HEW tools. +The port works with the Renesas HEW tools. Tools: *High-performance Embedded Workshop (HEW) V 4.09.00.007 *M3T-NC308WA compiler. +Since Renesas HEW only works with absolute paths, if you cloned this repository +to c: the code will compile and load without doing any extra steps. +If you cloned to another different path do the following: +-Click on Build->Renesas M32C standard toolchain, a window shall show up. +-On the C tab, select: + Category: Source, + Show entries For: Include file directories +Click add, and add the following paths: + -\your clone path\atomthreads\kernel + -\your clone path\atomthreads\tests + -\your clone path\atomthreads\ports\m32c + --------------------------------------------------------------------------- BUILDING AND PROGRAMMING TO THE TARGET DEVICE @@ -51,7 +63,7 @@ BUILDING AND PROGRAMMING TO THE TARGET DEVICE In this port the target is a simulator. But you can also change the target and download the code to a development kit. Open the file: -\atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws +\atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws Click Ok on the Init window Click Build->Build All @@ -68,25 +80,25 @@ the led can show up. *Virtual Timer Interrupt: The virtual interrupt is set in View->CPU->I/O Timing Setting. Defaults for this port: - -Interval: 10 msec - -Vector 23 (timer B2) - -Priority: 1 (Possible values are 0-7) + -Interval: 10 msec + -Vector 23 (timer B2) + -Priority: 1 (Possible values are 0-7) *Virtual UART: The virtual UART is set in View->CPU->OutputPort Then click on the "Set" icon. Defaults for this port: - -Printf - UART1 - -Output Format: - *Window TEXT - *File TEXT + -Printf - UART1 + -Output Format: + *Window TEXT + *File TEXT *Virtual LED: The virtual LED is set in View->Graphic->GUI I/O Click on the folder icon that says "Load" when you do a mouseover. Open the file called led.pnl The path of the led.pnl file is: - \atomthreads-master\ports\m32c\hew_tests\led.pnl + \atomthreads\ports\m32c\hew_tests\led.pnl --------------------------------------------------------------------------- @@ -106,7 +118,7 @@ sem1.c and then add any other test file to the project. Example 1. Test results with a breakpoint: --Open: \atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws +-Open: \atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws -Click Ok on the Init window -Click Build->Build All -The code will automatically be loaded into the simulator target. @@ -115,13 +127,13 @@ Example 1. Test results with a breakpoint: UART, test result output. Example 2. Test results with a virtual led flashing: --Open: \atomthreads-master\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws +-Open: \atomthreads\ports\m32c\hew_tests\hew_tst_sem1\hew_tst_sem1.hws -Click Ok on the Init window -Click Build->Build All -The code will automatically be loaded into the simulator target. -On the View->Graphic->GUI I/O window click on the folder icon called "Load" and open the led.pnl file. The path of the led.pnl file is: - \atomthreads-master\ports\m32c\hew_tests\led.pnl + \atomthreads\ports\m32c\hew_tests\led.pnl -Click on Debug->Reset Go. When the test finishes you shall see the led flash. -When the led is flashing click "Stop" in the simulator and the virtual UART output will print the result of the test.