When rebuilding the armulate.dll with Visual C++, is it important that you build a Release version, not a Debug version. The reason for this is there are some issues with the Microsoft C runtime which means that it is not possible to use a debug DLL with a release version of the ARM debugger. If you are using the supplied makefile, you may need to set the build variant on the nmake command line:
nmake -f armulate.mak CFG="armulate - Win32 Release"
There are two other known problems when rebuilding SDT 2.50 ARMulator with Visual C++ 5.0. These are both fixed in SDT 2.51 and ADS . 1. Makefile The makefile 'armulate.mak' includes an RCS revision control header (used internally within ARM) that confuses Visual Studio or Developer Studio.
# armulate.mak # Copyright (c) 1998 ARM plc. All rights reserved. # # RCS $Revision: 1.3 $ # Checkin $Date: 1998/07/21 20:38:41 $ # Revising $Author: swoodall $ # # Microsoft Developer Studio Generated NMAKE File, Format Version 4.20 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 # TARGTYPE "Win32 (ALPHA) Dynamic-Link Library" 0x0602
The file is then not recognized as a Developer Studio-generated makefile. Simply moving the RCS header information (the top 6 lines) further down the file or removing it altogether from 'armulate.mak' will solve this problem. 2. Use of 'new' The file 'armdefs.h' is (unfortunately) not C++-friendly. For example, it contains:
typedef void armul_ModeChangeUpcall(void *handle, ARMword old, ARMword new);
The use of 'new' as a variable name here results in a compile error, because 'new' is a C++ reserved keyword. Simply giving 'new' a different name should solve this problem. Just 'search and replace' through armdefs.h with a text editor.
|