MSPM0L1306: Loading Multiple *.out Files Using Initialization Script

Part Number: MSPM0L1306

I'm working with the LP-MSPM0L1306 right now and I'm trying to figure out how to load multiple *.out files to the microcontroller using CCS v20.5.1.  The goal is to be able to load/program both the bootloader and the application images, as well as load all the symbols for both, to make debugging easier.  For reference, this is a single-core micro.

Reading through the scripting documentation (C:\ti\ccs2051\ccs\scripting\docs), it looks like I should be using the multiLoadStart/multiLoadEnd construct to wrap the 2 loadProgram calls so that the microcontroller's flash memory is erased only once:

image.png However, I'm getting the following output:

image.png

Here is my launch configuration in launch.json:

        {
            "name": "LoadAll2",
            "type": "ccs-debug",
            "request": "launch",
            "targetConfig": "C:/ti_ccs/Project1/targetConfigs/MSPM0L1306.ccxml",
            "initializationScript": "C:/ti_ccs/LoadAll2.js",
            "loadSymbolsOnly": true
        },

Here is my initialization script (LoadAll2.js):

const ds = initScripting();
const session = ds.openSession(/cortex/i);

if (session.target.isConnected() === false) {
    session.target.connect();
}

console.log("Loading...");
session.flash.multiLoadStart();
session.memory.loadProgram("C:/ti_ccs/Project1/Debug/Project1.out");
session.memory.loadProgram("C:/ti_ccs/Project2/Debug/Project2.out");
session.flash.multiLoadEnd();

session.symbols.load("C:/ti_ccs/Project1/Debug/Project1.out");
session.symbols.add("C:/ti_ccs/Project2/Debug/Project2.out");

const bp1 = session.breakpoints.add("C:/ti_ccs/Project1/main.c", 61);

console.log("Resetting...");
session.target.reset("System Reset");

session.target.run();

I get the same output if I try loading Intel hex files like this:

session.flash.multiLoadStart();
session.memory.loadProgram("C:/ti_ccs/Project1/Debug/Project1.hex");
session.memory.loadProgram("C:/ti_ccs/Project2/Debug/Project2.hex");
session.flash.multiLoadEnd();

If I pre-load the 2 image files into flash memory another way and comment out the 4 lines in the script related to programming, then the remaining lines that load the symbols, set the breakpoint, reset the target, and run the target work just fine.  I can also load/program a single image file into the micro's flash memory using the script if I do not include the multiLoadStart/multiLoadEnd wrapper, like this:

const ds = initScripting();
const session = ds.openSession(/cortex/i);

if (session.target.isConnected() === false) {
    session.target.connect();
}

console.log("Loading...");
//session.flash.multiLoadStart();
session.memory.loadProgram("C:/ti_ccs/Project1/Debug/Project1.out");
//session.memory.loadProgram("C:/ti_ccs/Project2/Debug/Project2.out");
//session.flash.multiLoadEnd();

session.symbols.load("C:/ti_ccs/Project1/Debug/Project1.out");
session.symbols.add("C:/ti_ccs/Project2/Debug/Project2.out");

const bp1 = session.breakpoints.add("C:/ti_ccs/Project1/main.c", 61);

console.log("Resetting...");
session.target.reset("System Reset");

session.target.run();

I have verified that both *.out files do not overlap each other by reviewing the map files:

image.png

image.png

I'm assuming I'm missing some configuration step that is required for the multiLoadStart/multiLoadEnd construct, but I'm not sure.  Does anybody have any insight into why the multiLoadStart/multiLoadEnd construct isn't working, or have an example that does work?

Thanks!