# # $Id$ # tools ----- The RTEMS build procedure was designed with the capabilitiies of a typical UNIX computer in mind. Making this procedure work under MS-DOS is not that difficult but requires that MS-DOS versions of a number of UNIX utilities be acquired and installed. For time being, the best advice which can be offered is: "This is a nasty question, since when I first set up the DOS machine (long before I acquired RTEMS) I ftp'd a bunch of different tool sets (all from SimTel), and then picked individual tools from each set that worked best for me. The djgpp tools are probably a good starting point, especially to get a working sed. Next the gnu tools in SimTel/msdos/gnuish, and then others. Sorry I can't give you more specific names. The only real requirement for the tools is that they *must* accept redirection of command line arguments from a file using the '@' notation (i.e., "mkdir @/tmp/args" reads the argument list from file /tmp/args)." There is a special version (source and executable) of GNU make 3.71 for MS-DOS which minimizes the amount of memory used by recursive makes available on lancelot.gcs.redstone.army.mil in the file: /pub/msdos/gmake371.tgz Many of the RTEMS specific utilities used in the build and installation are UNIX shell scripts. On a UNIX host, these are normally interpreted by the Bourne Again Shell (BASH) or the Korn Shell (ksh). Most of these scripts can be successfully executed with the following shell from the MS-DOS archives from Simtel. SimTel/msdos/sysutil/ms_sh23b.zip Please be sure to use the 16-bit version. The Simtel archives are available from ftp.cdrom.com as well as a number of mirror sites. go32 ---- go32 dumps the stack when a program seg-faults, and if this happens while on an alternate stack an infinite loop can ensue. Setting the environment variable GO32="core /tmp/core" will prevent more than 20 lines or so of stack information from being dumped after a crash, and the output will go to a file rather than the screen. The go32 debuggers get confused by the relocated stacks used by tasks, and tend to crash when variables are inspected. djgcc include files ------------------- In general, we use RTEMS include files because these contain the proper declarations for the libc, and in particular, the stdio functions. When calling go32-specific functions it is necessary to include some djgpp include files, as well. Unfortunately, there are some disagreements between RTEMS and djgpp as to how certain functions and types are declared. In these cases, the RTEMS source have been modified to special-case the differences. other ----- * Pressing F12 will immediately abort the program. See lib/libbsp/i386/go32/console/inch.c. * lib/libbsp/i386/go32/timer uses the on-board timer chip by default, which has a resolution of about 1 microsecond. However, if executing on a Pentium processor you can use the on-chip 64-bit cycle counter, which counts at whatever clock rate your processor runs at. To enable this, set RTEMS_CPU_MODEL=pentium in make/custom/go32.cfg.