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.

MCU-PLUS-SDK-AM273X: AM2732

Part Number: MCU-PLUS-SDK-AM273X
Other Parts Discussed in Thread: UNIFLASH

Tool/software:

Hi,


I can't to launch enet_cpsw_udpclient example from mcu_plus_sdk_am273x_09_02_00_52.

It's compiled but not reach even "appMain(NULL);".

Did somebody already faced that issue?

  • Hi Sergii,

    I was able to run the enet_cpsw_udpclient from mcu_plus_sdk_am273x_09_02_00_52. Here is the screen capture from the UART output. I am running the example on the AM273x EVM using the QSPI boot mode:

    What is your boot mode? How did you initialize the AM273x EVM.

    You may want to check the following URL for AM273x initialization: AM273x MCU+ SDK: Flash a Hello World example (ti.com)

    Best regards,

    Ming

  • Hello, Ming.

    Thanks a lot for your response.

    I'll try to flash it in first.

    Did you try to run this example in debug mode? I need to use this functionality in my project but it's going to the HwiP_data_abort_handler_c imminently after.

  • Hi Sergii,

    I assume you meant setting breakpoints inside the program. It depends on where you set the breakpoints. In most of the cases, it should work, but certain places like ISRs may cause issue when enter the breakpoints inside them.

    Please elaborate more on what do you mean by run the example in debug mode. 

    Best regards,

    Ming

  • Hi, Ming.

    I don't use breakpoints in ISR. As I sade before, it did not reach even the appMain(NULL) function calling in the main.c file.

    Generally, I have an issue with data transmission. I made my implementation based on this example but it's loose datagrams in debug mode.

    I have launched it by flashing the release version as you suggested and it really works well. But I need to use a debug mode for finish my project.

    Do you have any ideas?

    Thanks a lot for your help.

  • Hi Sergii,

    OK, you meant using the Debug Build for testing. Yes, my test is using the Debug Build. It works fine.

    My guess is that the way you initialize the AM273x EVM caused the problem. Please flash the SBL_NULL into the QSPI flash, then set the EVM to "QSPI Boot" mode. This way, the SBL_NULL will release all cores from reset and put all cores in "Wait For Interrupt mode (WFI)". You can then launch the CCS and connect to target (any core), load and run your application program.

    Once you finished debugging, you can flash the SBL_QSPI along with your finalized application into QSPI flash.

    Please use the C:\ti\mcu_plus_sdk_am273x_09_02_00_52\tools\boot\sbl_prebuilt\am273x-evm\default_sbl_null.cfg instead of C:\ti\mcu_plus_sdk_am273x_09_02_00_52\tools\boot\sbl_prebuilt\am273x-evm\default_sbl_qspi.cfg to flash SBL_NULL into your QSPI flash.

    Best regards,

    Ming

  • Hi, Ming.

    Thank you.

    I tried it but I think I am doing something in the wrong way.

    1. I switched EVM to UART BOOT mode
    2. Flashed it by default_sbl_qspi.cfg
    3. Then switched to "NONE BOOT" mode (Because I was not able to connect R5_0 in QSPI MODE)

    But I got the same result - It works in a release build but imminently crashes in a debug build.

  • Hi Sergii,

    1. Switched EVM to UART BOOT mode
    2. Flashed it by default_sbl_null.cfg
    3. Then switched to "QSPI BOOT" mode

    4. Connect r5f0_0, load and run the debug build of your application.

    Best regards,

    Ming

  • Hi, Ming.

    I have this error when I try to connect the kernel in QSPI MODE of the EVM.

    Thank you.

  • Hi Sergii,

    When you boot from QSPI flash, can you connect the UART? You should see the same on UART:

    Best regards,

    Ming

  • Hi, Ming.

    Yes, I do.

    Best regards.

  • Hi Sergii,

    You will need to change your Target Configuration file to remove the GEL file from the CS_DAP_0, since the SOC initialization has been done by the SBL_NULL:

    Best regards,

    Ming

  • Hi, Ming.

    Yes, thanks a lot, I can launch it now.

    But can you explain me why it's work correct if I flash it by uart_uniflash app but doesn't work if I try to launch it directly from CSS  (NOBOOT MODE)?

    I mean:

    I can launch my project by CSS (NOBOOT MODE) but it doesn't work correct. It lose datagrams.

    In other hand I can't to launch my project in the QSPI BOOT MODE - I receive an error:

    So, I can't compare them.

    Best regards,

    Sergii

  • Hi Sergii,

    It boiled to the way you initialize the SOC and the current status of the individual core (R5F or C66)

    1. When you use the NO BOOT mode, the SOC is initialized by the GEL file. The core may not be in the bring out of reset or ready to be connected (WFI)

    2. When you use the QSPI boot mode and the SBL_NULL is at the flash address 0x0, the ROM bootloader will load the SBL_NULL. The SBL_NULL will bring all cores out of reset and put all cores at WFI, so the target configuration can connect to any core easily.

    3. When you use the QSPI boot mode, the SBL_QSPI is at the flash address 0x0, and the application code (like Hello_World) is at flash 0x80000, the ROM bootloader will load the SBL_QSPI. The SBL_QSPI will bring all cores out of reset and load/run the application program on R5F0_0 core, depends on the application program, it may not be possible for the target configuration file to connect to the R5F0_0 core.

    The best way to develop and debug your application program is to use the SBL_NULL in flash and QSPI boot mode, then use the target configuration file to connect to target core, load and run the program under debugging. Once the application code is ready to be release, flash the SBL_QSPI and your application code into flash (0x0 and 0x80000 respectively), then use QSPI boot mode.

    Best regards,

    Ming

  • Hi, Ming

    Thank you for detailed answer.

    I can debug my project in the way which you suggested but after flashing release I still receive error "Starting QSPI Bootloader ... Some tests have filed!!" (As I show you before).

    Should I do some additional steps with my project before flushing to avoid that?

    Best regards,

    Sergii

  • Hi Sergii,

    You can add DebugP_log() in main() of C:\ti\mcu_plus_sdk_am273x_09_02_00_52\examples\drivers\boot\sbl_qspi\am273x-evm\r5fss0-0_nortos\main.c, so that you know where the error happened. Without those details, it is hard to know where the SBL_QSPI went wrong.

    Best regards,

    Ming 

  • Hi, Ming

    You right I have some issues with my QSPI MODE project compilation. I cann't compile sbl_qspi example. There are some compilation errors.

    I think I have to solve it before continue to solve issues with UDP protocol.

    As I understood the boot image build by "makefile_css_bootimage_gen" and it should be autogenerate. I don't have it in my project at all. What I have to do for genarate it?

    Also there is a big different between contant of this file in the udpclient example project and the sbl_qspi project. Does it ok?

    Thank you.

    Best regards,

    Sergii

  • Hi Sergii,

    You are correct. The boot image is generated automatically by the makefile_css_bootimage_gen (called in the post build step:

    There will be some differences in makefile_css_bootimage_gen for each CCS project, like the project names and the boot image names, but the major part of it will be the same.

    The makefile_css_bootimage_gen for each CCS project is in the same folder as the example.projectspec. For example, sbl_qspi is in C:\ti\mcu_plus_sdk_am273x_09_02_00_52\examples\drivers\boot\sbl_qspi\am273x-evm\r5fss0-0_nortos\ti-arm-clang

    Best regards,

    Ming