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.

Compiler/TMDSCNCD28388D: TMS320F2838x Reset ARM core SYS/BIOS

Part Number: TMDSCNCD28388D

Tool/software: TI C/C++ Compiler

Hello All

TI_RTOS Kernel (SYS/BIOS) User's Guide  SPRUEX3U February 2018

Chapter  3.1 SYS/BIOS Startup Sequence

1. Immediately after CPU reset, perform target/device-specific CPU initialization (beginning at c_int00).

See the "Program Loading and Running" chapter in the Assembly Language Tools User’s Guide for

your target family for details on this step and the cinit() step.

2. Prior to cinit(), run the table of "reset functions" (the xdc.runtime.Reset module provides this hook).

The functions specified in the Reset.fxns[] array are called. These reset functions are called only on

platforms where a reset is performed before running a program.

3. Run cinit() to initialize C runtime environment.

4. Run the user-supplied "first functions" (the xdc.runtime.Startup module provides this hook).

5. Run all the module initialization functions.

6. Run the user-supplied "last functions" (the xdc.runtime.Startup module provides this hook).

7. Run pinit().

8. Run main().

So example tcpEchoF2838X example, which I debugging on the TMDSCNCD28388D board,

Contains *.cfg file and accordighly this file 

  path SYS/BIOS->System->Startup->Module Settings

Initial Size Options                                                                                     Startup Setting

Heap Size 0                                                                                                  User reset function -  null

Stack size 2048                                                                                                    Maximum module init passes - 32

Argument Size 0

Function Called Before C Runtime Initialization                                         Function Called Before Module Initialization

N/A                                                                                                                     First function 0  - ti.sysbios.heaps.HeapMem.init

                                                                                                                       Firstfunction 1 -  ti_sysbios_family_arm_f2838x_init_Boot_initStartup

First function 2 - ti_sysbios_hal_Hwi_initStack

First function 3 - ti.sysbios.family.arm.m3.Hwi.initNVIC

Function Called After Module Initialization

N/A

The function  number one of   "Function Called Before Module Initialization" list. -  ti_sysbios_family_arm_f2838x_init_resetISR, 

  make jump to the assembler standart  _c_int00,

But accordinghly mentioned above Chapter  3.1 it is should be in step 1 but it is done in step 4.

So I have some doubts about correctness this list of functions. 

Is it correct content of "Function Called Before Module Initialization" list?

Why this function is placed to the Function Called Before Module Initialization

but not to the

1) to the  Reset vector  as it described in  User's Guide  SPRUEX3U February 2018

Or

2) to the Function Called Before C Runtime Initialization 

I asked it because mentioned above example has problem with CM application loading and resét (see the thread  "TMDSCNCD28388D: TCP/IP debugging")

Best Regards

Andrii Shevchuk

  • Andrii,

    Your format is not aligned so its a bit hard to read what you are saying but I think I got what you are asking:
    I don't see the function 'ti_sysbios_family_arm_f2838x_init_resetISR' in this "First Function" list that you wrote,
    so I'm not understanding why you are asking about it?  I assume the list that you put up which I've copied below
    is the actual list of functions that are getting called in you application?

    First function 0  - ti.sysbios.heaps.HeapMem.init

    Firstfunction 1 -  ti_sysbios_family_arm_f2838x_init_Boot_initStartup

    First function 2 - ti_sysbios_hal_Hwi_initStack

    First function 3 - ti.sysbios.family.arm.m3.Hwi.initNVIC

    Judah

  • hello Judahvang

    Yes you are right . It is my mistake.

    I see the same.

    And Accordighly *.map file

    the function ti_sysbios_family_arm_f2838x_init_resetISR realy placed

    to the Reset vector.

    So I am sorry.

    Best regards

    Andrii Shevchuk.