[637df35] | 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 directory: ... XXX |
---|
| 27 | |
---|
| 28 | go32 |
---|
| 29 | ---- |
---|
| 30 | go32 dumps the stack when a program seg-faults, and if this happens while |
---|
| 31 | on an alternate stack an infinite loop can ensue. Setting the environment |
---|
| 32 | variable GO32="core /tmp/core" will prevent more than 20 lines or |
---|
| 33 | so of stack information from being dumped after a crash, and the output |
---|
| 34 | will go to a file rather than the screen. |
---|
| 35 | |
---|
| 36 | The go32 debuggers get confused by the relocated stacks used by tasks, |
---|
| 37 | and tend to crash when variables are inspected. |
---|
| 38 | |
---|
| 39 | make directory |
---|
| 40 | -------------- |
---|
| 41 | gcc-go32.cfg is used for cross compiling to the go32 environment under RTEMS, |
---|
| 42 | while djgcc.cfg is used for "native" compilation; i.e. under MSDOS rather |
---|
| 43 | than under RTEMS. The difference is that "native" compilation uses the djgpp |
---|
| 44 | I/O libraries, while "cross" compilation uses the RTEMS I/O libraries. |
---|
| 45 | |
---|
| 46 | djgcc.cfg is identical to gcc.cfg, except for the omission of the -pipe |
---|
| 47 | option. |
---|
| 48 | |
---|
| 49 | djgcc include files |
---|
| 50 | ------------------- |
---|
| 51 | In general, we use RTEMS include files because these contain the proper |
---|
| 52 | declarations for the libc, and in particular, the stdio functions. |
---|
| 53 | When calling go32-specific functions it is necessary to include some |
---|
| 54 | djgpp include files, as well. Unfortunately, there are some disagreements |
---|
| 55 | between RTEMS and djgpp as to how certain functions and types are |
---|
| 56 | declared. In these cases, I have modified to RTEMS source to special- |
---|
| 57 | case the differences. |
---|
| 58 | |
---|
| 59 | cpu-specific files |
---|
| 60 | ------------------ |
---|
| 61 | rtems/c/src/exec/cpu/i80386 is intended to contain 386-specific |
---|
| 62 | functions for RTEMS. Since under djgpp we do not have *complete* |
---|
| 63 | control of the processor, we must cooperate with the djgpp runtime |
---|
| 64 | environment, this directory cannot be shared between the go32 port |
---|
| 65 | and other 386 BSPs. |
---|
| 66 | |
---|
| 67 | other |
---|
| 68 | ----- |
---|
| 69 | * F12 will immediately abort the program. |
---|
| 70 | See libbsp/i80386/go32/iosupp/inch.c. |
---|
| 71 | |
---|
| 72 | * libbsp/i80386/go32/timer uses the on-board timer chip by default. |
---|
| 73 | However, if executing on a Pentium processor you can use the on-chip |
---|
| 74 | 64-bit cycle counter, which counts at whatever clock rate your processor |
---|
| 75 | runs at. To use this, compile with -DPENTIUM |
---|