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.

CCS/TMS320F28379D: Problem creating A new CCS Project

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Tool/software: Code Composer Studio

Hi,

I Posted a few similar queries when I was getting the below errors. Now I referred the "F2837xD Firmware Development Package" And followed the instructions step by step. to create a fresh project I have just added the blinky program given and getting these errors. Why?? Is it because of the updated version of C2000ware or what?

Description Resource Path Location Type
#10010 errors encountered during linking; "_CPU01.out" not built _CPU01 C/C++ Problem
<a href="processors.wiki.ti.com/.../10099"> program will not fit into available memory. run placement with alignment/blocking fails for section ".stack" size 0x400 page 1. Available memory ranges: .ccsproject /_CPU01 line 66, external location: C:\TI\C2000Ware_2_01_00_00_Software\device_support\f2837xd\common\cmd\2837xD_RAM_lnk_cpu1.cmd C/C++ Problem
gmake: *** [all] Error 2 _CPU01 C/C++ Problem
gmake[1]: *** [_CPU01.out] Error 1 _CPU01 C/C++ Problem

  • hi,

    Vishal Kakade1 said:
    And followed the instructions step by step. to create a fresh project I have just added the blinky program given and getting these errors. Why??

    Are you using the device_support\f2837xd\examples\cpu1\blinky example?

    Could you tell me if you are using the default example or using a new project and just added the .c main file?

    I just tried building .. it seems fine,... CCS 9.2 , 18.12.1 compiler.

    Regards.

  • Hi,

    I am using the code given in the document itself. Even without any code, I am getting these errors.

    And I wanna understand, Why can't we directly select F28379D as a device while creating the project? instead of selecting C28xx generic device. 

    And Why the examples of F28379D have the device set as F28377D? If I change it to F28379D, I get the above errors.

    Because of this, I am not able to create fresh projects. Instead, I am using empty driver lib projects. But when I tried to add Bit-level support to this to achieve dual-core support(IPC Commands from CPU1 to CPU2 to boot from flash) I am getting multiple errors.

    To-Do dual-core programming, Do I need to learn bit-level programming? as the peripherals and IO's are configured in CPU1.(I want more examples or documentation for this).

    I am new to programming and doing Driverlib coding. I wanna run both the cores independently with flash booting.(Where is the detailed documentation for writting codes for both the cores.?)

    Where Can find more documentation regarding Predefined symbols and Configuring build and debug configuration?

    Regards

    Vishal Kakade

  • Hi,

    I reinstalled the CCS (9.3) and C2000ware. Now Those errors are gone. And I am getting the below errors. (Not understanding the issue)

    Description Resource Path Location Type
    gmake: *** No rule to make target 'C:/TI/C2000Ware_2_01_00_00_Software/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib', needed by 'all'. _CPU1_XDS110_ELOAD2.0 V0.0 C/C++ Problem
    gmake: Target 'all' not remade because of errors. _CPU1_XDS110_ELOAD2.0 V0.0 C/C++ Problem

    Description Resource Path Location Type
    This project contains 1 unresolved buildable linked resource(s). The project may not build as expected. _CPU1_XDS110_ELOAD2.0 V0.0 project Problem

    Regards

    Vishal Kakade

  • Hi,

    I reinstalled the CCS (9.3) and C2000ware. Now Those errors are gone. And I am getting the below errors. (Not understanding the issue)

    Description Resource Path Location Type
    gmake: *** No rule to make target 'C:/TI/C2000Ware_2_01_00_00_Software/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib', needed by 'all'. _CPU1_XDS110_ELOAD2.0 V0.0 C/C++ Problem
    gmake: Target 'all' not remade because of errors. _CPU1_XDS110_ELOAD2.0 V0.0 C/C++ Problem

    Description Resource Path Location Type
    This project contains 1 unresolved buildable linked resource(s). The project may not build as expected. _CPU1_XDS110_ELOAD2.0 V0.0 project Problem...

    Regards

    Vishal Kakade

  • hi ,

    Vishal Kakade1 said:
    I am using the code given in the document itself. Even without any code, I am getting these errors.

    We have got a general feedback that the doc needs some updates so we have taken a feedback to improve the getting started docs.

    I would suggest to import an existing example.

    Vishal Kakade1 said:
    Why can't we directly select F28379D as a device while creating the project? instead of selecting C28xx generic device. 

    You can do that . If we use the Generic C28x device it will use the generic c28x linker cmd files but with the actual part number we will already get the device cmd file attached in the project.

    Vishal Kakade1 said:
    Because of this, I am not able to create fresh projects. Instead, I am using empty driver lib projects. But when I tried to add Bit-level support to this to achieve dual-core support(IPC Commands from CPU1 to CPU2 to boot from flash) I am getting multiple errors.

    Please use the C2000Ware_2_01_00_00\device_support\f2837xd\examples\cpu1\empty_bitfield_driverlib it enables support for bitfield and driverlib.

    Vishal Kakade1 said:
    And Why the examples of F28379D have the device set as F28377D? If I change it to F28379D, I get the above errors.

    Are you seeing 2 linker cmd files in that case?

    Vishal Kakade1 said:
    To-Do dual-core programming, Do I need to learn bit-level programming? as the peripherals and IO's are configured in CPU1.(I want more examples or documentation for this).

    No you don't .

    C2000Ware_2_01_00_00\device_support\f2837xd\docs\F2837xD_DEV_USER_GUIDE.pdf

    D:\ti\c2000\C2000Ware_2_01_00_00\driverlib\f2837xd\examples\dual\empty_projects for dual core example

    -> add bitfield support like adding the DUAL_HEADERS predefine in the project properties.

    Regards.

  • Hi,

    Thanks for your response.

    1. I see that bit field examples have standalone examples for both the cores. I am trying to add driverlib support buy following the instruction in DEV user guide. But getting errors.

    Just after importing blinky project (without doing anything, I got below errors

    Description Resource Path Location Type
    #1965 cannot open source file "inc/hw_memmap.h" .ccsproject /blinky_dc_cpu01 line 45, external location: C:\TI\c2000\C2000Ware_2_01_00_00\device_support\f2837xd\common\include\driverlib.h C/C++ Problem
    gmake: *** [blinky_dc_cpu01.obj] Error 1 blinky_dc_cpu01 C/C++ Problem
    gmake: Target 'all' not remade because of errors. blinky_dc_cpu01 C/C++ Problem

    2. I also tried creating a CPU 2 project from empty bit field driver lib examples. Still getting random errors.

    3. I took an empty bit field driver lib examples as cpu 1 project . and took a core 2 driver lib projects. and code for both is below. and getting the errors below.

    //#############################################################################
    //
    // FILE:   empty_bitfield_driverlib_main.c
    //
    // TITLE:  Empty Example
    //
    // Empty Bit-Field & Driverlib Example
    //
    // This example is an empty project setup for Bit-Field and Driverlib
    // development.
    //
    //#############################################################################
    // $TI Release: F2837xD Support Library v3.08.00.00 $
    // $Release Date: Mon Dec 23 17:32:30 IST 2019 $
    // $Copyright:
    // Copyright (C) 2013-2019 Texas Instruments Incorporated - http://www.ti.com/
    //
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions
    // are met:
    //
    //   Redistributions of source code must retain the above copyright
    //   notice, this list of conditions and the following disclaimer.
    //
    //   Redistributions in binary form must reproduce the above copyright
    //   notice, this list of conditions and the following disclaimer in the
    //   documentation and/or other materials provided with the
    //   distribution.
    //
    //   Neither the name of Texas Instruments Incorporated nor the names of
    //   its contributors may be used to endorse or promote products derived
    //   from this software without specific prior written permission.
    //
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    // $
    //#############################################################################
    
    //
    // Included Files
    //
    #include "F28x_Project.h"
    #include "F2837xD_Ipc_drivers.h"
    #include "driverlib.h"
    #include "device.h"
    
    //
    // Main
    //
    void main(void)
    {
        //
        // Initialize device clock and peripherals
        //
        Device_init();
    #ifdef _STANDALONE
    #ifdef _FLASH
    //
    // Send boot command to allow the CPU2 application to begin execution
    //
        IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
    #else
    //
    // Send boot command to allow the CPU2 application to begin execution
    //
        IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);
    #endif
    #endif
    
    #ifdef _FLASH
        InitFlash();
    #endif
    
        //
        // Initialize GPIO and configure the GPIO pin as a push-pull output
        //
        Device_initGPIO();
        GPIO_setPadConfig(164, GPIO_PIN_TYPE_STD);
        GPIO_setDirectionMode(164, GPIO_DIR_MODE_OUT);
        GPIO_setPadConfig(165, GPIO_PIN_TYPE_STD);
        GPIO_setDirectionMode(165, GPIO_DIR_MODE_OUT);
    
        //
        // Configure CPU2 to control the LED GPIO
        //
        GPIO_setMasterCore(165, GPIO_CORE_CPU2);
    
        //
        // Initialize PIE and clear PIE registers. Disables CPU interrupts.
        //
        Interrupt_initModule();
    
        //
        // Initialize the PIE vector table with pointers to the shell Interrupt
        // Service Routines (ISR).
        //
        Interrupt_initVectorTable();
    
        //
        // Enable Global Interrupt (INTM) and realtime interrupt (DBGM)
        //
        EINT;
        ERTM;
    
        //
        // Loop Forever
        //
        for (;;)
        {
            //
            // Turn on LED
            //
            GPIO_writePin(164, 0);
    
            //
            // Delay for a bit.
            //
            DEVICE_DELAY_US(500000);
    
            //
            // Turn off LED
            //
            GPIO_writePin(164, 1);
    
            //
            // Delay for a bit.
            //
            DEVICE_DELAY_US(500000);
        }
    }
    
    //
    // End of File
    //
    

    //#############################################################################
    //
    // FILE:   led_ex1_blinky_cpu2.c
    //
    // TITLE:  LED Blinky Example
    //
    // <h1> LED Blinky Example (CPU2) </h1>
    //
    // This example demonstrates how to blink a LED using CPU2.
    //
    // \b External \b Connections \n
    //  - None.
    //
    // \b Watch \b Variables \n
    //  - None.
    //
    //
    //#############################################################################
    // $TI Release: F2837xD Support Library v3.08.00.00 $
    // $Release Date: Mon Dec 23 17:32:30 IST 2019 $
    // $Copyright:
    // Copyright (C) 2013-2019 Texas Instruments Incorporated - http://www.ti.com/
    //
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions
    // are met:
    //
    //   Redistributions of source code must retain the above copyright
    //   notice, this list of conditions and the following disclaimer.
    //
    //   Redistributions in binary form must reproduce the above copyright
    //   notice, this list of conditions and the following disclaimer in the
    //   documentation and/or other materials provided with the
    //   distribution.
    //
    //   Neither the name of Texas Instruments Incorporated nor the names of
    //   its contributors may be used to endorse or promote products derived
    //   from this software without specific prior written permission.
    //
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    // $
    //#############################################################################
    
    //
    // Included Files
    //
    #include "driverlib.h"
    #include "device.h"
    
    //
    // Main
    //
    void main(void)
    {
        //
        // Initialize device clock and peripherals
        //
        Device_init();
    
        //
        // Initialize GPIO and configure the GPIO pin as a push-pull output
        //
        // This is configured by CPU1
    
        //
        // Initialize PIE and clear PIE registers. Disables CPU interrupts.
        //
        Interrupt_initModule();
    
        //
        // Initialize the PIE vector table with pointers to the shell Interrupt
        // Service Routines (ISR).
        //
        Interrupt_initVectorTable();
    
        //
        // Enable Global Interrupt (INTM) and realtime interrupt (DBGM)
        //
        EINT;
        ERTM;
    
        //
        // Loop Forever
        //
        for(;;)
        {
            //
            // Turn on LED
            //
            GPIO_writePin(165, 0);
    
            //
            // Delay for a bit.
            //
            DEVICE_DELAY_US(500000);
    
            //
            // Turn off LED
            //
            GPIO_writePin(165, 1);
    
            //
            // Delay for a bit.
            //
            DEVICE_DELAY_US(500000);
        }
    }
    
    //
    // End of File
    //
    

    errors:

    Description Resource Path Location Type
    #10010 errors encountered during linking; "empty_bitfield_driverlib_project.out" not built empty_bitfield_driverlib_project C/C++ Problem
    <a href="http://processors.wiki.ti.com/index.php/Compiler/diagnostic_messages/10234">#10234-D</a> unresolved symbols remain empty_bitfield_driverlib_project C/C++ Problem
    gmake: *** [all] Error 2 empty_bitfield_driverlib_project C/C++ Problem
    gmake[1]: *** [empty_bitfield_driverlib_project.out] Error 1 empty_bitfield_driverlib_project C/C++ Problem
    unresolved symbol _IPCBootCPU2, first referenced in ./empty_bitfield_driverlib_main.obj empty_bitfield_driverlib_project C/C++ Problem
    unresolved symbol _RamfuncsLoadSize, first referenced in ./F2837xD_SysCtrl.obj empty_bitfield_driverlib_project C/C++ Problem
    unresolved symbol _RamfuncsLoadStart, first referenced in ./F2837xD_SysCtrl.obj empty_bitfield_driverlib_project C/C++ Problem
    unresolved symbol _RamfuncsRunStart, first referenced in ./F2837xD_SysCtrl.obj empty_bitfield_driverlib_project C/C++ Problem

    Can you give me simple steps to create a project for both the cores to run independently with driverlib.?

    Regards

    Vishal Kakade

  • Hi,

    I am getting these errors randomly. I am attaching my complete project and some images of memory allocation and errors during different configurations. 

    1. My code is compiling only for flash configuration. Getting some errors for RAM build. (Images attached.)

    2. Now for ex: If I am adding some extra code. I am getting memory-related errors.

    file (VBUS1.c)

    void SET_CP_VCON1(void)

    {
    // DAC_setShadowValue(DACA_BASE, 0);
    // ISET_VBUS1 = ((BB_Port1_RX[2] | (BB_Port1_RX[3] << 8))) / 1000.0;
    }

    }

    Now If I uncomment the code, I am getting below errors.(Imahe attached) 

    Description Resource Path Location Type
    #10010 errors encountered during linking; "_CPU1_ELOAD_2.0_0.0.out" not built _CPU1_ELOAD_2.0_0.0 C/C++ Problem
    <a href="processors.wiki.ti.com/.../10099"> program will not fit into available memory. placement with alignment/blocking fails for section ".cinit" size 0x23 page 0. Available memory ranges: 2837xD_FLASH_lnk_cpu1.cmd /_CPU1_ELOAD_2.0_0.0 line 67 C/C++ Problem
    gmake: *** [all] Error 2 _CPU1_ELOAD_2.0_0.0 C/C++ Problem
    gmake[1]: *** [_CPU1_ELOAD_2.0_0.0.out] Error 1 _CPU1_ELOAD_2.0_0.0 C/C++ Problem

    Please refer to my project and tell me whats wrong with RAM debug as well as after modifying any function, Getting memory related issues.

    _CPU1.rar

    Debug images.rar

  • hi Vishal ,

    Looks like you are utilizing the memory locations which are allocated for cinit memory as per the linker cmd file or exceeding whats needed by cinit.

    cinit is a section in linker cmd file that has the initialize global variables.

    Add another section of memory to the existing cinit range like shown in the link below:

    http://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html#allocate-to-multiple-memory-ranges

    Or 

    Split the section across multiple memory ranges 

    http://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html#split-an-output-section-across-multiple-memory-ranges

    Or 

    Replace the exciting memory section of cinit with something else.

    More details below:

    Regards.