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.

CCSv5.3 - DM3730 - .OUT to .BIN

Other Parts Discussed in Thread: DM3730, SYSBIOS

Hello,

So I have compiled the SYS/BIOS Hello example for the DM3730 chip using the platform ti.platforms.evm3530 (closest one available). I want to run the program on a CM-T3730 board but need to convert the .out file to a .bin file first. I can't seem to find hex470.exe for the ARM part. Everything is in one file so an image file will not be needed.

So, which file(s) do I need, where do I get them, and what is the command string for their usage?

Thanks.

  • Hi,

    Your project can be converted to bin by using the command shown in the thread below in the post build step:

     http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/p/65174/826785.aspx#826785

    The post build step can be found by right-clicking on the project --> Properties --> CCS Build --> tab Steps --> insert the command above in the box Command under the Post-build steps area.

    Keep in mind the binary file format may have some pitfalls (check here), especially with BIOS projects.

    Also, be aware that when debugging a standard SYSBIOS example from inside CCS, the device and its hardware configurations are performed by a script called GEL file. Also, CCS places the PC (Program Counter) in the entry point _c_int00 automatically.

    A standalone boot, on the other hand, requires that hardware initialization is done by the application executable, especially if you are allocating your code in external memory (where PLL and EMIF are required). If your board has a set of GEL files, fortunately they are C-language files and you can simply add their code to a C file in your project.

    Also, a standalone program requires the reset vector to be initialized with the entry point _c_int00. For that you will have to check how a bootable application designed for your board implements that - usually the development boards have support software named either Board Support Library (BSL) or a set of tests called ITBOK (Is The Board OK?).

    Hope this helps,

    Rafael 

  • Is there a tutorial that goes through what is needed to run SYS/BIOS projects? Most of the documentation I see is fragmented or very heavily geared towards Linux in one way or another. I'd like to still load the binary with u-boot simply because it makes things easier (if this is possible).

  • Also, I went through the link. I don't have /utils/tiobj2bin path.

  • Another question, since the x-loader can understand FAT32 can I simply save my .bin file to the MMC and have the x-loader load it? Are there any things to watch out for?

  • ...The board I have is from CompuLab (CM-T3730) and their support isn't very robust. So things like BSL are out of the picture. For starters, I just want to print "Hello World" on UART3 (which is where my RS232 connection is on my board).

  • Dustin Kreft said:

    Also, I went through the link. I don't have /utils/tiobj2bin path.

    Please see this post for the reason this utility may be missing, and how to resolve.

  • Hi,

    Dustin Kreft said:

    Is there a tutorial that goes through what is needed to run SYS/BIOS projects? Most of the documentation I see is fragmented or very heavily geared towards Linux in one way or another.

    Not for DM family of devices; as you can tell, this family is heavily geared towards Linux development.

    Although I haven't done this before, I have a general idea on options of how to do this:

    - create your project with all the HW initialization, convert it to a binary file, add the boot signature (load address and size) using the signGP utility (used in BeagleBoard, etc.), rename the signed binary file to MLO and copy it to the first FAT partition of your MMC card. This option requires you to perform the entire hardware initialization in the binary and it must fit in the internal memory of the device (I think roughly 64kB).

    - create your project with only the minimal HW initialization for the peripherals of interest, convert it to a binary file, copy it to the MMC card and let the xloader/u-boot initialize the environment for you. Then, from the u-boot command prompt you can use the fatload and bootm commands to load and start your application.

    Dustin Kreft said:

    Another question, since the x-loader can understand FAT32 can I simply save my .bin file to the MMC and have the x-loader load it? Are there any things to watch out for?

    Unfortunately I don't know x-loader in detail, therefore I can only wonder what requirements are needed for it to properly load an executable to memory.

    Dustin Kreft said:

    ...The board I have is from CompuLab (CM-T3730) and their support isn't very robust. So things like BSL are out of the picture. For starters, I just want to print "Hello World" on UART3 (which is where my RS232 connection is on my board).

    If you intend to use the same UART used by u-boot to output any printf() messages, I am not sure if you will be able to do it. The main problem I can think of the console I/O support on u-boot may not be compatible with the console I/O used by your application. If you intend to configure an extra UART port to do that, then I see no problem.

    All in all, you may get some additional advice about the device's boot process from either the DaVinci device forum or beagleboard.org's discussion channels. I am almost sure this was asked before.

    Hope this helps,

    Rafael