Did you have the vehicles modules check for DTC'S - diagnostic trouble codes ? That's the place to start . See if a professional grade scan tool will communicate with all the modules on the vehicle > Without knowing if all modules are communicating on the class two serial data bus , you would be wasting your time testing thing's ,without knowing what is going on ,How the starting system works !
Moving the ignition switch to the START position sends a 12-volt signal to the engine control module (ECM) to command starting. Battery voltage also travels through the switch side of the Run/Crank relay then through the clutch switch, if equipped with manual transmission, and on through the coil side of the Starter relay and then to the ECM. The ECM receives class 2 information from the vehicle theft deterrent (VTD) and transmission control module (TCM) to verify that all parameters are met for starting. When all parameters are met the ECM grounds the control circuit of the Starter relay closing the switch providing battery voltage to the starter solenoid through a 30 A Maxi-Fuse.
I wouldn't think the ECM was bad , but you never know ! With a factory scan tool or a professional one you could check inputs to the ECM , is it receiving the proper inputs to initialize starting . Does you caddy have automatic transmission ? If it does there is the park neutral switch to think about . You can go to
http://bbbind.com/free_tsb.html for free wiring diagrams ! Go to youtube an watch a few videos on basic automotive electrical trouble shooting , If you don't know about that sort of thing . An how to read wiring diagrams etc.. Find the ECM on the vehicle an check to see if it is receiving 12 volts from the ignition switch . Check for voltage at the starter relay too !
The data link connector (DLC) allows a scan tool to communicate with the class 2 serial data line. This serial data line is the means by which the microprocessor-controlled modules in the vehicle communicate with each other. Once the scan tool is connected to the class 2 serial data line through the DLC, the scan tool can be used to monitor each module for diagnostic purposes and to check for diagnostic trouble codes (DTCs). Class 2 serial data is transmitted on a single wire at an average of 10.4 kbps. This value is an average, class 2 uses a variable pulse width modulation to carry data and depending on the message it may operate faster or slower. The bus will float at a nominal 7.0 volts during normal operation. Each module can pull this lower during the transmission. The bus is not at battery positive voltage or ground potential during normal operation. When the ignition switch is in RUN, each module communicating on the class 2 serial data line sends a state of health (SOH) message every 2 seconds to ensure that the module is operating properly. When a module stops communicating on the class 2 serial data line, for example if the module loses power or ground, the SOH message it normally sends on the data line every 2 seconds disappears. Other modules on the class 2 serial data line, which expect to receive that SOH message, detect its absence; those modules in turn set an internal DTC associated with the loss of SOH of the non-communicating module. The DTC is unique to the module which is not communicating, for example, when the inflatable restraint sensing and diagnostic module (SDM) SOH message disappears, several modules set DTC U1088. Note that a loss of serial data DTC does not normally represent a failure of the module that set it.