This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/66AK2H12: TI RTOS errors on ARM core using IPC/GateMP

Part Number: 66AK2H12
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

We are using

SYS/BIOS (Target Content) 6.46.5.55
IPC (IDE Client) 3.46.2.04
XDCtools Core Update Feature 3.32.2.25

Immediately after IPC_start() we get these BIOS errors listed in ROV "BIOS / Scan for errors" tab:

,ti.sdo.ipc.GateMP,Gate Resources,N/A,N/A,Caught exception in view init code: Problem fetching remoteSystemInUseJavaException: java.lang.Exception: Target memory read failed at address: 0x86000200, length: 32This read is at an INVALID address according to the application's section map. The application is likely either uninitialized or corrupt

,ti.sdo.ipc.notifyDrivers.NotifyDriverCirc,Events,remoteProcId = 1 lineId = 0,N/A,Caught exception in view init code: Error: Error fetching putWriteIndex struct from shared memory

Out CFG has the IPC shared memory region SR0 defined as 0x86000000:

Ipc.hostProcId = MultiProc.getIdMeta("HOST");

// shared region configuration
var SR0 = Program.cpu.memoryMap["SR0"];
//print("SRO.base = "+SR0);

var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');
SharedRegion.setEntryMeta(0,
	new SharedRegion.Entry({
		name:           "SR0",
		base:           SR0.base,
		len:            SR0.len,
		ownerProcId:    MultiProc.getIdMeta("HOST"),
		isValid:        true,
		cacheEnable:    true
	})
);

In the debugger we can clearly see that Memory locations 0x86000200 is accessible and doesn't seem corrupted.

What do these mean, and why are they happening?

Thanks,
Bruce

  • Hi Bruce,

    We're looking into this. In the meantime, a couple of quick things to try:

    Increase your system stack size and task stack size. If you can, go to Tasks in ROV and check for any errors. Try increasing your heap size too.

    If you can share your project, the map and cfg file at the very least so that we can take a look, that would help too.
  • Hi Sahin,

    Unfortunately I am not going to be able to supply the map file or project because of the information they contain. I tried attaching the cfg file as well as the ipc.cfg.xs but the interface said "only certain kinds of files can be attached...." despite me changing them both to .txt files.

    One important thing to note that I forgot to mention: these errors appear immediately while running main(), right after running Ipc_start() which is the first action in main, well before BIOS_start. Tomorrow I will try to run again and see if they occur before Ipc_start() but I doubt it. Because of this I seriously doubt that increasing system or task stack sizes can help since no tasks even exist at that point.

    Thanks,

    Bruce

  • Hi Bruce,

    The cfg files should help. If you zip them up you should be able to attach them.

    I don't have a K2H board with me right now, so I tested this using an AM572x board running our messageQ example. I observed the same ROV errors as you, but the example ran fine so I'm wondering if it's a bug with ROV. I'll see if I can get someone from the CCS team to look at this.

    Can you clarify if you're having any issues running your application?
  • We have had some crashes to uncover, and when we researched the nature of these we saw those error messages in the ROV BIOS section, along with others. We have fixed the other bugs, but now are wondering what these are. It is our experience that if there are any errors generated by TI RTOS then the application is in danger of crashing.

    I'm attaching the cfgs for your reference.

    Thanks,
    Brucecfgs.zip

  • Hi Bruce,
    Here is a solution:

    e2e.ti.com/.../697185

    I'm using DSP C6670. I had a problem with MSMCSRAM memory. I added following code:

    /* Retrieve the MemoryImage java object. */
    var Model = xdc.module("xdc.rov.Model");
    var memReader = Model.getMemoryImageInst();


    /* retrieve the sections list and add a new section */
    var sections = memReader.getSections();
    sections.addSection(0x0C000000, 0x0C200000);

    in if (xdc.om.$name == "rov") condition in package.xs file.
    For example in SYS BIOS 6.46.4.53 package.xs file is in:
    C:\ti\bios_6_46_04_53\packages\ti\sysbios\heaps

    Regards,
    Lukas.