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