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.

PROCESSOR-SDK-AM335X: ASSERT from where...?

Part Number: PROCESSOR-SDK-AM335X
Other Parts Discussed in Thread: SYSBIOS

Hello,

When using the TI 19.3 compiler, BIOS 6.73.01.01, XDC 3.50.08.24 this works.

BUT it crashes using:

  • GNUC 7.3.1
  • processor_sdk_rtos_am335x_6_03_00_106
  • SYSBIOS 6.76.03.01
  • XDC 3.55.02.22

When exiting SYSBIOS, a function is registered.  But as it's being called, I get an ASSERT  (again, ONLY with the GNUC compiler and the packages specified)

void callme_when_sysbios_exits(int status) {

    UARTprintf("Entering the SYSBIOS exit hook\n"); 
    flag_program_share *shareflag = (flag_program_share *) PROGRAM_SHARE_FLAG_ADDR;
    void (*Target)();
    // tell target that it is being invoked by the runtime code
    shareflag->calling_program = 0x03;
    // go to the bootloader
    Target = (void (*)(void)) 0x83F00000;
    Target();
}

void goto_nextapp() {
    UARTprintf("Setting the SYSBIOS exit hook\n");
    /* Register a handler function that will be called after SYS/BIOS shuts down and exits */
    if (System_atexit(callme_when_sysbios_exits) == FALSE) {
         UARTprintf("PANIC!!!!!! Unable to add system exit handler. Will attempt to shutdown directly to the bootloader...");
         callme_when_sysbios_exits(-1);
    }
    UARTprintf("... now terminating SYSBIOS\n");
    BIOS_exit(0);
    // Should never get here...
    UARTprintf("Exited SYS/BIOS...\n");
}

It gets partway through the print statement that is inside the hook, "Entering the SYSBIOS exit hook\n"  and then give as assert.

Setting the SYSBIOS exit hook
... now terminating SYSBIOS
Enteri

ASSERT failure: Module: 32800, File: <unknown>, line: 214
assertion failure: A_badContext: bad calling context. Must be called from a Task

The module name is useless, and the file isn't listed.

How do I figure out where this is coming from?  The assert message isn't in this project, it's in SYSBIOS or XDC or something...


By the way...  when will E2E fix this issue, when I try to add code?  All I get are people telling me there is nothing wrong.

  • Hi,

    Thanks for reporting the E2E issue. I've checked with TI's E2E online support team. This is a known issue. A workaround is to post a .jpg (or other picture of your code), .pdf or other approved file type.

    Regarding the other question, this specific BIOS release was not validated against GNUC 7.3.1. Please refer to the release note in the BIOS installation root folder: release_notes_bios_6_76_03_01.html. Please look for Dependencies as shown below:

    Thanks and regards,

    Jianzhong

  • EXCUSE ME????!!!

    I was told that I needed to use processor_sdk_rtos_am335x_6_03_00_106... late last year.

    e2e.ti.com/.../3531724

    Which installed THAT compiler and all those packages.  DON'T TELL ME THAT IT'S NOT COMPATIBLE.

    I'VE BEEN WORKING FOR MONTHS ON CONVERTING THIS TO THAT PACKAGE.

    I AM NOT GOING TO SCRAP THAT EFFORT AND USE THE NEXT ONE JUST BECAUSE YOU PULL THE RUG OUT FROM SUPPORTING IT A COUPLE MONTHS AGO.

  • Hi,

    Sorry for the confusion. The Processor SDK 6.3 did come with gcc-arm-none-eabi-7-2018-q2-update which is gnu v7.3.1. There seems to be discrepancy regarding codegen tool between BIOS and the SDK.

    I understand that it is painful to switch tools in the middle of the development, but is it possible for you tor try gnu v7.2.1 and see if that can help  narrow down the problem?

    Thanks for your patience.

    Regards,

    Jianzhong