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.

What are packages?

Other Parts Discussed in Thread: SYSBIOS, TMS320C6747, OMAPL138

Hi!

I have installed NDK v2 and looking at the dirs of various subsystems, like DSP/BIOS, PSP, EDMA3 support etc.. there is always a dir called packages with a bunch of xml files. How can these files be consumed and used by the CCS v4? My current impression is that there is relatively large work (huge?) associated just with settings correct paths and configuring example projects before they can run, because all the install instructions apply to CCS v3.3 Definitely lots of room left for making the project configuration easier.

Thanks!
Atmapuri

 

 

  • I think you are referring to the RTSC package. If you want more information on that topic, see:

    http://rtsc.eclipse.org/docs-tip/XDCtools_User's_Guide

    But I don't think you need to know all the details to get it to work with v4. I've been able to use the v4 migration wizard to successfully import my 3.3 NDK projects to v4 

    ki

  • Hi Atmapuri,

    Products like DSP/BIOS,PSP,EDMA3 are delivered as RTSC packages. In general consuming RTSC content in CCSv4 requires the following steps:

    • Create project with RTSC support. Select the RTSC products (eg. BIOS,PSP,NDK) of your choice. Refer to this flash demo for details 
    • RTSC content may be configured using the XGCONF graphical configuration tool. Refer to this demo for details.
    • Invoke target content APIs from your  C language application

    The easiest way to get started would be to create a project with an BIOS example as outlined in the first flash demo.

    Content like NDK/EDMA3/PSP drivers can be consumed in a similar manner. Note that if a product does not show up in the "RTSC Configuration Settings" page of the project wizard (since some of them do not deliver eclipse integration plugins) you can add the  RTSC repositories shipped by the product in the following manner:

    • Press the  "Add" button on the page and then select "Select repository from file-system"
    • Press the browse button and navigate to the "packages" folder of the product of your interest: eg. <ndk_install_dir>/packages. Press the "OK" button.
    • Now you should see the repository that you selected in the "Other Repositories" group of the wizard page. 

    Note that the RTSC configuration project will define the paths that are required by the application project. You are not required to do anything explicitly in your application.

    Regards

    Amit

     

     

  • Hello Amit,

    This got me a little further. However, when you mention NDK/EDMA3/PSP drivers, only the PSP drivers appear in the RTSC configuration page. Both NDK and EDMA3 have to be added with "Select repository from file system". The only effect of this seems to be that they are both added to the XDC tool search path and that's it. The XGCONF tool does nothing for any of these except that it exposes EDMA3 Resource manager which has a single constant value to configure. Can you please confirm that this is correct?

    Is there any other benefit?
    Is it possible to use NDK with BIOS v6?
    When RTSC is enabled is BIOS v6 is mandatory? (The RTSC configuration settings do not allow a choice of bios version.)
    When checking the  XGCONF configuration it options shows many times less features than BIOS v5 configuration tool. Maybe this has to do with the lack of platform support by the vendor for BIOS 6?
    Is it even worth considering BIOS 6 for evm6747?
    If I dont use RTSC and do not use BIOS 6, do the (XDC) packages provided serve any purpose? How?
    Do I need EDMA3 with CCS4 or is this already a part of the BIOS v5 shipped with CCS?
    The audio driver from PSP seems to be written for Bios 6 (using IDriver), but everything else mentions BIOS v5 requirement. Does that mean that PSP requires BIOS 6, if there is a need to use the audio driver?

    I am trying to discover if there is any shortcut for configuring a project a part from manually adding all the lib and include paths and bios configuration, when consuming NDK/EDMA3/PSP. I am thinking to maybe just add all headers and c files for the PSP, EDMA3 and NDK and BSL which will be used to the project. The problem is they are not defined in a way so that they could be merged together in terms of turning individual features on and off. Each BIOS specific configuration and each compiler define has to be carefully merged together. I also dont see an easy way to zip and move the project to another machine where installation paths of individual packages may be different.

    I have to use: Audio, NDK, SPI flash and RTC in my application. One of the things I dont quite understand is the number and type of FLASH chips and connections used to attach them to OMAPL137. There is nothing mentioned on the board layout (I also cant find any chip on the board) and code examples show NAND flash examples, NDK uses I2C port examples (?) to access EEPROM, while all the docs talk about SPI flash.

    Thanks!
    Atmapuri

  • Hello Atmapuri,

    Answers are given below

    >This got me a little further. However, when you mention NDK/EDMA3/PSP drivers, only the PSP drivers appear in the RTSC configuration page. Both NDK and EDMA3 have to >be added with "Select repository from file system".

    [AM] I see that the edma3 v2.10.00.01 has the eclipse plugin supplied with it. If you have this version installed in your system it should show up in the wizard. Unfortunately for the NDK you have to manually add the repository.

    >The only effect of this seems to be that they are both added to the XDC tool search path and that's it.

    [AM]  From a build perspective selecting a product in the wizard adds the repositories provided by the product to the package path . This is valuable since you do not have to manually add these paths to your build system - in this case a CCS4 project - for all the components that you may want to consume. 

    >The XGCONF tool does nothing for any of these except that it exposes EDMA3 Resource manager which has a single constant value to configure. Can you please confirm >that this is correct?

    [AM] XGCONF reflects on the content being supplied by a module. In the case of the EDMA3 resource manager there is nothing for the user to configure. The real benefit of the tool is realized when you start using more complex modules in your system. Take a look at the BIOS6 'Task' module and review the options for configuration. 


    >Is it possible to use NDK with BIOS v6?

    [AM] I believe this is possible. NDK is completely rebuildable and you should be able to use it with BIOS6. The BIOS team can give their inputs as well.

    >When RTSC is enabled is BIOS v6 is mandatory? (The RTSC configuration settings do not allow a choice of bios version.)

    No. RTSC is a technology that enables the production of  embedded software components.  Products like BIOS6,PSP/EDMA3 deliver their content as RTSC components called packages. These packages may contain modules that maybe configured and consumed by the application developer. Note that the XDCtools product (also delivered with CCS4) is required to produce  and consume RTSC content. The RTSCpedia is a great resource on all things RTSC. Also RTSC specific questions can be posted on the eclipse newsgroup


    >When checking the  XGCONF configuration it options shows many times less features than BIOS v5 configuration tool. Maybe this has to do with the lack of platform support >by the vendor for BIOS 6?

    [AM] What specific features are missing in BIOS6? Note that architecturally BIOS5 and BIOS6 are quite different. The functionality that you were used to in BIOS5 should be available via the various modules shipped with BIOS6. I would suggest reviewing the modules presented in the BIOS6 Product View in XGCONF.


    >Is it even worth considering BIOS 6 for evm6747?

    [AM] Absolutely. This is the latest and greatest BIOS available.  BIOS6.2x releases are open source and are shipped with all the 'C' code. You also get much better runtime visualization and debug tools  (ROV/RTA) with BIOS6. For 6747 you have the drivers for BIOS6 so there should not be a problem in going this route.

    >If I dont use RTSC and do not use BIOS 6, do the (XDC) packages provided serve any purpose? How?

    [AM] RTSC is only required if you are consuming any RTSC content like BIOS6/PSP/EDMA3/NDK.  As a side note the XDCtools product ships a minimal runtime that maybe useful in certain application scenarios.


    >Do I need EDMA3 with CCS4 or is this already a part of the BIOS v5 shipped with CCS?

    [AM] EDMA3 is a separate product from BIOS. Whatever version of BIOS you use you need to get the EDMA product separately.


    >The audio driver from PSP seems to be written for Bios 6 (using IDriver), but everything else mentions BIOS v5 requirement. Does that mean that PSP requires BIOS 6, if >there is a need to use the audio driver?

    [AM] Maybe the BIOS team can jump in here.  I am using PSP v2.00.00.06 release that supports BIOS6. 

    >I am trying to discover if there is any shortcut for configuring a project a part from manually adding all the lib and include paths and bios configuration, when consuming >NDK/EDMA3/PSP.I am thinking to maybe just add all headers and c files for the PSP, EDMA3 and NDK and BSL which will be used to the project. The problem is they are not >defined in a way so that they could be merged together in terms of turning individual features on and off. Each BIOS specific configuration and each compiler define has to >be carefully merged together. 

    [AM] RTSC solves this problem for you so that you don't have to manipulate the include paths in your project. Consider the following example.

    Let's say you want to use the bios6 task module. You can add a task using XGCONF. The configuration script file (*.cfg) in your RTSC configuration project  will contain the following line of script code.

    ----------------------------------------------------------------------------

    xdc.useModule('ti.sysbios.knl.Task');

    ----------------------------------------------------------------------------

    Now  the code in your application project will look something like this:

    ----------------------------------------------------------------------------

    #include <ti/sysbios/knl/Task.h>

    Void main()

        Task_Params taskParams;

         Task_Handle tsk1;

         /* Create task*/

        Task_Params_init(&taskParams);

        taskParams.priority = 1;

        tsk1 = Task_create (task1, &taskParams, NULL);

    .....

    }

    ---------------------------------------------------------------------------------

    You will see that you can build the application project without manually adding any additional paths. This happens because the application project automatically picks up the paths to the repositories containing the modules that you configured in your RTSC configuration project.  Since all the products you have mentioned (BIOS/NDK/PSP) are delivered as RTSC packages it should be easy for you to configure the relevant modules using XGCONF.  Once configuration is complete you can invoke the module API in your application code. 

    >I also dont see an easy way to zip and move the project to another machine where installation paths of individual packages may be different.

    CCS4 projects are portable. So you can use the same projects in multiple machines as long as you have all the components (BIOS/NDK/PSP etc..) installed. CCS4 also has an export/import wizard  (goto "File ->Import|Export" in the top level menu of the IDE)  that allows you to export your project as an archive file and import the archive in another machine.

    >I have to use: Audio, NDK, SPI flash and RTC in my application. One of the things I dont quite understand is the number and type of FLASH chips and connections used to >attach them to OMAPL137. There is nothing mentioned on the board layout (I also cant find any chip on the board) and code examples show NAND flash examples, NDK >uses I2C port examples (?) to access EEPROM, while all the docs talk about SPI flash.

    [AM] Need someone from the applications team to chime in here.

     

     

  • Hi!

    Thank you for clearing things up. About product versions. I googled for EDMA3 download and found this page:

    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/index.html

    There is new EDMA3 v2 driver. With XGCONF, this still lists in the "other repositories" but allows now total of 4 modules to be included.  BIOS PSP from the same download page still yields version1.3 and mentiones BIOS v5.x as the requirement.Is it possible to access BIOS PSP v2 that you are using?

    To use RTSC packages it is neccessary to add a module (and then possibly create an instance). These modules have to be listed in the XGCONF to be accessible or not? Even if NDK and PSP (v1.3) are added manually to the repository, they list no modules in XGCONF. However, some package us being shipped with NDK. How to access that module (if it is a RTSC module) without XGCONF? How can you tell what is its name and address?

    About BIOS5 and 6 differences. BIOS v5 has extensive configuration options to specify where to put various memory sections. How do I specify in BIOS v6, that everything should be running from SDRAM?

    Thanks!
    Atmapuri

     

     

     

     

     

     

  • >Is it possible to access BIOS PSP v2 that you are using?

    I downloaded the release from http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/psp/bios_psp/index.html

    >To use RTSC packages it is neccessary to add a module (and then possibly create an instance).

    No. Some packages simply supply libraries. So you will not see anything in XGCONF. I would recommend starting with the examples available in the PSP/NDK product to understand the usage.

    >How to access that module (if it is a RTSC module) without XGCONF?

    The XGCONF  tool essentially generates  code in the RTSC configuration file depending on the UI actions like adding a module/creating an instance. You can also choose to edit the RTSC configuration file directly in the "Source" pane of XGCONF. 

    > How do I specify in BIOS v6, that everything should be running from SDRAM?

    Memory map is specified in a RTSC platform package. In the new project wizard the platform is specified in the  RTSC Configuration Settings page in a combo box with the title RTSC Platform: You may also want to review this post for more details on controlling the memory map in your application. 

    The XDCtools product ships a few platforms that you can start with in your development. You can also create your own platform package by using the  platform wizard shipped with CCS4.


    Regards

    Amit

     

     

     

  • Dear Amit,

    Ok,. Got one step further. After installing PSP v2, I can see individual modules with XGCONF. When I add any module from

    the "serial" group (SPI or UART, etc..)  the error message is displayed in the Problems pane: Unsupported device.

    If I ignore the error and add an instance to the module, the error then yields:
    XDC runtime error: ti.psp.uart.Uart/defaultDeviceInfo: index out of range (0)

    Same is true for adding audio modules, GPIO or PSC etc..., How can I see what is the problem and how to fix these errors? Where do the error message come from? How does the system determine the device and what is supported?

    Thanks!
    Atmapuri

  • Hi Atmapuri,

    What version of XDCtools and CCS4 are you using? It is likely that the version that you are using has a bug in XGCONF. I would recommend starting with the examples shipped in the product. For example SPI examples are shipped in the package ti.psp.examples.evmDA830.spi (folder <psp_install_dir>/packages/ti/psp/examples/evmDA830/spi).  You will see a  RTSC configuration file spiSample.cfg that should provide information on configuring this module. 

    Thanks

    Amit

  • Hi!

    My CCS version is 4.1.1.00014, and XDCTools 3.16.02.32. I managed to get the SPI example working. It was necessary to specify EVM6747 as the target. When trying a standalone project using HelloWorld with PSP v2, the platform to select was DA830, otherwise the RTSC modules would report Unsupported device. Once the platform was right, the Target Configuration needed "SpectrumDigital DSK-EVM Plus onbard USB emulation" and the device must be EVMC6747. I tried both DSKDA830 and DA830 as the devices, but that did not work for the SPI example. Only for the Hello World. After some research I discovered, that all: DSKDA830, EVMC6747, OMAPL137 EVM are actually one and the same board. When it comes with two daughter boards it is called DA830 and that PSP drivers for DA830 can also be used (where peripheral is present) for the "other" boards also. Gel files are a match up to the point of comments. However, the drivers are not updated by TI or Spectrum Digital on all board driver download pages equally.

    Questions:

    1.) When SPI example runs for the first time it works OK. When I press the "restart" button in the debugger. It shows: xdc.runtime.Memory: line 52: out of memory: heap=0x0, size=2048 xdc.runtime.Error.raise: terminating execution. The "Hello world" is able to "restart" without a problem. How can the SPI program be restarted without error? (and why the error?) Are the heap and BIOS not reset together with the program (similar to CPU reset)? When reseting the CPU or reseting the System, I was never able to restore the ability to debug in any form.

    2.) The Audio example does not compile. It gives an error message:
    "could not open source file "ti/psp/platforms/codec/Aic31.h"    audioSample_configuration/Debug/configPkg/package/cfg    audioSample_x674.c    line 44"

    I have to use the audio, SPI, RTC and NDK in my project. I checked the disk drive and this file is in fact absent from the folder. The project was otherwise configured equally as the SPI example. What happened to the Aic31.h? Should this be auto generated? There is Aic31.h included with PSP v1.3, but I am not too sure this can be simply copied over.

    Thanks!
    Atmapuri

  • Hi Atmapuri,

    >1.) When SPI example runs for the first time it works OK. When I press the "restart" button in the debugger. It shows: xdc.runtime.Memory: line 52: out of memory: heap=0x0, >size=2048 xdc.runtime.Error.raise: terminating execution

    I couldn't reproduce this problem. I am using BIOS6.21.00.13,XDCtools 3.16.02.32, EDMA3 v 2.10.00.01, PSP v 2.00.00.06.  I am using the DA830 cycle accurate simulator for running the example. This error indicates that some code is trying to allocate memory from a heap with the address 0x0. The xdc.runtime sources are shipped with the XDCtools product. So if you navigate to <XDCTOOLS_INSTALL_DIR>/packages/xdc/runtime/Memory.c line 52 you will see the following fragment:

       if (block == NULL && (prior || !Error_check(eb))) {

            Error_raise(eb, Error_E_memory, (IArg)heap, (IArg)size);

        }

    Can you see the call stack and review which function is trying to allocate memory?

    >I checked the disk drive and this file is in fact absent from the folder. The project was otherwise configured equally as the SPI example. What happened to the Aic31.h?

    You should see the header file in the folder <PSP_INSTALL_DIR>/packages/ti/psp/platforms/codec. If it is not available here this means that this package has not been built/released properly. The header  is generated when the package is built using XDCtools. You can always rebuild the package from the command line by typing 'xdc'. Please see the PSP userguide for directions on rebuilding the driver packages.

     

    Regards

    Amit

  • Hi Amit,

    First on the package rebuild issue. The Users Guide really does not say anything about how to do it. I finally typed xdc at command prompt from this dir:

    \pspdrivers_02_00_00_06\packages\ti\psp\platforms\codec\

    The build tool takes off, but stops when one module from EDMA3 package is needed. For some reason it seemed that XDCPATH was not the same as for the CCS IDE. So I specified --xdcpath=... as the swtich and passed in the location. However, after some fixing of the .bld files from EDMA3 package, so that it could find the tools this still did not help the audio package to build. The error remained the same, namely that one module can not be found. I was searching the internet, but could not find something to help me figure out a way how to rebuild a package which depends on another package module.

    Thanks!
    Atmapuri

     

     

     

  • Hi Atmapuri,

    You need to set the XDCPATH environment variable for command line builds. To build the PSP product  you need to have both the BIOS and IPC products on your package path. For example in my cygwin bash shell I do the following to set the package path:

     export XDCPATH="C:\Program Files\Texas Instruments\ccsv4_1\bios_6_21_00_13\packages;C:\Program Files\Texas Instruments\ccsv4_1\ipc_1_00_05_60\packages"

    If you are using DOS command line you can use the 'set' command instead.

    Once this is done you can go to the package of your choice and type 'xdc'.

    I found that many of the packagesin the PSP product  have not been built. So I would suggest building the whole product. Extract from section 1.3.3 of the guide is shown below:

    1.3.3 Building the BIOS PSP Driver Modules

    1. For building all modules at one go:(please note: this also builds

    examples)

    1. Go to the package install directory:

    o Example:

    Z:\pspdrivers\pspdrivers_

    2. Execute the following command

    Z:\pspdrivers\pspdrivers_> xdc clean –PR . (Optional – only for clean build;

    this also cleans the executables generated by sample application)

    Z:\pspdrivers\pspdrivers_> xdc -PR .

    2. For building individual modules

    1. Go to the example directory

    o Example:

    Z:\pspdrivers\pspdrivers_\packages\ti\psp\uart

    2. Execute the following command

    Z:\pspdrivers\pspdrivers_\packages\ti\psp\uart> xdc clean (optional – only

    for clean build)

    Z:\pspdrivers\pspdrivers_\packages\ti\psp\uart > xdc

  • Hi!

    I had XDCPATH specified before also, but this does not help. The error message remains this:

    C:\CCSv4\pspdrivers_02_00_01\packages\ti\psp\platforms\codec>xdc
    making package.mak (because of package.bld) ...
    Error : Unsupported target : C64P !
    Error : Unsupported target : C64P_big_endian !
    generating interfaces for package ti.psp.platforms.codec (because package/package.xdc.inc is older than C:/CCSv4/xdctools_3_1
    6_02_32/packages/xdc/IPackage.xdc) ...
        translating Aic31
        translating ICodec
    "ti/psp/platforms/codec/Aic31.xdc", line 17:  can't find imported unit: ti.sdo.io.DriverTypes (ti.sdo.io.DriverTypes)
    error:  compilation failed: parser failed
    gmake.exe: *** [package/package.xdc.inc] Error 1

    The errors about C64P are from EDMA3 .bld file. Trying to call xdc from:

    C:\CCSv4\pspdrivers_02_00_01>xdc
    making package.mak (because of package.bld) ...
    generating interfaces for package pspdrivers_02_00_01 (because package/package.xdc.inc is older than package.xdc) ...
    all files complete.

    Gives no error, but also does not rebuild the packages. All the files remain the same except that some new (empty) dirs are created: .dlls, .executables, .interfaces, .libraries.

    I also tried the -PR switch. It is not recognized by the xdc because this simply displays the help screen when entering: xdc -PR
    Entering "xdc clean" works OK. In fact, xdc -P command in any context seems to be broken.

    Here is my XDCPATH:

    C:/CCSv4/bios_6_21_02_19;C:/CCSv4/ipc_1_00_05_60;C:/CCSv4/edma3_lld_02_10_00_01;C:/CCSv4/pspdrivers_02_00_01;C:/CCSv4/xdctools_3_16_02_32

    Thanks!
    Atmapuri

     

  • Hi Atmapuri,

    Comments given below:

    >Error : Unsupported target : C64P !

    You should build for the C674 target only. Edit config.bld in the folder <PSP_INSTALL_DIR>/packages/ and set the Build.targets array to 'C674' target.

    Build.targets = [

                      //C64,

                      //C64P,

                      //C67P,

                        C674,

                      //Arm9,

                      //Win32,

                    ];

    Also ensure that the path to the toolchain is set correctly in this file.

    /* compiler paths for the CCS4.0                   */

    var rootDirPre = "<CCS_INSTALL_DIR>/CCSv4/tools/compiler/";


    >"ti/psp/platforms/codec/Aic31.xdc", line 17:  can't find imported unit: ti.sdo.io.DriverTypes (ti.sdo.io.DriverTypes)

    Your XDCPATH is not set properly. You need the IPC product repository on your XDCPATH.

    >I also tried the -PR switch. It is not recognized by the xdc because this simply displays the help screen when entering: xdc -PR
    >Entering "xdc clean" works OK. In fact, xdc -P command in any context seems to be broken.

    You are missing a period at the end. Indicates that the build should start from the current directory and descend recursively into the sub-directories. Command should look like:

    xdc -PR .

    For more details take a look at the 'xdc' command documentation.

    >Here is my XDCPATH:

    >C:/CCSv4/bios_6_21_02_19;C:/CCSv4/ipc_1_00_05_60;C:/CCSv4/edma3_lld_02_10_00_01;C:/CCSv4/pspdrivers_02_00_01;C:/CCSv4/xdctools_3_16_02_32

    Multiple issues here.

    • You should point to the actual repository which resides in the "packages" folder of the respective products.
    • XDCtools repository is not required to be specified in XDCPATH. XDCtools will append it repositories by default when it computes the package path.

    So your XDCPATH should look something like this:

    C:\CCSv4\bios_6_21_02_19\packages;C:\CCSv4\ipc_1_00_05_60\packages;C:\CCSv4\edma3_lld_02_10_00_01\packages;


  • Hi Amit,

    Wov, that got me a lot further. I had to add two semicolons to two assert statements in the source files and install BIOS file system for the build process to continue. Next problem:. Inside of audioSample_io.c there is "extern EDMA3_DRV_Handle hEdma;" and _hEdma is reported by linker as missing. I got my Aic31.h file now though. The build process takes almost 15minutes. I noticed that some packages adding supporting for BIOS 6 are less than a month old. Both BIOS6 and Eclipse support seems to be very new.

    Thanks!
    Atmapuri

  • Hi,

    >extern EDMA3_DRV_Handle hEdma;  _hEdma is reported by linker as missing

    The user guide recommends using version 2.00 of the EDMA library. It looks like the PSP team changed the API in 2.10. I could build the app by removing the "extern" declaration. But I am not sure if any other changes are required in the sample application. It may make sense to use the EDMA3 library v 2.00 as recommended in the userguide. I downloaded the release from http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/psp/edma3_lld/index.html

    Thanks

    Amit

     

     

  • Hi!

    I tried using the EDMA3 v2.01 package, but there are build errors with other parts of the PSP package about missing functions. So, I went back and examined what the story is with EDMA3 20_10. The idea was to modify sample_init.c to add the missing definitions available in the previous version and then modify the PSP to call them. The first problem is how to modify the header files which are auto generated. Is there some editor for the files which are to be packaged? The second problem is that EDMA3 v 20_10 can not be rebuilt. The immediate ./package directory contains a different version of the package as is the name of the dir. I fixed the versions so that they would match. Once that went through, I reached this error:

    configuring edma3_drv_bios6_da830_st_sample.x674 from package/cfg/edma3_drv_bios6_da830_st_sample_x674.cfg ...
    Inside EDMA3 Drv Sample getLibs
    i = 0, target = .a674
        will link with ti.sdo.edma3.drv.sample:lib/da830/Debug/ti.sdo.edma3.drv.sample.a674
    Inside EDMA3 Drv getLibs
    i = 0, target = .a674
        will link with ti.sdo.edma3.drv:lib/Debug/ti.sdo.edma3.drv.a674
    Inside EDMA3 RM getLibs
    i = 0, target = .a674
        will link with ti.sdo.edma3.rm:lib/da830/Debug/ti.sdo.edma3.rm.a674
    cl674 package/cfg/edma3_drv_bios6_da830_st_sample_x674.c ...
    lnk674 edma3_drv_bios6_da830_st_sample.x674 ...

     undefined first referenced
      symbol       in file
     --------- ----------------
     _main     C:/CCSv4/ccsv4/tools/compiler/c6000/lib/rts6740.lib<args_main.obj>

    The main function is defined:

    C:\CCSv4\edma3_lld_02_10_00_01\examples\edma3_driver\src\main.c

    But for some reason does not get picked up by the builder.

    Thanks!
    Atmapuri

     

  • Hi,

    I will forward your query to the PSP team who should have better guidance on this problem.

    Amit

  • Atmapuri,

    Atmapuri said:

    I tried using the EDMA3 v2.01 package, but there are build errors with other parts of the PSP package about missing functions. So, I went back and examined what the story is with EDMA3 20_10. The idea was to modify sample_init.c to add the missing definitions available in the previous version and then modify the PSP to call them

    Can you tell me what are the missing functions in the other parts of the PSP package you have mentioned? I take it they are EDMA related functions, and so you tried to add them in sample_init.c file.

    Atmapuri said:

    The first problem is how to modify the header files which are auto generated. Is there some editor for the files which are to be packaged?

    You shouldn't have to do this. That is why i am asking for the missing function definitions which you were required to add.

    Atmapuri said:

    The second problem is that EDMA3 v 20_10 can not be rebuilt. The immediate ./package directory contains a different version of the package as is the name of the dir. I fixed the versions so that they would match.

    To rebuild the EDMA3 libraries you have to go into the respective folders where the projects to generate the libraries are present and build from there.

    The top level folder is having a name than that is mentioned in the ./package directory because they two are different types of versions and modifying the version numbers like you did may lead into any random errors like you have mentioned.

    Please refer to the EDMA3 user guide present in the package to know how to rebuild the EDMA3 libraries, as things you have mentioned here that you did to rebuild the libraries are not correct. And if the missing function definitions are the only reason for you to rebuild the EDMA3 libraries then it is very necessary that we look into them first before deciding to rebuild EDMA3 libraries.

     

    Regards,

    Sundaram

  • Dear Sundaram,

    Ok, after fresh install of EDMA3 v2.1 I go to the dir:

    C:\CCSv4\edma3_lld_02_10_00_01

    XDCPATH is set as follows:

    XDCPATH=C:/CCSv4/bios_6_21_02_19/packages;C:/CCSv4/ipc_1_00_05_60/packages;C:/CCSv4/edma3_lld_02_10_00_01/packages;C:/CCSv4/p
    spdrivers_02_00_01/packages;C:/CCSv4/ipc_1_00_05_60/packages;C:/CCSv4/rtfs_1_10_01_31/packages

    After typing "xdc -PR .  " The result are multiple lines with message:

    js: "C:/CCSv4/xdctools_3_16_02_32/packages/xdc/xdc.tci", line 546: XDCException: xdc.bld.INCORRECT_PACKAGE_NAME: Package name
     'edma3_lld_02_01_00_05' does not match directory name C:\CCSv4\edma3_lld_02_10_00_01
    gmake[1]: *** Deleting file `package.mak'

    Modifying either EDMA3 v2.1 or PSP is necessary to accommodate for the changes in the API interface and that cant be achieved without rebuild of one or the other.

    Another thing I tried is to use edma3 v2.0 as shipped to build PSP v02.00.01. Going to dir:

    C:\CCSv4\pspdrivers_02_00_01

    XDCPATH set as follows:

    C:\CCSv4\pspdrivers_02_00_01>set xdcpath
    XDCPATH=C:/CCSv4/bios_6_21_02_19/packages;C:/CCSv4/ipc_1_00_05_60/packages;C:/CCSv4/edma3_lld_02_00_00_03/packages;C:/CCSv4/p
    spdrivers_02_00_01/packages;C:/CCSv4/rtfs_1_10_01_31/packages

    After typing "xdc clean -PR . ", and then "xdc -PR ." we get:

    missing ";" in raster.c

    Fixed that, another try:

    "src/ddc_nandFtl.c", line 708: error: expected a ";"

    Fixed that, another try:

    cl674 sample/src/audioSample_io.c ...
    cl674 package/cfg/sample/Debug/audioSample_x674.c ...
    cl674 sample/src/audioSample_main.c ...
    lnk674 sample/Debug/audioSample.x674 ...

     undefined                        first referenced
      symbol                              in file
     ---------                        ----------------
     _EDMA3_DRV_disableLogicalChannel C:\CCSv4\pspdrivers_02_00_01\packages\ti\psp\i2c\lib\ti.psp.i2c.a674<I2c_edma.o674>

    error: unresolved symbols remain
    error: errors encountered during linking; "sample/Debug/audioSample.x674" not
       built
    gmake[1]: *** [sample/Debug/audioSample.x674] Error 1
    xdctools_3_16_02_32\gmake.exe: *** [packages/ti/psp/examples/evmDA830/audio,.executables] Error 2

    The missing function is defined in EDMA3 v2.1. There are also two warnings from uart_edma.c and spi_edma.c about implicitly declared functions.

    Therefore, how to proceed?

    Neither EDMA3 nor PSP packages seem to have been given the basic test of the distribution installation: that is to try and build them from the installation with publicly available dependent packages and check, if the file count before and after is the same. (to ensure that all the needed files got included in the installation.)  How can I:

    1.) Edit a package like EDMA3 in be able to rebuild it, if by default the rebuild does not work.
    2.) Build PSP v2.00.01 when it uses two different versions of EDMA3 from the same package.
    3.) What is the normal way to fix the version errors reported by EDMA3 v2.1 build attempt.
    4.) If I choose to add new functions to EDMA3 v2.1 to support older version, how to modify the package so that headers will be correctly generated.

    (Please include a package rebuild in the test requirement before distribution is marked as ready.)

    Thanks!
    Atmapuri

     

     

     

  • Atmapuri,

    Atmapuri said:


    After typing "xdc clean -PR . ", and then "xdc -PR ." we get:

    missing ";" in raster.c

    Fixed that, another try:

    "src/ddc_nandFtl.c", line 708: error: expected a ";"




    The PSP releases are built and released and hence the possiblity of issues like compilation problems are usually remote as in this case. Here, I do not see the XDC Tools version you are using. The release has been built with XDc Tools version 3.15.00.50. Please refer to the DA830_User_Guide, Sysstem Requirements section 1.1.5. Have you already tried this version and still facing this error? It could be that the version mismatch could result in such errors and not be caught in the release build.


    XDCPATH setup:- (Please note that I have used the tool versions mentioned in the release notes)
    D:\Program Files\Texas Instruments\CCSV4_1\bios_6_21_00_13\packages;D:\Program Files\Texas Instruments\CCSV4_1\ipc_1_00_05_60\packages;D:\pspdrivers\pspdrivers_\packages;c:\Program Files\Texas Instruments\edma3_lld_02_00_01_04\packages;D:\Program Files\Texas Instruments\CCSV4_1\xdctools_3_15_00_50\packages

    Atmapuri said:


    undefined                        first referenced
      symbol                              in file
     ---------                        ----------------
     _EDMA3_DRV_disableLogicalChannel C:\CCSv4\pspdrivers_02_00_01\packages\ti\psp\i2c\lib\ti.psp.i2c.a674<I2c_edma.o674>

    error: unresolved symbols remain
    error: errors encountered during linking; "sample/Debug/audioSample.x674" not
       built
    gmake[1]: *** [sample/Debug/audioSample.x674] Error 1
    xdctools_3_16_02_32\gmake.exe: *** [packages/ti/psp/examples/evmDA830/audio,.executables] Error 2


    I tried reproducing this but could not. With the XDC setup mentioned above my compilation goes through without any issues.

    Atmapuri said:


    After typing "xdc -PR .  " The result are multiple lines with message:

    js: "C:/CCSv4/xdctools_3_16_02_32/packages/xdc/xdc.tci", line 546: XDCException: xdc.bld.INCORRECT_PACKAGE_NAME: Package name
     'edma3_lld_02_01_00_05' does not match directory name C:\CCSv4\edma3_lld_02_10_00_01
    gmake[1]: *** Deleting file `package.mak'

    Modifying either EDMA3 v2.1 or PSP is necessary to accommodate for the changes in the API interface and that cant be achieved without rebuild of one or the other.



    EDMA library cannot be built like this. Please refer to the respective (drv or rm) userguides.
    For example drv/docs/EDMA3_Driver_User_Guide.pdf, Integration guide section 2.4 details the steps.


    Also, please use EDMA3 release 02.00.01.04 only with BIOS PSP drivers 02.00.01.
    The reason is, the later versions of the EDMA3 release have API changes that may not be compatible with the PSP drivers version 02.00.01.
    For API changes notification, please refer to top level edma3 release notes, "What's new" section.
    Specifically - "TIDSP00012079 Signature change for EDMA3 initialization API present in the sample example". Refer to drv user guide section 4.2 API usage examples for more details.

  • Dear Sriram,

    >Also, please use EDMA3 release 02.00.01.04 only with BIOS PSP drivers 02.00.01.

    The packages of DSP-BIOS PSP 02.00.01 use EDMA3 v2.10.  You can verify that by locating  EDMA3_DRV_disableLogicalChannel function call in its sources, which is defined only in EDMA3 02.10. The PSP examples however still use EDMA v2.00 API.

    I can see now how to rebuild the EDMA3. I was expecting common rules across all packages to rebuild them. The reason why I started to rebuild the PSP, is because of the missing Aic31.h file, which is generated by the build process but not included in the installer. As I understand this is not the only missing file.

    Anyhow, I upgraded the PSP examples to EDMA3 02.10 and now everything builds fine. The next issue is that by specifying "copy project to workspace" when importing the audio example, the audioSample project does not build. If not performing a copy, it builds fine. The error message is this:

    <Linking>

     undefined                                      first referenced                                                                                                                        
      symbol                                            in file                                                                                                                             
     ---------                                      ----------------                                                                                                                        
     _ti_sysbios_family_c64p_Hwi_enableInterrupt__E C:\CCSv4\edma3_lld_02_10_00_01\packages\ti\sdo\edma3\drv\sample\lib\da830\Release\ti.sdo.edma3.drv.sample.a674<sample_da830_int_reg.o674>

    AudioSample_Configuration project builds fine in either case. How can I fix the imported project file? I was comparing the projects and could not find a meaningfull difference.

    Thanks!
    Atmapuri

     

  • Atmapuri said:
    The packages of DSP-BIOS PSP 02.00.01 use EDMA3 v2.10

    As mentioned in the release notes, BIOSPSP 02.00.01 was built with EDMA3 02.00.01.04. You may be seeing references to 02.10.00.01, because your environmental variable EDMA3LLD_BIOS6_INSTALLDIR, was referring to 02.10.00.01 after you installed it. Please refer to "Installation Guide" section 1.2, which details this.

    Atmapuri said:
    You can verify that by locating  EDMA3_DRV_disableLogicalChannel function call in its sources, which is defined only in EDMA3 02.10.

    This can also be found in EDMA3 version 02.00.01.04. Please refer to drv\src\edma3_drv_basic.c -line 2399.

    Atmapuri said:
    The PSP examples however still use EDMA v2.00 API.

    This is not the case. BIOSPSP package can only be linked with one version of EDMA3

  • Dear Sriram,

    Comparing the header file: edm3_drv.h between the two EDMA3 versions shows that the function EDMA3_DRV_disableLogicalChannel is missing in version 2.00.00.03. I also checked the edma3_drv_basic.c which you mention and that function is missing there also. Clearly, the version  EDMA3 02.00.01.04 is required. Going to this page:

    http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/psp/edma3_lld/edma3_lld_02_00/index.html

    This version is available for download. Looking back at how this problem came to be:

    1.) I have a board named OMAP L-137 EVM. There is no download page for PSP supporting BIOS 6 for it.
    2.) The board named DA830 is the same except for two daughter boards, but that is not mentioned
    anywhere. It is left to discover for the user.
    3.) There is also only XDCTools 3.15 available for download on that page even though I already have 3_16_02_32 installed.

    As mentioned before, other board names using the same drivers and same hardware, but not using the same download pages and not updated to the same packages are: OMAP L-137 EVM, C6748 EVM, DSK830 and DA830. On this page:

    http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/psp/bios_psp/index.html

    It says that PSP 02.00.01 requires EDMA3 version 02.00.01.04 or later, which is obviously wrong. The text is the same for XDCTools (3.15.00.50 or later) Later does not work for EDMA3, because the examples of PSP are not updated for it. The root page:

    http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/bios/index.html

    has no links to download BIOS 6, only BIOS 5. There are many issues like that where I think you could save yourself and your customers a lot of time to properly organize and maintain the product support pages.On the same page you can still read:

    "For BIOS5.3x based PSP deliverables for TMS320C6747, OMAPL-137, C6748 and OMAPL138 ."

    There is no mentioning of BIOS 6, even though DA830 uses the same DSK830 (base board) as TMS320C6747, OMAPL-137 and GEL files are just copied over with new descriptions. I started looking at RTSC packages which require BIOS 6 because your colleague suggested it when I posted this question.

    I do appreciate it very much though that I can at least reach somebody to provide answers. You have not addressed my question about the problem when the example project is copied out of the directory and in to the workspace (File->Import->Audio Example->Copy files checked). I would like to learn how to maintain projects which depend upon RTSC packages. In theory it should be enough to update the RTSC packages required in the project properties. Currently the RTSC approach gives a very fragile impression. A little kick is sufficient and everything falls a part requiring much greater level of expertise and more time than manually building a project from scratch using CCS v3 system.

    Thanks!
    Atmapuri

     

  • Atmapuri,

        I can anwer the question on why OMAPL137 software package did not mention BIOS 6.x.

        First of all, you are right that OMAPL137 and DA830 are very similar devices so that the GELs, CCS configuration files are the same.

        However, the software packages are not exactly the same between these two devices. The BIOS 5x based PSP package supports all periphrals and also more validation work was done on that, comparing to BIOS6.x support. More importantly, some other software is still relying on BIOS 5.x PSP like DSPLINK and Codec Engine. Long story short, at this moment we still strongly recommend customer stick with BIOS 5.x PSP.

  • > In theory it should be enough to update the RTSC packages required in the project properties.

    Hello Atmapuri,

    You do not have to anything special in source control  for projects with RTSC content.  As long as the products/repositories (like BIOS,IPC,PSP etc..) referred in your project are available in the system your project should build just fine. Let me know if you are facing any specific problems with your project.

    Thanks

    Amit

  • hi AmitMookerjee,

     I too am struggling with NDK2.0 on CCs4, I ha followed your instructions above and now have projects named ndk and ndk_configuration. When I add C:\Program Files\Texas Instruments\ndk_2_1_0\packages\ti\ndk\example\network\cfgdemo\common\cfgdemo.c file from the NDK example to my ndk_configuration projects and try to compile nothing compiles. When I add the same file to the ndk project it compiles but gets errors, missing include file "netmail.h". When I try to drag and drop the include tree for the NDK it won't drop. So how do I go forward ?

    Rob Hoeye
    rhoeye@anpc.com

  • Hi Rob,

    The NDK examples work with BIOS5.  I would recommend importing the CCS3.3 project shipped with NDK into CCS4 by invoking File -> Import. The import wizard does not handle references to external packages well. You may have to manually edit the include paths in order to build your application project.

    Regards

    Amit