XDS510 simulator Win32 port 2002 Lorenzo Lutti (lorenzo.lutti@tiscalinet.it) This is a port for the Win32 platform of the original Linux XDS510 simulator by Blaise Gassend: http://www.mit.edu:8001/people/gassend/xds510/xds510.html It works under Windows NT/2000/XP and must be tested (and probably adapted) for the other versions of Windows. Under ./xdsload subfolder you can find the Visual C++ 6 project of a Code Composer Studio loader, that "intercepts" the I/O calls to the XDS510 interface and passes them to the Blaise's state machine code. It is basically a simple user-mode debugger and code patcher. Under ./patch subfolder you can find the project (as well as the compiled executable) of the patch for xdsfast1.sys driver. I have just disabled the I/O permission grant done with the undocumented NT function Ke386SetIoAccessMap() (you need a disassembler - I suggest W32DSM89 - to check the differences). Since I didn't want to distribute copyrighted material, I've left to you the task of modifying your own copy. If you don't patch the driver, the Code Composer I/O accesses won't throw an exception and the loader won't work. Some notes: -This code "works", i.e. it intercepts the Code Composer I/O calls, passes them to Blaise's code and passes back the results to the Code Composer correctly. That's all. I don't know if it is actually able to flash 24x and 28x devices, I haven't tested it. I've tested it only on a TMS320VC54xx platform (my goal was to do some in-circuit debugging, not only flashing the code) and apparently it doesn't work for this purpose. Maybe it's enough to add some functions to Blaise's state machine, I don't have enough time to do it by myself but I will be very happy to know if someone is going to try this way. -You have to put GIVEIO.SYS in the work directory of the loader. This driver is needed to do I/O from/to the simplified JTAG interface. -I have just adapted the Blaise's code in order to make it compilable with Visual C++. No new functions have been added. -This isn't a really straightforward code. It is needed good knowledge of Win32 and assembly programming.