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.

f2833_x_boot_rom example project won't compile without errors in Code Composer v5.3

Other Parts Discussed in Thread: CONTROLSUITE, TMS320F28035

Hello,

I am trying to build either version of the example code for the bootloader attached here:

5277.2833x_boot_rom_goldSource_v1.zip

8546.2833x_boot_rom_goldSource_v2.zip

I cannot get a successful build without 10 errors. Below are the errors I receive while buidling in Code Composer v5.3:

Your help would be appreciated in getting this project to build without errors.

Thank you,

Chuck

 

Description Resource Path Location Type
Invalid project path: Include path not found (C:\tidcs\c28\boot_rom\2833x\2833x_boot_rom_goldSource_v2\2833x_boot_rom_v2\DSP2833x_headers\DSP2833x_headers\include). f2833x_boot_rom  pathentry Path Entry Problem
[E1500] file access error:  failed to open "Y:/c2000_apps/c28xx/collateral/Boot_ROM/2833x_bootrom/2833x_boot_rom/Debug/ADC_cal.obj" for writing ADC_cal.asm /f2833x_boot_rom/source   C/C++ Problem
[E1500] file access error:  failed to open "Y:/c2000_apps/c28xx/collateral/Boot_ROM/2833x_bootrom/2833x_boot_rom/Debug/Vectors_Boot.obj" for writing Vectors_Boot.asm /f2833x_boot_rom/source   C/C++ Problem
[E1500] file access error:  failed to open "Y:/c2000_apps/c28xx/collateral/Boot_ROM/2833x_bootrom/2833x_boot_rom/Debug/FPUmathTables.obj" for writing FPUmathTables.ASM /f2833x_boot_rom/source   C/C++ Problem
[E1500] file access error:  failed to open "Y:/c2000_apps/c28xx/collateral/Boot_ROM/2833x_bootrom/2833x_boot_rom/Debug/IQmathTables.obj" for writing IQmathTables.ASM /f2833x_boot_rom/source   C/C++ Problem
[E1500] file access error:  failed to open "Y:/c2000_apps/c28xx/collateral/Boot_ROM/2833x_bootrom/2833x_boot_rom/Debug/Init_Boot.obj" for writing Init_Boot.asm /f2833x_boot_rom/source   C/C++ Problem
[E1500] file access error:  failed to open "Y:/c2000_apps/c28xx/collateral/Boot_ROM/2833x_bootrom/2833x_boot_rom/Debug/TI_Test.obj" for writing ti_test.asm /f2833x_boot_rom/source   C/C++ Problem
<a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" DSP2833x_GlobalVariableDefs.c /f2833x_boot_rom/DSP2833x_headers/source line 14 C/C++ Problem
[E1500] file access error:  failed to open "Y:/c2000_apps/c28xx/collateral/Boot_ROM/2833x_bootrom/2833x_boot_rom/Debug/ITRAPIsr.obj" for writing ITRAPIsr.asm /f2833x_boot_rom/source   C/C++ Problem
[E1500] file access error:  failed to open "Y:/c2000_apps/c28xx/collateral/Boot_ROM/2833x_bootrom/2833x_boot_rom/Debug/ReservedSpace.obj" for writing ReservedSpace.asm /f2833x_boot_rom/source line 5416448 C/C++ Problem
[E1500] file access error:  failed to open "Y:/c2000_apps/c28xx/collateral/Boot_ROM/2833x_bootrom/2833x_boot_rom/Debug/IQmathTables2.obj" for writing IQmathTables2.ASM /f2833x_boot_rom/source   C/C++ Problem

  • Hello Charles!

    The problem consist at invalid path ...\DSP2833x headers\DSP2833x headers\include, which arise when migration in CCS-workspace. I couldn't  delete this path via Project Properties.  I have created the new empty static lib project  for F28335 and I did "copy-paste" of all needed project's elements from "goldSource_v1.zip". Compiling is successful. Refer to attachment 8203.boot_room_1.rar (you need just to correct include path for your CCS-workspace: Properties>C2000>Include Options). For goldSource_v2.zip you can try the same way.

    Regards,

    Igor

  • Is there a reason you are trying to build ROM code. That project is given for reference if you want to do source leve debug of ROM or just understand the ROM sources better.

    all you would need to do is import the project and select load symbols and choose the golden coff file in the output directory.

     

    Best Regards

    Santosh

     

  • Santosh,

    I want to make a bootloader for a F28335 project and the documentation available from TI does not really

    explain how to actually build a bootloader. Application Report SPRAAQ3 uses the ROM code as an example

    and does not explain how to build a simple bootloader. The article referenced on the TI website "Embedded Apps Need

    Boot-loaders, Too" only explains how to use a linker command file. The Delfino Workshop archived on the TI website

    is also vague and does not really explain how to actually create bootloader.

    Can you point me a to document that actually discusses how to build a simple bootloader so I can test it out on my experimenter's kit?

  • Charles,

    are you building a flash based boot loader?  is the use case - device will always boots to flash and starts your boot loader in flash? which peripheral you would want to use to boot load with?

    Device boot ROM guide or boot ROM chapter of the TRM of your device is best document to understand what is in the boot ROM.

    Here is one of the easy ways to do it, see what is implemented in boot ROM, step through the code by loading ROM symbols on your device - you can ignore some of the device initializations that boot ROM does because you wouldn't have to do that in your application (coz, boot ROM already does it). by stepping through the code see how boot ROM selects the boot interface and how it initializes the peripheral and sets it up for data transfer. next big part is how it parses the incoming data from the peripheral and how it starts the application.

    match the code flow to the document you read and you will understand it better.

    Now , just take any control suite device example for your device, probably any peripheral example which is closer to the boot loader interface you want to build up. for ex: if you want to do SCIBoot, you can copy the SCIBoot.c file or copy the needed functions from there and incorporate in main() or other functions of your example. 

    that would be a good way to start. You can also choose to branch back to the loader functions in ROM if you want to save some flash space.

     

    Take a look at app note SPRAAN5, it provides some important details on things to take care of - while ROMing software. The basic linking principles apply for any ROM based loader and to flash based loaders.

     

    Best Regards

    Santosh

     

     

  • Santosh,

    How does one "select load symbols" in Code Composer v5.3 ? I do not see that option in the drop down menus.

    -Chuck

  • Igor,

    I downloaded your project and imported it into Code Composer. I changed the include path in Properties but I still cannot build without errors.

    I get these errors:

    Description Resource Path Location Type
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" I2C_Boot.c /boot_room_1/source line 63 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" XINTF_Boot.c /boot_room_1/source line 21 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" SelectMode_Boot.c /boot_room_1/source line 21 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" SysCtrl_Boot.c /boot_room_1/source line 22 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" SCI_Boot.c /boot_room_1/source line 23 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" SPI_Boot.c /boot_room_1/source line 25 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" Parallel_Boot.c /boot_room_1/source line 26 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" XINTF_Parallel_Boot.c /boot_room_1/source line 26 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" DSP2833x_GlobalVariableDefs.c /boot_room_1/source line 14 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" Shared_Boot.c /boot_room_1/source line 21 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" CAN_Boot.c /boot_room_1/source line 27 C/C++ Problem
    <a href="file:/C:/ti/ccsv5/tools/compiler/dmed/HTML/5.html">#5</a>  could not open source file "DSP2833x_Device.h" MCBSP_Boot.c /boot_room_1/source line 24 C/C++ Problem

  • Igor,

    Disregard. I figured out the build error. I needed to add one more directory to include path.

    Thank you,

    -Chuck

  • Hi!

    Did you compile my project without errors lastly?

    Regards,

    Igor

  • It builds without errors but when I debug I receive:

    C28xx: GEL: Encountered a problem loading file: C:\Users\cjackel\Desktop\8203.boot_room_1\boot_room_1\Debug\boot_room_1.lib ".lib" is not a legal file extension

  • Hi!

    For loading you can use *.out or *.hex format. Now you created static library only. "Lib" is not executable file. You can attach your *.lib to some your project and you can use the functions of this library.

    Regards,

    Igor 

  • Charles Jackel said:
    How does one "select load symbols" in Code Composer v5.3 ? I do not see that option in the drop down menus.

    Chuck,

    Here is the option:

  • Igor,

    I do not understand what you are telling me to do. The error is being generated by Code Composer. What do I need to do to prevent the error during debug?

    Thank you,

    Chuck

  • Lori,

    Those options do not appear on my Run drop down list. Most likely because I cannot get past the debug error mentioned above.

    -Chuck

  • As a side note, I agree with Santosh on the method for learning what the boot code does. 

    The ROM is just another application, fully linked.  With the project and the golden .out file -  if you load symbols you can step through the code exactly as it is on the device today.  A library will not help with this.  Also if you rebuild the ROM you risk the chance of code moving around from how it was released on the device.

  • Lori,

    I guess I am asking the wrong questions. Thus far, the bootloader app notes make me more confused.

    Is there a note or article that actually explains how to "load symbols" and what this actually does?

    When I say from scratch, I really mean a customized bootloader.

    My question:

     So if I get the files to build and debug okay, then my next step would be to "load symbols" i.e. the particular functions I need the bootloader to be used for?

  • Lori,

    Also, I am still stuck with this library file error. What do I need to do to eliminate it? I didn't add any files to the project, so I am

    confused by what you mentioned regarding not needing the library file. Ok, so what I do I need to eliminate the "not a legal file extension"

    error?

  • Charles Jackel said:
    Those options do not appear on my Run drop down list. Most likely because I cannot get past the debug error mentioned above.

    Chuck,

    Instead of using debug - which will try to build a current project - instead just connect to the target.

    Open the target configurations (View -> Target Configurations)

    Here you can create a target configuration for the 28335.  I can point you to more documentation on how to do that if needed.  

    Right click on the target configuration and select launch selected config.

    This should then open up a window called Debug.  Right click on the 28x and select "connect"

    -Lori

  • Lori,

    Ok, connected to target okay. I have an external EEPROM connected to experimenter's kit for testing I2C.

    How can I verify what the bootloader is doing at this point?

  • Charles Jackel said:
    Is there a note or article that actually explains how to "load symbols" and what this actually does?

    Loading symbols is done through the menu I showed previously.  I think you don't see it because you are not connected to a target (i.e. device).  I hope my previous post helps here. 

    "Load Symbols" tells CCS that the code is already resident in the device and it shouldn't be downloaded - this would be the case for code within ROM. 

    What CCS does is instead is it takes all of the debug information out of the application .out file and allows you to source-step through the application. 

    Charles Jackel said:
    When I say from scratch, I really mean a customized bootloader.

    A boot loader is just a full application.  I don't think building what we have in the ROM will necessarily help you - maybe you can take parts of the source code to your own boot loader.   The suggestion Santosh and I am making is to be able to step through the code that exists today to see what it is doing.  I've found this to be a great way to learn what is in code.

    Charles Jackel said:
     So if I get the files to build and debug okay, then my next step would be to "load symbols" i.e. the particular functions I need the bootloader to be used for?

    Load symbols just allows you to step through code that already exists on a device.  It assumes that the .out file was the exact one corresponding to the code in the device so that source-code debug works properly.  The code should not be rebuilt as it will then not correspond to the .out file exactly as it was when the ROM was released (new compiler for example).

    Charles Jackel said:
    When I say from scratch, I really mean a customized bootloader.

    Once you have stepped through the boot ROM as it exists today then my hope is you will know more about what you want in your loader.  Maybe some of the ROM source will apply to your custom loader.

  • Hi Chuk!

    You can try to create some new CCS-project (with main() for example) and you need include your *.lib to the project (for example through "C2000 Linker->File Search Paths" of project's properties). Then try to build (you will get out-file at result) and then run debugger.

    Regards,

    Igor

  • Lori,

    When I select "Run - Load Symbols," I still get:

    C28xx: GEL: Encountered a problem loading file: C:\Users\cjackel\Desktop\8203.boot_room_1\boot_room_1\Debug\boot_room_1.lib ".lib" is not a legal file extension

    -Chuck

  • Charles Jackel said:

    Ok, connected to target okay. I have an external EEPROM connected to experimenter's kit for testing I2C.

    How can I verify what the bootloader is doing at this point?

    First I would suggest going into the debugger options and turning off "run to main" under Auto Run and Launch Options

    First load the symbols as discussed previously

    Reset the device

    Now the PC should be at the entry point to the boot ROM and the source should follow as you step through.  Make sure your boot mode pins are set to I2C.  Also refer to the flowchart in the boot ROM guide for I2C boot on page 55

    www.ti.com/lit/SPRU963

  • Charles Jackel said:
    C28xx: GEL: Encountered a problem loading file: C:\Users\cjackel\Desktop\8203.boot_room_1\boot_room_1\Debug\boot_room_1.lib ".lib" is not a legal file extension

    Please use the original .out file from the boot ROM source .zip.

  • Lori Heustess said:

    C28xx: GEL: Encountered a problem loading file: C:\Users\cjackel\Desktop\8203.boot_room_1\boot_room_1\Debug\boot_room_1.lib ".lib" is not a legal file extension

    Please use the original .out file from the boot ROM source .zip.

    [/quote]

    Lori,

    There is no binaries folder and also no .out file in the project.

    -Chuck

  • Charles Jackel said:
    There is no binaries folder and also no .out file in the project.

    Perhaps the binary was cleared out when you tried to build the project.  Please unzip again and look in the Debug directory. 

    Import the project and then load symbols.  Do not rebuild.

  • Lori,

    Nope. No out files. Attached is the zip file from Igor.

    -Chuck

    1018.8203.boot_room_1.rar

  • Charles Jackel said:
    Nope. No out files. Attached is the zip file from Igor.

    Please lets put aside the .lib project from Igor.  Please go back to the boot ROM release within controlSUITE. 

  • Hi Chuck!

    We got confused...Your "5277.2833x_boot_rom_goldSource_v1.zip" from your first post has OUT-file. My project creates lib-version.

    Regards,

    Igor

  • Lori,

    I just imported f2833x_boot_rom project from controlSuite. The Run menu does not have the Load Symbols option. The Run-Load menu only has a grayed out Verify Program option.

    -Chuck

  • Charles Jackel said:
    The Run menu does not have the Load Symbols option. The Run-Load menu only has a grayed out Verify Program option.

    You need to be connected to the target and in the debug perspective for the load menu to appear.

  • Lori,

    I still get the library .lib extension error following "Load Symbols", even after loading the project from controlSuite.

  • Charles Jackel said:
    I still get the library .lib extension error following "Load Symbols", even after loading the project from controlSuite.

    You want to select the .out file in the Debug directory of the boot ROM source - see the screenshot I posted previously with the .out.   Please do not select the lib that Igor sent.

  • Lori Heustess said:

    I still get the library .lib extension error following "Load Symbols", even after loading the project from controlSuite.

    You want to select the .out file in the Debug directory of the boot ROM source - see the screenshot I posted previously with the .out.   Please do not select the lib that Igor sent.

    [/quote]

    Lori,

    I am confused. What do you mean "select the .out file in the Debug directory" ?

    And do what with it? I don't understand. I imported the project from controlSuite, I connected to the Target and I loaded the symbols. But I get the .lib error. What

    do you mean "select the .out file ?:"

  • Charles Jackel said:
    I am confused. What do you mean "select the .out file in the Debug directory" ?

    When the boot ROM source .zip is extracted there is a Debug directory.  Inside this Debug directory is a file with the .out extension shown in this screen shot

    Run->Load -> Load Symbols should open up a dialog box that looks like this:

    Click on Browse Project and navigate to the boot ROM source Debug directory.  Select the .out file shown in the previous screen shot.

  • Lori,

    Ok. I select .out file and received this:

    "Can't find a source file at "Init_Boot.asm" "

    but the debug options are available. Do I click on the green arrow or do I step through as usual? 

     

  • Charles Jackel said:
    "Can't find a source file at "Init_Boot.asm" "

    There should be an option somewhere on the screen to browse to the location of the source. 

    Charles Jackel said:
    but the debug options are available. Do I click on the green arrow or do I step through as usual? 

    Yes you can step the code just like any other application.  once CCS knows where the source code is, then the source code will follow along. Sounds like you are set now for stepping through the ROM and learning how it works. 

    regards

    Lori

  • now select browse and point to the ASM file in the sources directory of the ROM sources where you downloaded. do a debug reset and start doing assembly single stepping while in ASM sources and C single stepping while in C sources.

     

    Best Regards

    Santosh

     

  • What do you mean "Select browse" ?

    Where is that option?

    -Chuck

  • Lori Heustess said:

    "Can't find a source file at "Init_Boot.asm" "

    There should be an option somewhere on the screen to browse to the location of the source. 

    Charles Jackel said:
    but the debug options are available. Do I click on the green arrow or do I step through as usual? 

    Yes you can step the code just like any other application.  once CCS knows where the source code is, then the source code will follow along. Sounds like you are set now for stepping through the ROM and learning how it works. 

    regards

    Lori

    [/quote]

    I couldn't get this far without your help. :)

     I can't see an option to browse the source. Your assistance is requested.

    -Chuck

  • can you attach the snapshot (print screen) of the CCS window when the error happens, where it complains "Can't find a source file at "Init_Boot.asm" "

     

    Best Regards

    Santosh

     

  • Attached is screen shot

  • I can't believe it. I'm stepping through Init_Boot.asm !!!

    I'm sure I'll have more questions tomorrow.

    Thank you Lori, Santosh, and Igor!

    -Chuck

  • Hi Chuk!

    Well, do not thank me for that. It seems I'm just did disorder with the "lib" version. I'm sorry.

    Good luck,

    Igor

  • Hi Igor,

    I am working on TMS320f28035 as my Target MCU. I have successfully build 2803x_boot_rom project and in Debug window i have 2803x_boot_rom.lib as Object File Library.

    Then i have created one empty project and included .lib to the project.Then i have build it and also ran debugger.I have also enabled hex2000 utility to generate .hex file from .out file.But generated hex file is not including any variables or expressions from .lib file.

    So including .lib file in empty project is not able to generate required .out file we require to be debugged in boot rom.

    Thanks
    Regards
    Siddharth

  • Siddharth,
    I've responded on the other thread you have. If your this question is related to the one you posted here (e2e.ti.com/.../1946730, we can continue the discussion there.

    If not , I would suggest to open a new thread with your questions.

    The ROM project is not for rebuilding as it is. It is provided for customers to step through boot ROM and emulate the device behavior. The source code can be reviewed and utilized for building flash kernels like you are attempting.

    please check the example C:\ti\controlSUITE\device_support\f2803x\v130\DSP2803x_examples_ccsv5\f2803x_flash_kernel
    This example is based of SCI and what you are looking for is CAN BOOT. Just replace the SCIBoot.c with CAN BOOT and see if that helps you with your solution.

    The SCIBOOT.c and CANBOOT.C can be referred to from the ROM sources for your device (C:\ti\controlSUITE\libs\utilities\boot_rom\2803x)

    Hope this helps.

    Best Regards
    Santosh Athuru