Hey everyone,
For the project I'm working on, it is important that the application works correctly even when it is loaded using a debugger without resetting the CC3200 completely.
An issue I have been having, is that initializing the SimpleLink subsystem does not always work, depending on the state of the system when the application was loaded.
An example: if I have a certain application running, then a JTAG debugger takes control of the CC3200 and loads my application, the application will get stuck infinitely on sl_Start(...). The same application always works when there is no application running on the CC3200 at the time the debugger connects to it. Presumably, the reason for failing in the former situation is that the SimpleLink subsystem was already in a certain state by the time my application started.
Is there any way to reset the CC3200's peripherals and especially the SimpleLink coprocessor, upon starting my application? For example, could I use PRCMMCUReset() or PRCMPeripheralReset()? Do these functions reset the coprocessor as well? And if so, how might I use PRCMMCUReset() on starting my application, yet avoid getting in an infinite reset loop?
In my situation, the debugger first performs a full system reset. Then, after some time (during which the CC3200 bootloader may already "screw up" the system state) the debugger halts the user core, and performs a local reset on the user core, halting the core upon coming out of this reset. So when my application starts, the user core is fully reset but the peripherals and WiFi coprocessor may not be.