Question: Hints for protected-mode compiler troubleshooting

Answer: Symptoms/error messages:

  1. DOS\16M error: [32] DPMI host error (possibly insufficient memory)
  2. Compiler crash: "unexpected interrupt OE, ... <PC registers dump>
  3. DOS/4GW Professional fatal error (1010): can't initialize loader LINEXE_LOADER[1] (under Windows)

Solution:

TI ships the C compiler DOS protected mode with all its last releases. The protected mode compiler solves the 640KB memory limitation under real DOS. This will solve the error:
>>>>>> OUT OF MEMORY: OPTIMIZATION ABORTED <<<<<<<<<< when building a large C program and using optimization.

The protected mode compiler achieves this by using a DOS extender, called DOS4GW.exe, a product of Rational Systems. The purpose of a DOS extender is to give an application, in this case our Compiler, access to the extended memory in a PC. The following problems could be encountered:

PROBLEM 1. MEMORY MANAGER INCOMPATIBILITIES:

DOS4GW may have incompatibilities with existing memory managers in your PC. There are 2 memory managers protocols: DPMI and VCPI. DOS4GW uses the DPMI protocol. Currently we know of potential memory conflicts with Windows, EMM386.exe and Borland Make Utility. However, conflict could exist with any program that uses the VCPI protocol.


        PROBLEM 1.1: Conflict with the old version of DOS4GW and Windows
                     (using DOS5.0 or DOS6.x)

        Solution:
         a. Use our last release compiler
         b. If you don't have the last compiler release and you are using
            DOS 5.0/Window environment, build programs outside of
            Windows or switch to DOS version 6.2 or higher. Remember that the
            DOS extender can still take advantage of the system's extended
            memory outside of Windows.

         c. If you don't have the last compiler release and you are using
            DOS 6.0, upgrade to DOS 6.2.

        PROBLEM 1.2: Conflict with DOS4GW and EMM386.exe

        Solution:
         If using DOS 6.2,  we can provide a stable platform under DOS
         only by modifying the config.sys:
 
         device=c:\xxxx\emm386.exe NOEMS NOVCPI
 
         The consequences of this could possibly reduce the amount of
         conventional memory on the system. Not a problem for our compiler
         since we use extended memory, but could be a problem on systems
         that load DOS drivers that use EMS and VCPI.

        PROBLEM 1.3: DOS4GW conflict with Borland MAKE utility. Borland
                     MAKE utility uses VPCI protocol.

        Solution: 
         Check with Borland to see if they offer a Make Utility that uses 
         DPMI. Otherwise use MAKE R.

PROBLEM 2. NOT ENOUGH MEMORY:

The C compiler requires a minimum of 4MB of memory (recommended 16MB) available. Run the PMINFO.exe utility shipped with the C floating point compiler to detect the memory available in your system (3rd line in the PMINFO print-out).

If conventional + Extended is less than 4MB:

  • add more memory
  • remove unused drivers from config.sys
  • remove smartdrive.exe line in the config.sys
  • use the DOS4GVM (virtual memory) utility to use your hard disk as RAM (see release notes). Make sure to have enough contiguous hard disk space.

Device: TMS320C5xx
Category: TI Tools
Detail: Code Generation Tools
Detail2: General
Title: Hints for protected-mode compiler
Source: Case from TMS320 Hotline
Date: 4/30/98
GenId: a2

© Copyright 1998 Texas Instruments Incorporated. All rights reserved.
Trademarks, Important Notice!