VenturCom RTX and SoftIce.

0 Likes

Problem:

Will SoftIce work with the VenturCom real time extensions.

Resolution:

SoftIce is compatible with the VenturCom real time extensions.

There are some additional steps that are required.

Tell VenturCom that SoftIce is there:

1.In the system Control Panel, open RTX Settings.

2.Select Enable Alternative Debugger, and then click OK.

3.Reboot your system to apply the change.

Prepare for debugging:

1.If you have RTX 4.3 or RTX 4.3.1, copy the copy the code below into your Rtx.mak located in \Program Files\VCI\RTX\Include directory.

2.You can build an .rtss program with debug information by using either the RTX AppWizard in MS Visual Studio or the program's makefile.

If you choose the RTX AppWizard, use the RTSS Debug Configuration.

If you choose the program's makefile, then follow these steps:

1.In the program's makefile, comment the line NODEBUG=1 (if it is there)

2. OR at a command prompt, enter: Set NODEBUG=

///////////This is the modified make file

//////////////////////BEGIN COPY HERE/////////////////////////////////

#

# RTX.MAK - RTX application master NMAKE definitions file for linking RTX

# processes for either Win32 or RTSS environments.

#

# $Id: Rtx.mak,v 1.8 1997/10/08 21:43:15 liz Exp $

#

# This file should be included at the top of all MAKEFILEs as follows:

# !include <RTX.MAK>

#

# Set NODEBUG = 1 for no debugging information in the executable image.

# Set RTSS_CRT = 1 to link RTSS single-threaded applications with C run-time library.

# Set RTSS_MTCRT = 1 to link RTSS multi-threaded applications with C run-time library.

#

!IFNDEF _RTX_MAK_

_RTX_MAK_ = 1

#

# Use the standard win32.mak for compile and Win32 link definitions.

#

!INCLUDE <WIN32.MAK>

#

# Default build rules for RTX processes in the RTSS environment.

#

.SUFFIXES: .rtss .rtdll

!IFDEF RTSS_MTCRT

.c.obj:

$(cc) $(cflags) $(cdebug) $(cvarsmt) /c $*.c

!ELSE

.c.obj:

$(cc) $(cflags) $(cdebug) $(cvars) /c $*.c

!ENDIF

#

# Default build rules for RTX processes in the RTSS environment.

#

!IFDEF RTSS_MTCRT

.obj.rtss:

$(link) -out:$*.rtss $(rtssconlflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtssconlibsmt)

.c.rtss:

$(cc) $(cflags) $(cdebug) $(cvarsmt) /c $*.c

$(link) -out:$*.rtss $(rtssconlflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtssconlibsmt)

.obj.rtdll:

$(link) -out:$*.rtdll $(rtssdlllflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtssdlllibs)

.c.rtdll:

$(cc) $(cflags) $(cdebug) $(cvarsmt) /c $*.c

$(link) -out:$*.rtdll $(rtssdlllflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtssdlllibs)

!ELSE

!IFDEF RTSS_CRT

.obj.rtss:

$(link) -out:$*.rtss $(rtssconlflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtssconlibs)

.c.rtss:

$(cc) $(cflags) $(cdebug) $(cvars) /c $*.c

$(link) -out:$*.rtss $(rtssconlflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtssconlibs)

.obj.rtdll:

$(link) -out:$*.rtdll $(rtssdlllflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtssdlllibs)

.c.rtdll:

$(cc) $(cflags) $(cdebug) $(cvars) /c $*.c

$(link) -out:$*.rtdll $(rtssdlllflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtssdlllibs)

!ELSE

#

# Default to no C run-time support (other then the RTSS built-in printf and atoi).

#

.obj.rtss:

$(link) -out:$*.rtss $(rtsslflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtsslibs)

.c.rtss:

$(cc) $(cflags) $(cdebug) $(cvars) /c $*.c

$(link) -out:$*.rtss $(rtsslflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtsslibs)

.obj.rtdll:

$(link) -out:$*.rtdll $(rtdlllflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtdlllibs)

.c.rtdll:

$(cc) $(cflags) $(cdebug) $(cvars) /c $*.c

$(link) -out:$*.rtdll $(rtdlllflags) $(rtssldebug) $*.obj $(USER_LIBS) $(rtdlllibs)

!ENDIF

!ENDIF

#

# Default build rules for RTX processes in the Win32 environment.

#

!IFDEF RTSS_MTCRT

.obj.exe:

$(link) -out:$*.exe $(conlflags) $(ldebug) $*.obj $(USER_LIBS) $(rtw32libs) $(conlibsmt)

.c.exe:

$(cc) $(cflags) $(cdebug) $(cvarsmt) /c $*.c

$(link) -out:$*.exe $(conlflags) $(ldebug) $*.obj $(USER_LIBS) $(rtw32libs) $(conlibsmt)

.obj.dll:

$(link) -out:$*.dll $(dlllflags) $(ldebug) $*.obj $(USER_LIBS) $(rtw32libs) $(guilibsmt)

.c.dll:

$(cc) $(cflags) $(cdebug) $(cvarsmt) /c $*.c

$(link) -out:$*.dll $(dlllflags) $(ldebug) $*.obj $(USER_LIBS) $(rtw32libs) $(guilibsmt)

!ELSE

#

# Default to single-threaded C run-time support (other then the RTSS built-in printf and atoi).

#

.obj.exe:

$(link) -out:$*.exe $(conlflags) $(ldebug) $*.obj $(USER_LIBS) $(rtw32libs) $(conlibs)

.c.exe:

$(cc) $(cflags) $(cdebug) $(cvars) /c $*.c

$(link) -out:$*.exe $(conlflags) $(ldebug) $*.obj $(USER_LIBS) $(rtw32libs) $(conlibs)

.obj.dll:

$(link) -out:$*.dll $(dlllflags) $(ldebug) $*.obj $(USER_LIBS) $(rtw32libs) $(guilibsmt)

.c.dll:

$(cc) $(cflags) $(cdebug) $(cvars) /c $*.c

$(link) -out:$*.dll $(dlllflags) $(ldebug) $*.obj $(USER_LIBS) $(rtw32libs) $(guilibsmt)

!ENDIF

#

# Linker debug flags for RTSS processes.

#

!IFDEF NODEBUG

rtssldebug = /RELEASE

!ELSE

rtssldebug = -debug:full -debugtype:both

!ENDIF

#

# Linker flags for RTSS processes.

#

rtsslcommon = /NODEFAULTLIB /INCREMENTAL:NO /PDB:NONE /NOLOGO

-driver -align:0x20 -subsystem:native,4.00

rtsslflags = $(rtsslcommon) -entry:_RtapiProcessEntry@8

rtdlllflags = $(rtsslcommon) -entry:_RtapiDllEntry@8

#

# Basic RTX RTSS libraries.

#

rtsslibs = rtapi_rtss.lib rtx_rtss.lib

rtdlllibs = $(rtsslibs) startupDll.obj

#

# Basic RTX Win32 libraries.

#

rtw32libs = rtapi_w32.lib

#

# For RTSS applications that use C Run-Time libraries.

#

# NOTE: Not all C runtime functions are supported in RTSS.

#

rtxlibc = rtxlibc.lib oldnames.lib

rtxlibcmt = rtxlibcmt.lib oldnames.lib

rtssconlflags = $(rtsslcommon) -entry:_RtapiProcessEntryCRT@8

rtssconlibs = startupCRT.obj $(rtxlibc) $(rtsslibs) w32_dll.lib

rtssconlibsmt = startupCRT.obj $(rtxlibcmt) $(rtsslibs) w32_dll.lib

rtssdlllflags = $(rtsslcommon) -entry:_RtapiDllEntryCRT@8

rtssdlllibs = startupDllCrt.obj $(rtxlibcmt) $(rtsslibs) w32_dll.lib

rtssdlllibsmt = startupDllCrt.obj $(rtxlibcmt) $(rtsslibs) w32_dll.lib

dbgrtss = rebase -b 0x76000000 -x . -p -a $(RTSS_NAME).rtss

dbgrtdll = rebase -b 0x76000000 -x . -p -a $(RTDLL_NAME).rtdll

!IFDEF RTSS_MTCRT

exelink = $(link) -out:$(EXE_NAME).exe $(conlflags) $(ldebug) $(EXE_OBJS) $(USER_LIBS) $(rtw32libs) $(conlibsmt)

dlllink = $(link) -out:$(DLL_NAME).dll $(dlllflags) $(ldebug) $(DLL_OBJS) $(USER_LIBS) $(rtw32libs) $(guilibsmt)

rtsslink = $(link) -out:$(RTSS_NAME).rtss $(rtssconlflags) $(rtssldebug) $(RTSS_OBJS) $(USER_LIBS) $(rtssconlibsmt)

rtdlllink = $(link) -out:$(RTDLL_NAME).rtdll $(rtssdlllflags) $(rtssldebug) $(RTDLL_OBJS) $(USER_LIBS) $(rtssdlllibsmt)

!ELSE

exelink = $(link) -out:$(EXE_NAME).exe $(conlflags) $(ldebug) $(EXE_OBJS) $(USER_LIBS) $(rtw32libs) $(conlibs)

dlllink = $(link) -out:$(DLL_NAME).dll $(dlllflags) $(ldebug) $(DLL_OBJS) $(USER_LIBS) $(rtw32libs) $(guilibs)

!IFDEF RTSS_CRT

rtsslink = $(link) -out:$(RTSS_NAME).rtss $(rtssconlflags) $(rtssldebug) $(RTSS_OBJS) $(USER_LIBS) $(rtssconlibs)

rtdlllink = $(link) -out:$(RTDLL_NAME).rtdll $(rtssdlllflags) $(rtssldebug) $(RTDLL_OBJS) $(USER_LIBS) $(rtssdlllibs)

!ELSE

rtsslink = $(link) -out:$(RTSS_NAME).rtss $(rtsslflags) $(rtssldebug) $(RTSS_OBJS) $(USER_LIBS) $(rtsslibs)

rtdlllink = $(link) -out:$(RTDLL_NAME).rtdll $(rtdlllflags) $(rtssldebug) $(RTDLL_OBJS) $(USER_LIBS) $(rtdlllibs)

!ENDIF

!ENDIF

#ENDIF _RTX_MAK_

!ENDIF

///////////////////////END COPY HERE//////////////////////////////////

Old KB# 11682
Comment List
Anonymous
Related Discussions
Recommended