Strange! I2C1 stop working after code passed 8Kb when int vect reallocated to 0x4000
I am using a USB bootloader, and all the sources must be compiled with interrupt vectors realocated at 0x8004000. After the compiled source pass about 8Kb, the I2C does not work any more!!!
If you don't have a debugger it going to be hard to do much in the way of diagnostics. The ST-LINK on the various Discovery boards is a pretty cheap solution.
Does the USB boot loader have some limitations related to the size of the binary? Details of the board and boot loader? Can you use the ST USB DfuSe boot loader built into the System Loader (BOOT0 = High at reset), or via serial. If you can't do any of those things, you could perhaps dump or checksum the binary image and check that, early in the start up process.
Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..