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.

TI ICE Version 2 Bootloader

Other Parts Discussed in Thread: SYSBIOS, SYSBIOSSDK-IND-SITARA, AM3359

 

Hello All,

I am currently working with the TI ICE version 2 board and I am trying to rebuild the bootloader (From the  AM335x SYSBIOS Industrial SDK 01.01.01).  I am having some trouble rebuilding the given project within the SDK.   Some of the instructions in the AM335x SYSBIOS Industrial SDK 01.01.01 User guide are hard to follow for me would appreciate someone helping me out with the following:

1.  How do I Set build configuration for dependant projects as "FixedPoint"?

2. Import dependent starterware projects. They are drivers, platform and mmcsdlib?

3. Build dependent projects in CCS?

4. Set predefined macros?

5. Set the post build script arguments properly?

When I try to build the project I get the following error.

Errors occurred during the build.
Errors running builder 'CDT Builder' on project 'boot'.
java.lang.NullPointerException

When I first open the project there is no RTSC configuration.  

  • Hello,

    From above post, I think I have found the problem regarding the build error. I had some linked resources paths that were not correct for now I have used absolute paths in the Linked Resources settings. Now I am able to build the dependent projects, however, the document states that "Import dependent starterware projects. They are drivers, platform and mmcsdlib. They can be located at $(IA_SDK_HOME)\starterware\build\armv7a\cgt_ccs\am335x\evmAM335x\." Does this mean just import those three projects or does it mean import the entire directory?

    Now, when I just import just the three projects I am able to build (The Three Dependent Projects Adjusting The Linked Resourses Setting To Absolute Paths) with no errors. When I try to build the bootloader project I get this error:


    undefined first referenced
    symbol in file
    --------- ----------------
    __STACK_END ./bl_init.obj
    __TI_auto_init ./bl_init.obj
    __aeabi_uidivmod C:/ti/am335x_sysbios_ind_sdk_01.01.01.01/starterware/build/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/starterware_libs/drivers.lib<uart_irda_cir.obj>
    strcmp C:/ti/am335x_sysbios_ind_sdk_01.01.01.01/starterware/build/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/starterware_libs/platform.lib<board.obj>
    strncmp C:/ti/am335x_sysbios_ind_sdk_01.01.01.01/starterware/build/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/starterware_libs/platform.lib<board.obj>

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/Debug/boot.out" not built
    gmake: *** [../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/Debug/boot.out] Error 1

    >> Compilation failure
    makefile:158: recipe for target '../../../../../../../binary/armv7a/cgt_ccs/am335x/evmAM335x/bootloader/Debug/boot.out' failed
    gmake: Target 'all' not remade because of errors.

    **** Build Finished ****

    Any ideas? really need help on this.
  • Ignacio,

    Let me try to assist. 

    Could you please grab the latest version of the ISDK? This has a starterware version 2.1.0.1.

    http://downloads.ti.com/sitara_indus/esd/SYSBIOSSDK-IND-SITARA/latest/index_FDS.html 

    The errors that you are seeing are path definitions that cannot link the relevant symbols. These can be fixed by going into project properties and checking the linker section what the include definitions are, and then point to the right locations.

    When you do import the bootloader project, please import all the other projects as well at "C:\ti\sysbios_ind_sdk_2.1.1.2\sdk\starterware". This will ensure that all the dependencies will be satisfied at build time.

    Hope this helps.

    Lali

  • Hi  Ignacio

    Although not a cause of any of the issues that you are encountering - we would like to recommend moving from

    SYSBIOSSDK-IND-AM335X: SYSBIOS Industrial SDK for AM335x Processors ver 01.01.01

    Which is a legacy SDK that is being maintained for existing customers. This uses an older version of starterware.

    The current active Industrial Software development kit branch development branch is:

    SYSBIOSSDK-IND-SITARA: SYSBIOS Industrial Software Development Kit (SDK) for AM335x and AM437x v02.01.01.02

    Both of these packages are shown on the web page. http://www.ti.com/tool/sysbiossdk-ind-sitara 

    With regards to building a starterware project. Let's walk though the GPIO app LED Blink example.

    But before we begin - check to see the IA_SDK_HOME is defined in you windows system environment.

    In the default installation case this is C:\ti\sysbios_ind_sdk_2.1.1.2\sdk.

    First we import the project which is located at C:\ti\sysbios_ind_sdk_2.1.1.2\sdk\starterware\examples\gpio\led_blink

    When we right click on the project in CCS project explorer and select Build and the dependencies tab we see

    We will need to load these projects into the CCS workspace.

    The easiest way to do this is to select import project and position the browser to C:\ti\sysbios_ind_sdk_2.1.1.2\sdk\starterware 

    The project import window will show

    Select the board, dal, device, example_utils, soc and utils projects

    The next step is to configure the projects to the AM335x and the  ICEV2 board.

    We start with setting the properties the gpio app led blink  project.

    In the General properties - we ensure that:

    The configuration is am335x_debug is selected and active

    and that the ICE_AM3359 [Cortex A] board is selected

    We repeat this for each of the dependent projects

    We then build the gpio_app_leb_blink project.   It should build successfully.

    I got 1 warning about the re declaration of a variable.

    David

  • David,

    Thank you for your reply.  I will be giving your suggestions a try today.  

    -IA

  • Why are the .out files linked?  They should be built when you compile correctly? This is the source of my confusion. 

  • When I import the projects I get all kinds of broken paths and libboard_boot.a is nowhere in the SDK directories. How can I import the projects and not have these issues?  

     

  • Hello David,

    Again thank you very much for your reply.  I have gone through your directions a couple of  times now and it's not as straightforward for me I don't know why

    First, I import the project exactly like your direction describes (The Led Project).  Verified IA_SDK_HOME variable then import the remaining dependent projects  for the Led Project.  When I open the project, paths are broken and they're are lib files that I can't find in the SDK directories.

     In the above picture, I can't find libsoc_boot.a,  libsoc_boot_qspi.a that is an example their other libs as well that I can't find.  Now, when I set my configuration to am335x_debug and adjust libsoc.a to an absolute path then I compile I receive this error:

      

    For the project to build in this example (utils project) I have to remove all other configuration then the project builds.  Repeat this process for the led project and dependent projects.  Setting the lib paths to absolute paths and removing other configurations.  

    What could I be doing wrong?

  • Hi  Ignacio

    We build each configuration separately. Once the configuration is built then the <boot type>.out  is available and error is removed

    For example after building the mcspi release configuration

    I encounter path errors when I don't have IA_SDK_HOME correctly set. In the default configuration it would be.

    I find it helpful when I have modified a project and wish to restart to  to refresh your starterware example project directory(s) files  and then delete and  re import the projects into CCS.  To do this - I keep a copy of the ISDK in a separate directory.

    Before going further. I should mention that - I typically use use the Prebuilt Bootloader images. These are available as part of http://downloads.ti.com/sitara_indus/esd/SYSBIOSSDK-IND-SITARA/latest/exports/sysbios_ind_sdk_prebuilt_02_01_01_02.zip 

    From the Industrial SDK user Guide bootloader section, http://processors.wiki.ti.com/index.php/SYSBIOS_Industrial_SDK_02.01.01_User_Guide#Building_Bootloader, mmcsd and mcspi bootloader options.

    Let me start another reply with an example build mcspi build

    David

  • Hi  Ignacio

    Let's build a release version of the mcspi boot loader

    We load the boot loader project and configure it in the following manner.  Note it can take two iterations to get both the configuration and the board set.

    The project has the following dependent libraries

    We load these projects plus the ff9b_lib .  The ff9b_will be requested later when we compile.

    We configure the dependent projects to use the boot_release or release configuration as indicated above and the ICE AM3359 board.

    We then first build each of the dependent projects. We then build the bootloader project.

    The bootloader project will have an error due to a overly large stack  size.

    We can reduce the stack to 0xC000 to eliminate this error.  I have a question into the development team to understand the optimum setting for this value.

    David

  • Hello David


    Thank you so much again for your help. I am will be giving this a try.
  • Hello David,

    Did you find the optimum setting for the value of STACKSIZE and HEAPSIZE? Also how do you set build configuration for dependant projects as "FixedPoint"?

    I am able to build the bootloader without any error but the binary file bootloader_boot_mcspi_a8host_release_ti.bin is around 1gb in size. Also  the "bootloader_boot_mcspi_a8host_release.out"  file is 117kb in size as compared to 51kb (compared from C:\ti\pdk_am335x_1_0_5\packages\ti\starterware\binary\bootloader\bin\am335x-evm\gcc). How can I get the exact bootloader image generated as given by prebuilt binaries or sdk\starterware\binary\bootloader\bin\am335x-evm\gcc folder?

    regards

    Mohit

  • Hi there,

    run into the same issue. Is there sth. new regarding this topig?

    Thanks in advance,
    Jim
  • Hello Jim,
    The bootloader should be built using makefile.

    You can also refer to following thread
    e2e.ti.com/.../595113

    regards
    Mohit