This Cmicro tutorial takes you through the first steps of targeting using Cmicro.
Currently this tutorial is designed for using a Borland C++ 5.02 or a Microsoft Visual C++ 5.0 compiler in Windows, and any C++ compiler available on UNIX.
It is assumed that Telelogic Tau is already installed on your PC running Windows 95/NT4.0, or on your UNIX workstation running SunOS 5.5 or HP-UX 10.20. This tutorial will not work on any other systems.
Before you run this tutorial, you should be familiar with the SDT tools, especially the Organizer, the Analyzer and the Simulator. If you have not already done so, you are recommended to go through the previous tutorials in this volume.
The following notations and directories concern the rest of this tutorial:
<TAUinstallation>
denotes the Telelogic Tau installation directory, which is called <systemdrive>:\tau3
5
in Windows and $telelogic
on UNIX.<TAUinstallation>\sdt\examples\cmicrotutorial\wini386
<TAUinstallation>/sdt/examples/cmicrotutorial/sunos5
<TAUinstallation>/sdt/examples/cmicrotutorial/hppa
<TAUinstallation>\sdt\sdtdir\wini386\cmicro
<TAUinstallation>/sdt/sdtdir/sunos5sdtdir/cmicro
<TAUinstallation>/sdt/sdtdir/hppasdtdir/cmicr
o
In the first part of this tutorial you will generate an already designed system. All configurations have already been done. This part starts with Generating the Executable.
In the second part, you will design a new system, generate it with the SDT Analyzer, configure it with the Cmicro Bodybuilder (including creation of environment functions) and run the target as an application in a command shell. This part starts with Creating Your Own Target System.
Targeting may be implemented using the following methods:
The Cmicro Package is mainly designed to work in bare integrations but can be simply adapted to OSs and executed as light integrations.
For tight integrations the effort depends on the operating system in use.
In this tutorial you will be doing a light integration as the target executable is executed as independent OS tasks, where the SDL processes are scheduled by the Cmicro Kernel.
The SDL system that will be used for the first part of this tutorial is an AccessControl System that controls four doors. An administrator has got a master card and uses this card to register cards along with an associated PIN (Personal Identity Number).
To register a card, the administrator inserts his card via the control panel and enters the PIN 0 0 0 0. Now the user can insert his own card and enter a private PIN. The users card and PIN are then registered and it is allowed to open one of the four doors.
The SDL Overview shows the access system divided into blocks and processes.
Figure 272 : An overview of the system Access
|
The files needed for the first part of this tutorial can be found in the following directories:
<TAUinstallation>\sdt\examples
\
cmicrotutorial
\wini386
\door_acc
<TAUinstallation>/sdt/examples/
cmicrotutorial/sunos5/door_acc
(for SunOS 5), or <TAUinstallation>/sdt/examples/cmicrotutorial/hppa/
door_acc (
for HP-UX).
The project directory door_acc
is divided into directories called system
and target
. The directory system
contains the SDL-GR files of the Access Control system. The files located in the target
directory are listed below.
To generate an executable in Windows you need following files, located in the make_bc
and make_cl
directory of the cmicrotutorial\wini386
directory, for the Borland C++ and the Microsoft Visual C++ compiler.
File | Description |
---|---|
make.opt |
Configuration for the project (Cmicro path, compiler flags) |
comp.opt |
make template for the generator |
File | Description |
---|---|
makeoptions |
Configuration for the project (Cmicro path, compiler flags) |
You will now generate an executable for the already designed Access Control system.
cmicrotutorial
in your home directory or on your local hard disk. This directory will be denoted by <MyTutorial>
in the following. <TAUinstallation>/sdt/examples/
cmicrotutorial/<platform>/door_acc
(including all files and subdirectories) to your new <MyTutorial>
directory and remove any write protections. make.opt
and comp.opt
from the directory <TAUinstallation>\sdt
\
e
xamples\
c
microtutorial
\wini386\
make_bc
into your target directory. <TAUinstallation>\
sd
t\examples\
cmicrotutorial\wini386\make_cl
directory into your target directory.<MyTutorial>/door_acc/system
.The following steps are necessary to ensure that the tutorial works properly.
The Cmicro Bodybuilder needs the files access.sym
, access.ifc
and sdl_cfg.h
(generated by the Cmicro Code Generator) to configure the Cmicro Library. To generate these files, do as follows:
access.c
<
MyTutorial>/door_acc/target
. <MyTutorial>/door_acc/target
because you have to use the comp.opt
file from the target directory of your example system.When the make process has finished, you will have the files necessary to configure the Cmicro Library and the Cmicro Tester.
<MyTutorial>\door_acc\target\access.exe
(in Windows), or <MyTutorial>/door_acc/target/access
(on UNIX).Before you compile your system you have to modify the file make.opt
(in Windows) or makeoptions
(on UNIX).
make.opt
or makeoptions
if not already done. sctLDFLAGS
for your hosttype. Also modify the macro sctLINKKERNEL
to use sctLINKTARGET_WITH_TESTER
.
Note: Make sure that you are using a C++ compiler because you are linking C++ objects from the Cmicro Postmaster Library. |
COMPILER_DIR
and CMICRO_DIR
in the file make.opt
. Also modify the macro sctLINKKERNEL
to use sctLINKTARGET_WITH_TESTE
R
.
Note: Make sure that you can use your compiler with an external tool like the Telelogic Tau package (binaries, include path, lib path, etc. of your compiler may need to be added to your environment). |
access.exe
in Windows, or access
on UNIX, respectively.
Figure 273 : The Telelogic SDL Make Dialog
|
The difference compared to the SDT Simulator is that the generated SDL system is running on a target hardware and is sending messages to the host system on which the SDT Cmicro Tester's host part is running.
In this Cmicro tutorial, the SDT Cmicro Tester's host part is running on the host as well as the generated SDL system (target). Therefore, from the host's point of view, the target is running as a gateway (to be able to establish a communications link to the Cmicro Tester's host part via the Cmicro Postmaster).
Figure 274 : Communication links between the processes
|
It is possible to use all the features supported by Cmicro (e.g. signal priorities, error checks, tester) except the preemptive Cmicro Kernel. This is due to the concept behind Cmicro which is designed for small targets on a stand-alone hardware (bare integration).
There are a few Cmicro Tester commands which make no sense for a light integration:
shutdown
: This command simply exits the target. On small embedded systems this is used to exit and restart the target executable. There will be no reason to exit the target executable used here in this way.reinit
: The first idea is to re-initialize the target systems. But to work correctly it is necessary to have a separation between RAM and ROM memory. This means that on small embedded systems the program code is stored in the ROM and copied into the RAM and not duplicated during start-up time.
Note: The Cmicro Tester is intentionally designed for testing a hardware connected to a host machine. |
The Cmicro Tester has a user interface similar to the SDT Simulator. You are assumed to be familiar with this user interface. For more information, see Tutorial: The SDT Simulator.
sdtmtui
. You have to start the Cmicro Tester in a shell because your target sends and receives messages from this console.The Cmicro Tester is forking the target access
or access.exe
in the directory you selected in the Bodybuilder's Host box. Now you can test the access system.
access
or access.exe
by pushing the button Start-Com in the Access Control group or in the Communication group. Start with "Go Forever"
. The appropriate button is located in the Execute group.The Cmicro Tester has button groups. Each button represents a Tester command. You can use the buttons to enter a command or the command line at the bottom of the Tester. If you enter help
in the command line you will see a list of Cmicro Tester commands.
In the following some Tester commands are explained briefly. For more information, see The Cmicro Tester.
Similar to the SDT Simulator GUI it is possible to generate MSC traces while testing the system with the Cmicro Tester.
It is possible to trace the target system with the SDL Editor.
start-sdle
, or by using the button Start SDLE.The MSC trace and SDL trace functions are powerful tools for understanding the system.
To get more information about target configuration, you must open the Configuration Group in the button area of the Cmicro Tester. Now you can press Target to get the current target configuration.
To get information about the kernel, you have to open the View group. If you press Queue you will get information about the current state of the internal queue of your system. You will see the peek hold and the amount of signals of your current system. By pressing the other buttons in the View group, you will get more information of the running system.
To debug the system you can use the Breakpoints button group. You can set a breakpoint on a signal input or a process state. If a breakpoint was reached you can continue the system with the button Continue.
In the Systemcontrol group it is possible to test the system with single steps. To switch into single step mode use Single-Step; to exit this mode use Exit-Single-Step.
In the second part of this tutorial, you will now design a new system, generate it with the SDT Analyzer, configure it with the Cmicro Bodybuilder (inclusive creation of environment functions) and run the target as an application in a command shell.
When you start a new project, it is recommended to keep the SDL files and the generated files in separate directories.
Thus the following scenario shows how a typical project might be partitioned.
Figure 275 : Directory structure
|
The SDL system should be stored in <My_SDL_System>
, and the generated system in the directory <My_Cmicro_Target>
.
Note: For any Cmicro project you have to create a new directory, because some tools create files (e.g. |
Now you can design a new SDL system or take an already created and tested system.
In the following sections the way of targeting a delivered system is described, as it is sometimes necessary to have references to some signal names in the explanation. The directories <My_SDL_System>
and <My_Cmicro_Target>
will be named system
and target,
and <My_Cmicro_Project>
will be named calcul
.
The calculator example may be found in the following directories:
<TAUinstallation>\sdt\examples\cmicrotutorial\wini386 <TAUinstallation>/sdt/examples/cmicrotutorial/hppa <TAUinstallation>/sdt/examples/cmicrotutorial/sunos5
Note: Timers are differently realized within the SDT Simulator where timers always have ticks of one second. |
This section uses the supplied SDL Calcul system to show you how to create your own target system.
Figure 276 : System view of Calcul
|
The simple calculator given receives two integer values (0, 1, 2,...9). The user can then apply common mathematical functions such as addition, subtraction, etc. to these integer values.
<TAUinstallation>/sdt/examples/
cmicrotutorial/<hosttype>/calcul
(including all files and subdirectories) to your <MyTutorial>
directory. <MyTutorial>/calcul/system
, and take a little time to become familiar with it. When the design is finished the system can be simulated using the SDT Simulator to debug the system and ensure that all the logic is correct and does what it sets out to do. When the debugging is done you can start the targeting with the Cmicro Package.
Figure 277 : Make dialog to generate a Cmicro system
|
To generate the system you must:
<MyTutorial>/
calcul/target.
Note: If the message "Max number of instances must be specified" is printed in the Organizer Log, you have to look into your blocks and correct your process names with <processname>(x,y). The maximum number of instances of a process must specified in Cmicro to generate an optimized code. Please view the section SDL Restrictions to get a feeling about the SDL restrictions concerning Cmicro. |
The Cmicro Code Generator creates the files <systemname>.c
, <systemname>.ifc
and sdl_cfg.h
for compiling the system. In this case, the <systemname>
will be calcul
.
<TAUinstallation>\sdt\sdtdir\wini386\cmicro\template <TAUinstallation>/sdt/sdtdir/sunos5sdtdir/cmicro/template <TAUinstallation>/sdt/sdtdir/hppasdtdir/cmicro/template(depending on your platform) into the
<MyTutorial>\calcul\
target
directory. The files that need to be copied are listed below.
Note: The template of the environment functions (signals from and to the SDL system) will be created by the Cmicro Bodybuilder (please see Configuring with the Bodybuilder). If you are creating a new system running on a microcontroller you have also to copy the template file |
After generating the C code you have to configure the Cmicro target. The best way is to use the Cmicro Bodybuilder. With the Bodybuilder you can scale your target, configure your communications link to your host and select your C-compiler.
#define XMK_USE_KERNEL_INITin
ml_mcf.h
.stdin
and sent to the stdout
.The Bodybuilder generates three files which have different meanings.
In this section you will learn how to fill in the environment functions in env.c
.
env.c
with an ASCII editor (e.g. the Borland Editor or vi
), and edit according to the information in this section.In the example system calcul you send the signals
signal plus,sub,mult,div; signal value(natural);
to the system.
And you receive the signals
signal result(natural); signal message(natural);
from the system.
The function xInEnv()
will be polled by the Cmicro Kernel and asks the environment for events which causes the sending of environment signals.
As the environment is polled with every cycle of the Cmicro Kernel it is not allowed to use blocking functions here. |
/* BEGIN User Code (variable section)*/ char my_inkey; int my_value; getchar("%d",&my_inkey); /* ** getchar is a blocking read function for one character ** from the keyboard, a function of <stdio.h> */ my_value = ((int)my_inkey)-((int)'0'); /* END User Code (variable section)*/
You can see that the getchar()
function blocks the kernel because it waits until someone presses a key on the keyboard. The Kernel stops and cannot receive or send any other signals, and cannot process the SDL system.
The right way is to use non-blocking functions. Example 8 is fitted to UNIX and Windows compilers. _GCC_
is the switch for the UNIX compiler and BORLAND_C
or M
ICROSOFT_C
for a Windows compiler.
XMK_SEND_TMP_VARS /* BEGIN User Code (variable section)*/ /* It is possible to define some variables here */ /* or to insert a functionality which must be polled */ #define key_was_pressed 1 #define key_not_pressed 0 char my_inkey; int my_value; int key_pressed = key_not_pressed; #if defined(_GCC_) static char c; #endif #if defined(_GCC_) key_pressed = read ( STDIN_FILENO , (void *) &c, 1 ); if (key_pressed>0) { my_inkey=((char) c); key_pressed=key_was_pressed; } #elif defined(BORLAND_C) || defined(MICROSOFT_C) if (kbhit()) { my_inkey=_getch(); key_pressed=key_was_pressed; printf("%c\n",my_inkey); } #endif my_value = ((int)my_inkey)-((int)'0');
Now you have to define the receiving process and fill up the parameters of your signals.
You will find a part in your env.c
listing like this:
01: /* BEGIN User Code */ 02: if (i_have_to_send_signal_value) 03: /* END User Code */ 04: { 05: yPDef_value var; 06: /* BEGIN User Code */ 07: /* It is possible to insert any user code here. */ 08: /* END User Code */ 09: XMK_SEND_ENV( ENV, 10: value, 11: xDefaultPrioSignal, 12: sizeof( yPDef_value ), 13: &var, 14: /* BEGIN User Code */ 15: GLOBALPID(Who_should_receive_signal_value,0)); 16: /* END User Code */ 17: return; 18: }
You have to change the text in the lines 02 and 15 and you have to insert code between line 06 and 08.
In the Calcul system you have to change (line 02)
if (i_have_to_send_signal_value)
into
if (('0'<=my_inkey)&&(my_inkey<='9'))
This is the condition when you have to send the specific signal. Here you send only a value so you have to filter only numeric characters.
After that you have to adapt the signal parameters. So you have to insert
var.Param1 = my_value;
between line 07 and 08.
For instance, if you have defined a signal in your SDL system like this:
Signal a(natural,natural,natural)
then you can reach the parameters via var.Param1
, var.Param2
and var.Param3
.
Hint: If you want to see the structure of your signal parameters, please view the file |
Finally you have to modify line 15:
GLOBALPID(Who_should_receive_signal_value,0));
In this line the receiver process PID must be inserted. The symbolic name of the PID can be found in the file sdl_cfg.h
.
sdl_cfg.h
for system calcul /* "sdl_cfg.h" file generated for system Calcul */ #define XMK_CFG_TIME 874509481 #define XPTID_alu 0 #define MAX_SDL_PROCESS_TYPES 1 #define XMK_USED_ONLY_X_1 #define MAX_SDL_TIMER_TYPES 0 #define MAX_SDL_TIMER_INSTS 0 #define XMK_HIGHEST_SIGNAL_NR 7 /* NOT #define XMK_USED_TIMER */ /* NOT #define XMK_USED_DYNAMIC_CREATE */ /* NOT #define XMK_USED_DYNAMIC_STOP */ /* NOT #define XMK_USED_SAVE */ #define XMK_USED_SIGNAL_WITH_PARAMS /* NOT #define XMK_USED_TIMER_WITH_PARAMS */ /* NOT #define XMK_USED_SENDER */ /* NOT #define XMK_USED_OFFSPRING */ /* NOT #define XMK_USED_PARENT */ /* NOT #define XMK_USED_SELF */ /* NOT #define XMK_USED_PWOS */ /* NOT #define XMK_USED_INITFUNC */
The PID of the process alu
is now defined as XPTID_alu
. So you can modify the line 15 as follows:
GLOBALPID(XPTID_alu,0));
Now the listing env.c
is ready for sending the value message with parameters.
In this unit you have to modify a signal that does not include any parameters.
In the env.c
file you will find code like this:
01: /* BEGIN User Code */ 02: if (i_have_to_send_signal_plus) 03: /* END User Code */ 04: { 05: /* BEGIN User Code */ 06: /* It is possible to insert any user code here. */ 07: /* END User Code */ 08: XMK_SEND_ENV( ENV, 09: plus, 10: xDefaultPrioSignal, 11: 0, 12: NULL, 13: /* BEGIN User Code */ 14: GLOBALPID(Who_should_receive_signal_plus,0)); 15: /* END User Code */ 16: return; 17: }
Here you have to modify only the line 02 into
if (my_inkey=='+')
and line 14 into
GLOBALPID(XPTID_alu,0));
The same steps must be done for the signals sub
, mult
and div
, where sub
, mul
and div
are represented by the symbols `-', `*' and `/', respectively.
In this section you will learn how to describe the behavior of the environment when the SDL system sends a signal.
Let us look at the env.c
listing again. Please locate the code looking like this:
switch (xmk_TmpSignalID) { case message : [...] 01: case result : 02: { 03: /* BEGIN User Code */ 04: /* Use (yPDef_result*)xmk_TmpDataPtr to access the signal's parameters */ 05: /* ATTENTION: the data needs to be copied. Otherwise it */ 06: /* will be lost when leaving xOutEnv */ 07: /* Do your environment actions here. */ 08: xmk_result = XMK_TRUE; /* to tell the caller that */ 09: /* signal is consumed */ 10: /* END User Code */ 11: }
Between line 03 and 08 the behavior of the environment when receiving the signal result
can be described.
You can get the data from the signal's parameters by using
((yPDef_result*)xmk_TmpDataPtr)->Param1
This information can be found in line 04. Similar to when sending signals, other signal data can be reached by using Param2, Param3, and so on.
Now you can print the calculated result by inserting the following lines between lines 03 and 08:
int my_i; my_i = (((yPDef_result*)xmk_TmpDataPtr)->Param1); printf("\nResult : = %d\n", my_i);
The next step is to implement the behavior for the signal message
. Find the place where the first three lines of Example 13 below appear in the env.c file and insert the remaining code at that position.
message
case message : { /* BEGIN User Code */ switch (((yPDef_message*)xmk_TmpDataPtr)->Param1) { case command: { printf("\nCommand(+,-,*,/,): "); break; } case first_value: { printf("\nFirst_value : "); break; } case second_value: { printf("\nSecond_value : "); break; } case ui_ready: { printf("\nCalculator Ready\n"); break; } case ui_error: { printf("\n\nCALCULATOR ERROR !\n\n"); break; } default: { printf("\nUnknown Message !!!\n"); break; } } xmk_result = XMK_TRUE; /*to tell the caller that*/ /*signal is consumed */ /* END User Code */ } break ;
In Example 13 you can see your literals defined in the SDL system (e.g. the synonym command
). These literals will be defined in the file <systemname>.ifc
.
In your target there is no need to initialize or to close the environment. In other cases, e.g. microprocessor set ports, timers and so on, you will be required to do so.
In the file env.c
, find the part in the function xInitEnv()
of the listing looking like this:
xInitEnv()
void xInitEnv(void) { /* BEGIN User Code */ /* Initialize your environment here */ /* END User Code */ }
You can modify this part as follows. You insert only a message and disable the assignment.
void xInitEnv(void) { /* BEGIN User Code */ /* Initialize your environment here */ printf("Calculator Init\n"); /* END User Code */ }
The same procedure must be done when modifying the function xCloseEnv()
.
In this section, all the things are described which have to be done when you are not using the Cmicro Tester.
You have to build your executable using a makefile.
The following files are used (by different tools) while making the executable. It is assumed that you have copied the files from the make_bc
or make_cl
directory.
These files exist only to generate an executable for Windows. In other cases you have to create your own files, i.e. for target compilers.
Note: You have two versions of the You need the template If you compile your system for a microcontroller, you have to modify the More information about |
comp.opt
will not be explained here. Please have a look in The Cmicro Library.make.opt
in the target
directory must be modified when adapting any other compiler. In this example the comp.opt
file was fitted for the Borland C compiler and the Microsoft C compiler. You only have to modify the include paths for Cmicro files and your compiler.The first compile of the system will be done without the Cmicro Tester. Therefore the make tool must only include the files of the kernel directory of the Cmicro library.
The following file is used while making the executable on UNIX.
File | Description |
---|---|
makeoptions |
This file is fitted for UNIX compilers and includes compiler options, include paths and dependencies. |
You can use the default setting compile without tester
in the makeoptions
file. This means you must not select the sctLINKKERNEL
. You have to select the sctLDFLAGS
for your host.
<My_Cmicro_Project>\target
.<My_Cmicro_Project>\target
.In the calcul example the file calcul.m
will be generated. Then the maketool of your compiler with the makefile below will be started.
calcul.m
for the Borland maketool generated with SDT # makefile for System: calcul !include make.opt default: calcul$(sctEXTENSION) calcul$(sctEXTENSION): \ calcul$(sctOEXTENSION) \ $(sctLINKKERNEL) $(sctLD) @&&! $t$(sctLD1FLAGS) calcul$(sctOEXTENSION) $(sctLINKKERNEL) $(sctLD2FLAGS) ,calcul$(sctEXTENSION) ! calcul$(sctOEXTENSION): \ calcul.c $(sctCC) @&&! $(sctCPPFLAGS) $(sctCCFLAGS) $(SCTDIR)\calcul.c !
The make tool starts and generates an executable program. Now you can modify the system, compile and make the system again, and test the system without modifying make files or using other tools again.
Note: If you are adding environment signals you have to start the Bodybuilder because you must generate a new |
<systemname>.exe
in Windows or<systemname>
on UNIX. Do this directly from a command shell in your target folder.You should see your created program waiting for an input of a value. Now you can test your system by simply sending signals via the keyboard (type values and the desired operator).
You have the possibility to test and trace the target system with the Cmicro Tester. But before that, some things must be performed.
The Cmicro Tester provides the option for a communications link via a V.24 interface. These options are available in the Bodybuilder.
However, the target is not running on a small embedded system (like an 8051); it runs on the host machine. Therefore, you have to create a gateway from your SDL system to the Cmicro Tester. All messages needed for debugging and tracing are sent to the Cmicro Postmaster who delivers the messages to the Cmicro Tester.
Therefore you have to compile the files dl.c
and mpm_con.
c
The file dl.c
represents the physical layer. If you use another target system, you have to modify the file dl.c
to include functions that are communicating with the serial interface or doing something else. The module mpm_con.c
includes functions used by the module dl.c
Note: The Cmicro Tester was built for testing SDL systems on small embedded systems and not for host systems. |
The next step is to configure the host which is represented by the Cmicro Tester.
calcul.exe
or calcul
. Insert the path to the gate <My_Cmicro_Projekt>\target\<systemname>.exe
or <My_Cmicro_Projekt>/target/<systemname>
.
Hint: More information about message coding can be found in the Cmicro Tester's help. See Configuration Possibilities of Sdtmt (sdtmt.opt) for more information. |
Data type | Length |
Alignment Microsoft (Borland) |
Endian |
---|---|---|---|
Character |
1 |
8 (8) |
1 |
Short |
2 |
16 (8) |
21 |
Integer |
4 |
32 (8) |
41 |
Long |
4 |
32 (8) |
41 |
Pointer |
4 |
32 (8) |
41 |
This table above shows the complete configuration for this example for an 80x86 Intel processor. The alignment differs for the Borland and Microsoft Compiler.
Data type | Length | Alignment | Endian |
---|---|---|---|
Character |
1 |
8 |
1 |
Short |
2 |
16 |
12 |
Integer |
4 |
32 |
14 |
Long |
4 |
32 |
14 |
Pointer |
4 |
32 |
14 |
The table above shows the complete configuration for this example for a SPARC processor of a Sun workstation.
After configuring with the Bodybuilder you only have to modify the file make.opt
(in Windows) or makeoptions
(on UNIX) as follows.
sctLINKKERNEL
to sctLINKTARGET_WITH_TESTER
. The Cmicro Tester requires an sdtmt.btn
file. This file includes the configuration of the buttons.
<TAUinstallation>\bin\wini386
<TAUinstallation>/bin/sunos5bin
<TAUinstallation>/bin/hppabin
<My_Cmicro_Project>\target
directory.
Hint: You can modify the |
calcul
).
Figure 278 : Init phase of the Cmicro Tester
|
After this point the target is running and is ready to receive environment signals from the environment or the Cmicro Tester.
You can trace the target with the MSC or the SDL Editor to see your system at work (see also CmicroTester Commands).
Now you have learned how to build an executable using the tools of Telelogic Tau, Cmicro and your compiler.
Below are all the steps to build a system running on a target summarized.
Note: If your target compiler is not listed in the manual (see List of Available C Compilers in ml_typ.h), you have to make some adaptations for the Cmicro Library, e.g. timer handling, make, startup, etc. |
Note: If you want to test your system without using the environment, you can turn it off with the Bodybuilder. |
This is the way to get a running SDL system with the Cmicro Package.