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.

Migrating from DSP/BIOS to SYS/BIOS..

Other Parts Discussed in Thread: CCSTUDIO, TMS320F2808, SYSBIOS, DM3730

Hi,

While converting from DSP/BIOS to SYS/BIOS, I use the ti.bio.conversion utility to convert the .tcf  file to .cfg. Thne using CCSV4 I create a new project and add all the required *.c and *.h file to the project. When I try to build, I get the error

 "Cannot build project. Referenced RTSC Configuration project 'BMS_configuration' contains errors."

What could be the error?

Thanks & regards.

Naval

  • Naval,

    It sounds to me like you have a "C project" - probably called "BMS" which contains C source files, as well as your "BMS_configuration" project, which defines the configuration settings for SYS/BIOS.

    If so, then your "BMS" project depends on the "BMS_configuration" project, and it can't be built because of that dependency.

    I think if you click on the configuration project, you should see the errors in the console view.

    Once you check those errors, if you're having trouble resolving them, please reply back to this post and I can help you get past them.

    Steve

  • Hi Steve,

    Yes, I forgot to mention about the error in configuration project.

    It says : "configuration failed due to earlier errors (status = 2), "linker.cmd" deleted."

    Is it because at the time when the project was created, I had left the linker text empty in the project creation wizard? If yes, how should I update it?

    Thanks,

    Naval

  • I have one more update to make to my earlier question.

    To build my project, I had skipped to the steps in the "mailbox" example in the AN. Later on, I realized that the steps for migration in section 3.2 i.e. Updating CCStudio 4 project to build with a Generated Custom Platform File were missing at the time I followed the "mailbox" example.

    Are those steps still required to be perfromed?

    After following those steps, I get a different error. This time I get:

    "C:\Program Files (x86)\Texas Instruments\ccsv4\utils\gmake\gmake: *** No rule to make target `../config.bld', needed by `configPkg/linker.cmd'."

    If those steps are required, now what to fix the errors?

    Thanks.

    Naval

  • Hi Naval,

    Did you upgrade your version of BIOS? Or are you still using SYS/BIOS version bios_6_21_00_13?

    The reason I ask is because I noticed that the name of the chapter you mentioned:

    3.2 Updating a CCStudio 4 Project to Build with a Generated Custom Platform File

    This is from the older version of the app note that came with bios_6_21_00_13.

    In the latest app note, this chapter is called:

    Updating a CCSv4 Project to Build with a Generated Platform Package

    Please make sure that you are using the app note that is included with the version of BIOS that you are building with.

    Having said that, the answer to your question is yes, you would need to follow those steps before building your application.  In either case (older SYS/BIOS or latest/newer) you would need to follow those steps in order to add your converted configuration into the build of your project that you're migrating.

    I would also recommend to try to avoid skipping steps, since the app note wasn't designed for that ... skipping steps may lead to more problems than it is worth :)

    Steve

  • Hi Steve,

    The probelm above deals with the older version of tools. I am refering to SPRAAS7B for this case. I think, I have tried the steps given in the AN and still looking for somethings that I might not have done. At this point I expect nothing more than errors in the Projct file and not in the Configuration Project File, but it seems its still the same. Kindly suggest things that I might try.

    I also have the newer version of tools: CCS V4.2.1, XDC tools3.30.08.88 and SYS/BIOS6.31.04.27. The configuration tool works well for this new tool set. But in this case, while creating the CCS project, this time referring to the steps given in SPRAAS7D, for the "mailbox" example the screen indicated for Step 8 ("Add RTSC capabilities into the current project" ) doesn't come at all. Rest all steps do come, bu then when I am at Step 16 ("RTSC Platfrom" selection) , the wizard does not point to the .xs file created by the configuration tool in the repository that I created. Am I refering to the wrong AN again? Can I change the RTSC platform later? Or if I create a seperate RTSC configuration and CCS project seperately, how should I then combine the two?

    Answers on any of the new or old versions is fine. Thanks.

    Naval

  • Naval,

    I think the best thing for you to do is to move forward to the latest tools.  It sounds like you have already done this, but I'm not sure if you are still mixing and matching tool versions and app note versions.  It sounds like you might be.  I think you may need to repeat the conversion tool steps, making sure that you use the latest tool version which will create a platform package for you (no *.xs file ... the *.xs file was what was generated by the older tools).

    I checked BIOS 6.31.04.27 and the version of the app note that comes with that install is SPRAAS7E .  I see above that you are using SPRAAS7D together with BIOS 6.31.04.27.  The "E" version of the app note has been updated for changes in BIOS and CCSv4.

    However, I also checked a later version of CCSv4 - version 4.2.2 and I see that the step 8 that you are referring to ("Add RTSC capabilities into the current project") is no longer present in the project wizard step.  This is OK.  What happened was that step did exist in CCSv4 at the time of the app note publication, but looks like it has since been removed.  (I know all of these changes are confusing!).  So, app note version "E" will also have this step 8 that doesn't exist in your CCS version.

    This step should just be ignored.  At this point in the project creation, the remaining steps should be valid, and you should see the "RTSC Configuration Settings" page (shown as step 9 in the app note) and you can continue onward from there.

    Once you use the latest tools to convert your configuration and generate a platform package, then in step 16 you will select that generated platform package.

    We'll get you through this Naval!

    Steve

  • Hi Steve,

    Thanks!!

    I have shifted to the new tool set and refering to SPRAAS7E. Following are the problems I am facing when creating the CCS project. I am also including the details that differ from the project creation step in the AN.

    Step 6. I use Device type - TMS320F2808. The Linker Cmd - <automatic>, Runtime Support Lib - rts2800_ml.lib. This is the default the tool takes when I select the device. So I just let it be as it is.

    Step 8. Missing. So I ignore, as you suggested.

    Step 13. RTSC target - ti.targets.c28_large

    Step 16. RTSC platform - The wizard does not populate the drop down list with the RTSC platform created by the conversion tool. This should not have happened,right? This was what I was trying to convey yesterday. Anyways I proceed with ti.platfroms.ezdsp2808.

    Step 18. The AN says that the porject is created with all source and configuration files existing in the working directory automatically added to the mailbox project. This is not the case. I can see the configuration files (atleast I am able to locate my platform package), but none of the source files are added. Why is it so? Will I have to manually add those file?

    Thanks.

    Naval

  • Hi Steve,

    Well I included all the files manually, and then tried a build. It gives the error

    "Error: Cannot call method "instance" of undefined BMS-R1 BMS.cfg" -  points to a loaction in the configuration file, where we have used

    "bios.PIE.instance() = xxx;"

    Also removed the "rts2800_ml.lib", from the Runtime Support Lib. It was mentioned in one of the AN (SPRA958C). Its also a very old one, but the reason I have to refer to it, is just to understand where all the problems can come from. Our original code is based on those old tools.

    Thanks.

    Naval

  • Naval --

    Unfortunately,  the PIE module is not currently supported in BIOS 6.x legacy support.   There is a bug report for this -- SDOCM00078783.  This will be fixed in SYS/BIOS 6.32 (April timeframe).   You will have to create that ISR using the Hwi module.  The new Hwi module manages the core interrupts as well as the PIE interrupts.  Use intId 32-127 for the PIE interrupts.

    I modified your .cfg file to use Hwi.create() in place of your bios.PIE settings.

    Something like this:

    var Hwi = xdc.useModule('ti.sysbios.family.c28.Hwi');

    var hwiParams = new Hwi.Params();
    var hwi0 = Hwi.create(32, "&myHwi", hwiParams);

    Regards,
    -Karl-

  • Hey Karl/Steve,

    Thanks for the response. In that case, probably we will have to push the change-over process till that time since we would like to have minimal changes to the code and we have used the PIE module extensively. In the meantime, I have few other questions for you.

    1. The latest versions of SYS/BIOS tools go with the CCSv4.2 or higher. But it should still be possible to build the codes by making our own manual make files and specifying the compatible tools, right?What I mean is that we necessarily don't have to switch the CCSv4.2 IDE , right? Then how and where will we need the XDCtools in the process, once we have used the conversion utility to get the .cfg file from .tcf file?

    2. The AN does mention about making changes to the C code. Are these changes only required for the codes related to modules not supported in the new SYS/BIOS tools? For eg. in the .cfg generated by the conversion utility, I found that some statements related to unsupported modules were commented out. Then we just need to write those functions agaain, right?

    Or do you also see code changes in other C/ASM files other than those? If yes, can you please provide some examples of those or point me to the documentation related to it?

    Thanks.

    Naval

  • Naval,

    Regarding changes to C code, I would recommend that you refer to the AN section "4.1 Legacy Module Mappings and API Guide".  This section contains a chapter that maps the legacy BIOs 5 modules to their SYS/BIOS counterparts.

    Which modules are you using that are now shown as unsupported?  Can you copy the statements from your .cfg file that list these as comments?

    Ingeneral, for any module in which legacy API support doesn't exist, you would look that module up in the table, find the SYS/BIOS 6.x equivalent, and then learn that SYS/BIOS module and port your code using the new APIs.

    The AN has an example of how to do this:

    - chapter "8 Porting the Mailbox Example to SYS/BIOS 6 with New Modules and APIs" - this shows how to switch all legacy configuration code and C code to use the SYS/BIOS versions.

    - chapter "9 Adding SYS/BIOS Tasks and Communication to a Legacy Application" - this may be more of what you're looking for.  If you want to keep the legacy support that works for you, and then add SYS/BIOS code + config for any modules you are using that are not supported, then you would need to mix and match legacy support with SYS/BIOS support.  This chapter shows how to do that.

     

     

  • Naval,

    Regarding your question about buiding outside of CCS, yes this is supported.  In fact, SYS/BIOS ships with examples that contain makefiles that show you how to do exactly that.

     

    However, you will need to generate the examples.  It is very easy to do so, there is a command line tool to do it called "genEx".  Please refer to the SYS/BIOS 6.30 Getting Started Guide, in the following section:

    2.5 Generating and Building SYS/BIOS Examples

     

    Steve

  • Thanks Steve!

    I am looking at those sections of the AN. But, let me re-frame the question:

    Does that mean that the older BIOS features/modules supported in the SYS/BIOS do not need any changes at all or still there might be changes in the API calls that I need to know about and make changes in the C code accordingly?

    These are the few statements I could see commented in the .cfg file:

    // WARNING: MEM.USERCOMMANDFILE property is not supported in BIOS 6.
    bios.MEM.USERCOMMANDFILE = 1;

    // WARNING: RTDX module is not supported in BIOS 6.
    bios.RTDX.RTDXDATASEG = prog.get("MSARAM");
    // WARNING: HST module is not supported in BIOS 6.
    bios.HST.OBJMEMSEG = prog.get("MSARAM");
    // WARNING: PIP module is not supported in BIOS 6.
    bios.PIP.OBJMEMSEG = prog.get("MSARAM");

    I  have one more question related to the .cfg file that was generated. I have a IF statement structure like this:

    if(condition)

    {

        load("include/xxxxx1.tci");

    }

    else

    {

        load("include/xxxxx2.tci");

    }

    If I am not wrong, the conversion tool replaces the entire code in the .tci file at these locations and comments out these statement in the .cfg file. In my case, it did replace the code for the ELSE part of the statement, but it left the previous load statement in the IF block as it is. Obviously the condition is from another file other than the .tcf or the .tci file, but then ti should either leave the copying in both blocks or the tool should be smart enough to ask me the name of the file with the condition.What is the work around for this case? The condition is known and it depends on particular version number and product  and so on and is taken care of during the build process, but what is the way that information can be passed on to the conversion tool?

    Naval

  • Hi Naval,

    If a legacy BIOS 5.x API is supported, then there would be no need to change your code.  For example, if your BIOS 5.x program called:

    TSK_sleep(100);

    There would be no need for you to modify this line of code, because the TSK_sleep() API is supported in SYS/BIOS via legacy support.

    Regarding the commented lines of your *.cfg file:

    // WARNING: MEM.USERCOMMANDFILE property is not supported in BIOS 6.
    bios.MEM.USERCOMMANDFILE = 1;

    // WARNING: RTDX module is not supported in BIOS 6.
    bios.RTDX.RTDXDATASEG = prog.get("MSARAM");
    // WARNING: HST module is not supported in BIOS 6.
    bios.HST.OBJMEMSEG = prog.get("MSARAM");
    // WARNING: PIP module is not supported in BIOS 6.
    bios.PIP.OBJMEMSEG = prog.get("MSARAM");

    Some of these modules are not supported in SYS/BIOS.  can you elaborate on these?  Is your app using HST, PIP, or RTDX?  Or is your BIOS 5.x configuration merely assigning the data segments for these modules?

     

    Regarding the if condition, the conversion tool actually is loading up your original *.tcf/*.tci script in order to convert it.  When it does so, that if condition is probably computing to false, and therefore it's skipping that code.

    The workaround for this is easy, you can just copy and paste the original code that's missing.

    Steve

  • Hi Steve,

    I think we are just using the BIOS configuration to assigning data segments for the modules.

    Can you also let me know if there is a Beta - version of the CCSV with the bug fixed up available for any trials? If there is we would like to go ahead with our evaluation of the new CCS.

    Thanks & regards,

    Naval

  • Hi Naval,

    I think you are asking about a beta version of SYS/BIOS that has the 28x PIE support added?  If so, this is not ready yet.  I can talk to my supervisor about getting you a preliminary release, but if I'm not sure that we would be able to do that.  In the worst case, you should be OK with the workaround we suggested and then you could get the official release once it's ready in the second half of April.

    Steve

  • Hi Steve,

    Is the new version of SYS/BIOS with the PIE support ready yet? We are waiting for the new version for migrating from BIOS 5 to BIOS 6.

    Thanks.

    Naval

  • Naval,

    We are wrapping up the final release this week.  It should be available publicly by the end of the week.  I'll reply with a link once it's ready!

    Steve

  • Naval,

    The releases are now available.  Please note that in addition to SYS/BIOS, you will also need to get the latest XDC tools and IPC.  Here are the links to all of them:

    • SYS/BIOS 6.32.00.28: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios/6_32_00_28/index_FDS.html
    • IPC 1.23.00.16: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ipc/1_23_00_16/index_FDS.html
    • XDCtools 3.22.00.09: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc/3_22_00_09/index_FDS.html

    Steve

  • Is it possible to use IPC 1.23.00.16 with DM3730?

  • Alexander,

    IPC 1.23 supports OMAP3 which is very similar to DM3730.  However, IPC has not been validated on DM3730 (it should work though). 

    Which OS are you planning on running on the A8?  If Linux, SysLink doesn't officially support this device yet either, but it may work.

    Regards,

    Shreyas

  • Hi Steve,

    Here I am again attempting to port my DSP/BIOS codes to SYS/BIOS. When I try to use the Conversion tool for converting my .tcf file to .cfg file, this is the error message that I get. What could be the possible reasons?

    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>xs --xp="C:/Program

     Files (x86)/Texas Instruments/bios_6_32_00_28/packages" ti.bios.conversion -DMO

    DELS -DBOOTFLASH -DPROC=2809 -v -i -c BMS_outfile.cfg --pr="C:/myRepository" "C:

    /TeslaSVN/SoftwareTrunk/components/battery/bms/BMS_N.tcf"

    name MODELS

    MODELS   true

    name BOOTFLASH

    BOOTFLASH   true

    name PROC

    PROC   2809

    Platform: ti.platforms.ezdsp2808

            params.clockRate:100

            params.catalogName:ti.catalog.c2800

            params.deviceName:2808

    Target: ti.targets.C28_large

    Clock Rate: 200

    Illegal filename: null

    js: "./packages/xdc/tools/Cmdr.xs", line 51: Error: ti.bios.conversion: TypeErro

    r: Cannot call method "readLine" of null

        "C:/Program Files (x86)/Texas Instruments/bios_6_32_00_28/packages/ti/bios/c

    onversion/Main.xs", line 91

        "./packages/xdc/tools/ICmd.xs", line 50

        "./packages/xdc/xs.js", line 173

    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>

    Also, the -D defines don't seem to take effect. My *.tcf file has code which uses some if loops with those defines, but the code doesn't seem to get there. What could be the reason for that?

    Thanks.

    Naval

  • Naval,
    this error message:

    Illegal filename: null

    indicates that the input TCF script was not even read. For debugging purposes, can you add a print statement at the beginning of your BMS_N.tcf script, for example
    print("hello");

    Also, can you try removing -D options from your command line just to verify that they are not the cause of the TCF script not being read?

  • Hi Sasha,

    The .tcf file does get read, because that's how I know the -D defines don't take any effect. 

    However, I tried removing the -D options, and also including the print("Hello") in the file. This is what I get. It does show that the file does get read.

    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>xs --xp "C:/Program

     Files (x86)/Texas Instruments/bios_6_32_00_28/packages" ti.bios.conversion -v -

    i -c BMS_outfile.cfg --pr "C:/myRepository" "C:/TeslaSVN/SoftwareTrunk/component

    s/battery/bms/BMS_N.tcf"

    Hello

    Platform: ti.platforms.ezdsp2808

            params.clockRate:100

            params.catalogName:ti.catalog.c2800

            params.deviceName:2808

    Target: ti.targets.C28_large

    Clock Rate: 200

    Illegal filename: null

    js: "./packages/xdc/tools/Cmdr.xs", line 51: Error: ti.bios.conversion: TypeErro

    r: Cannot call method "readLine" of null

        "C:/Program Files (x86)/Texas Instruments/bios_6_32_00_28/packages/ti/bios/c

    onversion/Main.xs", line 91

        "./packages/xdc/tools/ICmd.xs", line 50

        "./packages/xdc/xs.js", line 173


    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>

    Any other hints on what could be going wrong?

    Thanks.

    Naval

  • Do you have a variable named 'infile' in your main script or included scripts? If not, can you send me your script, so I can try to replicate the problem?

  • Hi,

    I don't have any variable by that name. So you will need the .tcf and .tci files to replicate the problem and where should I send the files?

    Naval

  • Naval,

    Which version of Windows are you using?  Are you using Windows 7?

    The conversion tool needs to create a new file, and I know that on Windows 7 there are limited write permissions in the folder C:\Program Files.  So, I'm wondering if the tool is failing because it does not have permissions to write to the directory you are in.

    Can you try running the conversion tool from a location that you know you have write permissions for?  For example, maybe in some folder like "C:\NavalTest" or something?

    One more thing - is your PC running on a 32-bit or 64-bit processor?

    Thanks,

    Steve

     

  • Can you post them to this thread? If not, I'll try to figure out how can you send me a private message on the forum.

  • Hi Steve,

     

    I am using Windows XP x64 Edition. However, I tried your solution. It still gives the same thing.

    C:\NavalTest\xdctools_3_22_00_09>xs --xp "C:/Program Files (x86)/Texas Instrumen

    ts/bios_6_32_00_28/packages" ti.bios.conversion -v -i -c BMS_outfile.cfg --pr "C

    :/myRepository" "C:/TeslaSVN/SoftwareTrunk/components/battery/bms/BMS_N.tcf"

    Hello

    Platform: ti.platforms.ezdsp2808

            params.clockRate:100

            params.catalogName:ti.catalog.c2800

            params.deviceName:2808

    Target: ti.targets.C28_large

    Clock Rate: 200

    Illegal filename: null

    js: "./packages/xdc/tools/Cmdr.xs", line 51: Error: ti.bios.conversion: TypeErro

    r: Cannot call method "readLine" of null

        "C:/Program Files (x86)/Texas Instruments/bios_6_32_00_28/packages/ti/bios/c

    onversion/Main.xs", line 91

        "./packages/xdc/tools/ICmd.xs", line 50

        "./packages/xdc/xs.js", line 173

    C:\NavalTest\xdctools_3_22_00_09>

     

    Thanks.

    Naval

  • Hi Sasha/Steve,

    Any thoughts on how to fix the problem? 

    Sasha,

    Any way I can send a private message with the required files to re-create the problem?

    Thanks,

    Naval

  • Naval,
    if you click on my name, you'll see my profile and with some luck there will be a link to "Start conversation" or something similar, in the right upper corner of my profile page. If there is no such link, you might need to add me as a friend, and the link for that would be also in the right upper corner of my profile. Also, you may need to open your profile, click on Settings and then click on Site Options. There is a header Conversation Configuration, where you should allow conversations from all users.

    WIth all that, we should be able to message files without posting them publicly. If none of it works, I guess I'll just create some throwaway email address and post it here. 

  • Naval,
    I found out what the problem is. The path to your included tci files must be added to the package path. Assuming that your 'include' subdirectory with tci files is in
    "C:/TeslaSVN/SoftwareTrunk/components/battery/bms/, your command line should look like this:

    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>xs --xp="C:/Program Files (x86)/Texas Instruments/bios_6_32_00_28/packages;C:/TeslaSVN/SoftwareTrunk/components/battery/bms/" ti.bios.conversion -DMODELS -DBOOTFLASH -DPROC=2809 -v -i -c BMS_outfile.cfg --pr="C:/myRepository" "C:/TeslaSVN/SoftwareTrunk/components/battery/bms/BMS_N.tcf"

    We actually document it in Bios_Legacy_App_Note.pdf that comes with BIOS in Section "Conversion Tool Syntax":

    =========================================
    If your Tconf script imports Tconf include files (*.tci) from different directories, you must add paths to these directories to the package path. The paths can be absolute or relative to the current working directory. For example, if "infile.tcf" contains the following statement, and "helper.tci" is in a directory "sub" relative to the current working directory, then the

    --xp option should be set to '<bios_install_dir>/packages;sub'.
    =========================================

    However, the error message you got wasn't helpful at all, and we will fix it for the next release. Please try updating your package path with the actual location of the 'include' directory. My addition to the package path was only a guess.

  • Hi Sasha,

    That doesn't seem to work either. This is the error message that I get:

     C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>xs --xp="C:/Program

     Files (x86)/Texas Instruments/bios_6_32_00_28/packages;C:/TeslaSVN/SoftwareTrun

    k/components/battery/bms/include/" ti.bios.conversion -DModelS -DBOOTFLASH -DPro

    cessor=2809 -v -i BMS_outfile.cfg --pr="C:/myRepository" "C:/TeslaSVN/SoftwareTr

    unk/components/battery/bms/BMS_N.tcf"

    name ModelS

    ModelS   true

    name BOOTFLASH

    BOOTFLASH   true

    name Processor

    Processor   2809

    js: "./BMS_outfile.cfg", line 128: missing } in compound statement

    js: /*** Copying null ***/

    js: ......................^

    js: "./BMS_outfile.cfg", line 128: missing } in compound statement

    js: /*** Copying null ***/

    js: ......................^

    js: "./BMS_outfile.cfg", line 1: Compilation produced 2 syntax errors.

    js: "./packages/xdc/tools/Cmdr.xs", line 51: Error: ti.bios.conversion: Internal

    Error: Compilation produced 2 syntax errors. (./BMS_outfile.cfg#1)

        "C:/Program Files (x86)/Texas Instruments/bios_6_32_00_28/packages/ti/bios/c

    onversion/Main.xs", line 91

        "./packages/xdc/tools/ICmd.xs", line 50

        "./packages/xdc/xs.js", line 173


    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>

    I opened the .tcf file in a text editor. The file is not fully created and it stops at the line where I include the .tci file. What else can I try to do? Where you able to complete the conversion process at your end?

    Thanks,

    Naval

  • Hi Sasha,

    The previous .tcf file that I want to use with the conversion process had the following line of code:

    load("include/MemRAM.tci");

    This used to give me the error "Cannot open file "include/MemRAM.tci""

    So I changed this line to utils.importFile("include/MemRAM.tci");

    With this change I get the NULL file error. 

    Based on your suggestion, I included the path of the .tci file in the --xp option C:\TeslaSVN\SoftwareTrunk\components\battery\bms\include. Now what should be the syntax in the .tcf file?

    Thanks,

    Naval

  • Naval,
    utils.importFile() is the preferred syntax.
    Your --xp option should not contain 'include'. The conversion tool takes 'C:\TeslaSVN\SoftwareTrunk\components\battery\bms\include' and adds 'include\MemRAM.tci' to it, and you get C:\TeslaSVN\SoftwareTrunk\components\battery\bms\include\include\MemRAM.tci. That's probably not where MemRAM.tci is located, unless you have two 'include' subdirectories, one containing the other. Try with 'C:\TeslaSVN\SoftwareTrunk\components\battery\bms\' in your --xp option.

  • Hi Sasha,

    I had tried those things earlier. I now have Same error!!

    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>xs --xp="C:/Program

     Files (x86)/Texas Instruments/bios_6_32_00_28/packages;C:/TeslaSVN/SoftwareTrun

    k/components/battery/bms/" ti.bios.conversion -DModelS -DBOOTFLASH -DProcessor=2

    809 -v -i BMS_outfile.cfg --pr="C:/myRepository" "C:/TeslaSVN/SoftwareTrunk/comp

    onents/battery/bms/BMS_N.tcf"

    name ModelS

    ModelS   true

    name BOOTFLASH

    BOOTFLASH   true

    name Processor

    Processor   2809

    js: "./BMS_outfile.cfg", line 128: missing } in compound statement

    js: /*** Copying null ***/

    js: ......................^

    js: "./BMS_outfile.cfg", line 128: missing } in compound statement

    js: /*** Copying null ***/

    js: ......................^

    js: "./BMS_outfile.cfg", line 1: Compilation produced 2 syntax errors.

    js: "./packages/xdc/tools/Cmdr.xs", line 51: Error: ti.bios.conversion: Internal

    Error: Compilation produced 2 syntax errors. (./BMS_outfile.cfg#1)

        "C:/Program Files (x86)/Texas Instruments/bios_6_32_00_28/packages/ti/bios/c

    onversion/Main.xs", line 91

        "./packages/xdc/tools/ICmd.xs", line 50

        "./packages/xdc/xs.js", line 173


    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>xs --xp="C:/Program

     Files (x86)/Texas Instruments/bios_6_32_00_28/packages;C:/TeslaSVN/SoftwareTrun

    k/components/battery/bms" ti.bios.conversion -DModelS -DBOOTFLASH -DProcessor=28

    09 -v -i BMS_outfile.cfg --pr="C:/myRepository" "C:/TeslaSVN/SoftwareTrunk/compo

    nents/battery/bms/BMS_N.tcf"

    name ModelS

    ModelS   true

    name BOOTFLASH

    BOOTFLASH   true

    name Processor

    Processor   2809

    js: "./BMS_outfile.cfg", line 128: missing } in compound statement

    js: /*** Copying null ***/

    js: ......................^

    js: "./BMS_outfile.cfg", line 128: missing } in compound statement

    js: /*** Copying null ***/

    js: ......................^

    js: "./BMS_outfile.cfg", line 1: Compilation produced 2 syntax errors.

    js: "./packages/xdc/tools/Cmdr.xs", line 51: Error: ti.bios.conversion: Internal

    Error: Compilation produced 2 syntax errors. (./BMS_outfile.cfg#1)

        "C:/Program Files (x86)/Texas Instruments/bios_6_32_00_28/packages/ti/bios/c

    onversion/Main.xs", line 91

        "./packages/xdc/tools/ICmd.xs", line 50

        "./packages/xdc/xs.js", line 173


    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>

    Thanks.

    Naval

  • Naval,
    in your last post, I see '-c' is not in front of BMS_outfile.cfg, while you had it before. Can you verify that you are getting the same error as above when you add -c. I think that you had an incomplete version of BMS_outfile.cfg, that was created in previous failed conversions. Then, when you somehow left out -c, that incomplete version of the output file was treated as an input file.

  • Hi,

    I had missed the -c option. With that included I do get this result. But the .cfg file is created partially (upto the point where there is the util.importFile() line). So I tried deleting all the files and folders created and starting all over again with the same command. This time there is no .cfg file in C:/myRepository", just the plat (platform directory) directory. What's the problem?

    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>xs --xp "C:/Program

     Files (x86)/Texas Instruments/bios_6_32_00_28/packages;C:/TeslaSVN/SoftwareTrun

    k/components/battery/bms/include" ti.bios.conversion -DModelS -DBOOTFLASH -DProc

    essor=2809 -v -i -c BMS_outfile.cfg --pr "C:/myRepository" "C:/TeslaSVN/Software

    Trunk/components/battery/bms/BMS_N.tcf"

    name ModelS

    ModelS   true

    name BOOTFLASH

    BOOTFLASH   true

    name Processor

    Processor   2809

    Platform: ti.platforms.ezdsp2808

            params.clockRate:100

            params.catalogName:ti.catalog.c2800

            params.deviceName:2808

    Target: ti.targets.C28_large

    Clock Rate: 200


    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>

    Thanks,

    Naval

  • --pr specifies the location of the generated platform package. The output cfg file is in your working directory (C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09) because you specified a relative path for your output file. You can always use the absolute path for -c option if you want to control the directory for the output file.

  • Hi,

    OK I find the .cfg file at that location, but I didn't get the corresponding .h file (as per the AN SPRAAS7E). Is that OK?

    Thanks.

    Naval

  • There must be a header file alongside the output file. If it's not there, there must be another bug and the header file probably ended up wherever your input TCF script is.

  • The .h file is located in the folder where I have my .tcf file.

    When I start my CCS v4.2.1, it does not give me the option of creating a RTSC project. It just gives me the first 3 options (SPRAAS7E)

    1. Empty project

    2. Empty Assembly-only project

    3. Empty DSP/BIOS v5.x Project

    What is wrong with the Project creation wizard?

    Thanks,

    Naval

     

     

  • Naval,

    Unfortunately it looks like the steps of this guide are in need of updating.  The good news is that you should be able to work around this easily.

     

    In place of step 3.1.1 of the guide, please choose the following template in the project creation wizard:

    After this, click the "next" button at this point. Step 3.2.2 will no longer apply.

    You should now see this:

     

    Ensure that you mark the check boxes for each software component that you wish to use.

    You may then continue on with the steps in the guide at step 3.2.3 - On the “RTSC Configuration Settings” page, make sure the RTSC Target is specified correctly.

    Once you reach step 3.2.6 "Add your source file(s) to the project." - you should first remove the files "hello.c", "common.cfg.xs" and "hello.cfg" from the project.

     

    Steve

  • I've filed a bug report for this:

    SDOCM00082032 - bios legacy app note project create steps are out of date

  • Hi Steve,

    Well you see, this is what I get. Why don't I get the SYS/BIOS option or even the RTSC option?

    Thanks,

    Naval

  • Hi,

    So here's the current status. I did the conversion process again with the following command and here are the results:

    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>xs --xp "C:/Program
     Files (x86)/Texas Instruments/bios_6_32_00_28/packages;C:/TeslaSVN/SoftwareTrun
    k/components/battery/bms/include" ti.bios.conversion -DModelS -DBOOTFLASH -DProc
    essor=2809 -v -i -c MyOutfile.cfg --pr "C:/myRepository" --pn MyPlatform "C:/Tes
    laSVN/SoftwareTrunk/components/battery/bms/BMS_N.tcf"
    name ModelS
    ModelS   true
    name BOOTFLASH
    BOOTFLASH   true
    name Processor
    Processor   2809
    Platform: ti.platforms.ezdsp2808
            params.clockRate:100
            params.catalogName:ti.catalog.c2800
            params.deviceName:2808
    Target: ti.targets.C28_large
    Clock Rate: 200

    C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09>

    So it seems the conversion process works with the following differences:

    1. The .h file from the conversion is placed in the directory where the .tcf file is located and NOT where the .cfg file is created ("C:\Program Files (x86)\Texas Instruments\xdctools_3_22_00_09" in my case).

    2. The .h file is named after the .tcf file and not the .cfg file. (I get "BMS_Ncfg.h" and not "MyOutfilecfg.h" as I expected and mentioned in the AN).

    Well then I created a new CCS v4 project with these settings starting with the Hello example in  SYS/BIOS:

    This is again something different that what is mentioned in the AN.

    However, when I try to build the project, I get these errors.

    C:\Program Files (x86)\TI\ccsv4\utils\gmake\gmake -k all
    subdir_rules.mk:24: warning: overriding commands for target `configPkg/compiler.opt'
    subdir_rules.mk:7: warning: ignoring old commands for target `configPkg/compiler.opt'
    'Building file: ../hello.cfg'
    'Invoking: XDCtools'
    "C:/Program Files (x86)/Texas Instruments/xdctools_3_22_00_09/xs" --xdcpath="C:/Program Files (x86)/Texas Instruments/bios_6_32_00_28/packages;C:/Program Files (x86)/Texas Instruments/ipc_1_23_00_16/packages;C:/myRepository;" xdc.tools.configuro -o configPkg -t ti.targets.C28_large -p MyPlatform -r debug -c "C:/Program Files (x86)/TI/ccsv4/tools/compiler/c2000" "../hello.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring hello.p28L from package/cfg/hello_p28L.cfg ...
    error: ti.platforms.generic.Platform: "C:/Program Files (x86)/Texas Instruments/xdctools_3_22_00_09/packages/ti/platforms/generic/Platform.xs", line 100: ti.platforms.generic.Platform.Instance#0 CRC32_TAB and FLASH: Memory objects CRC32_TAB and FLASH overlap
    js: "C:/Program Files (x86)/Texas Instruments/xdctools_3_22_00_09/packages/xdc/cfg/Main.xs", line 130: Error: Configuration failed!
    gmake.exe: *** [package/cfg/hello_p28L.xdl] Error 1
    js: "C:/Program Files (x86)/Texas Instruments/xdctools_3_22_00_09/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
    gmake: Target `all' not remade because of errors.
    Build complete for project BMS-R2

    Any way I can get rid of the errors?

    Thanks,

    Naval

     

  • Sorry missed this screen shot in the previous post.


  • 2. The .h file is named after the .tcf file and not the .cfg file. (I get "BMS_Ncfg.h" and not "MyOutfilecfg.h" as I expected and mentioned in the AN).

    I just checked the App Note and I found the example where the name of the generated .h file correspond to the .cfg script, but the App Note is wrong. The conversion tool does the right thing and names the .h after the .tcf script. That's because in your app C code you are refering to that .h file as if it were built by the .tcf script.

    The error message indicates that the memory object CRC32_TAB is placed within a memory range of FLASH. The memory range for FLASH is defined in the same way in BIOS5 and SYS/BIOS 6, so I would expect you would see the same problem when building the configuration with BIOS 5. Do you have FLASH on the actual device you are using? There are ways to adjust the memory map depending on what that map should be.

  • Hi Sasha,

    We have the complete project running in BIOS v5. I use the linker files for the BIOS project for the current Hello example. I even tried with the default automatic setting. It is still the same.

    I am using the 2809 DSP which has a Flash on it.

    Thanks.

    Naval