HOWTO: Use IVT Tool To Create A Blob Image S32R45

cancel
Showing results for 
Search instead for 
Did you mean: 

HOWTO: Use IVT Tool To Create A Blob Image S32R45

No ratings

HOWTO: Use IVT Tool To Create A Blob Image S32R45

This instruction details the steps to create an image vector table, then subsequently generate a blob image which can be written to external flash on the S32R45 EVB. For this, the 'hello_world_s32r45' example project from the S32R45 SDK installed to S32 Design Studio IDE. This instruction shows the process for QSPI, however, SD, MMC, and eMMC are also supported.

 

The Image Vector Table (IVT) image is a set of pointers to other images which are required by the BootROM.

It typically contains the following images, though not all are required to create a valid IVT image:

  • DCD
  • Self-Test DCD
  • HSE
  • Application Bootloader

 

The IVT Tool enables configuration and generation of the IVT image as specified in the BootROM reference manual.

 

Prerequisites

Before using the IVT Tool, it will be useful to have already generated the binary image from your application project, it will be an input to the IVT. It may also be necessary to include a DCD image, for example, to initialize the SRAM.

 

 

Procedure

  1. With desired project open in project explorer (C/C++ perspective), switch to IVT perspective. Click on 'Open IVT'.

    image.png

  2. In the Boot Configuration section, check that the correct Boot Target is selected. For the demonstration here, M7_0 is the correct selection.

    image.png

  3. Check the 'Interface selection' section. If your intended boot device is SD, MMC or eMMC, then change the setting from QuadSPI Serial Flash. If your intended boot device is QuadSPI AND you do not have a QuadSPI parameter file to specify, then uncheck the box for 'Configure QuadSPI parameters'. QuadSPI parameters change some flash registers' settings away from the default setting and are generally required for larger memory sizes (for ex. applications over 1 MB in size, for some supported devices).

    pastedImage_4.pngpastedImage_17.png

  4. From the Image Table section, depending on your configuration, turn off all unused images. For the demonstration here, the following will be changed to Reserved: Self-Test DCD, Self-Test DCD (backup), DCD (backup), Application bootloader (backup). The following images will remain enabled: DCD, Application bootloader.

    pastedImage_5.png
    pastedImage_4.png

  5. In DCD section of the Image Table, click 'Browse File' and select the DCD binary file. Ignore the red shading on the Start address and Size in bytes fields for now.

    image.png

    pastedImage_8.png

  6. Now the red shading should be resolved. This is appearing because when the DCD section was enabled, it added a block to the Memory Layout map. But the other blocks in the map are unchanged resulting in overlaps. To resolve this, click on the ‘Align’ button from within the Automatic Align section..

    image.png

    After the Memory Map has been aligned, a confirmation message will be displayed and the red shading will disappear.

  7. In Application bootloader section, again use  'Browse File' and select the application binary.

    pastedImage_5.png

    pastedImage_9.png

  8. When the application boot image is loaded, the tool processes the file to check if it contains the header for the application bootloader image. If the header is not found, it means that the file is only the raw code (the bin generated by S32 Design Studio) and it will be necessary to provide the values for RAM start & entry addresses (code length is automatically calculated), as noted with the expanded view and red shading.

    image.png

    To set the RAM start pointer and entry pointer addresses, from to the C/C++ perspective:
    1. From Project Explorer on the C/C++ perspective, open the linker file (hello_world_s32r45\Project_Settings\Linker_Files\S32R45_common_ram.ld) and locate the RAM start address and enter it in both the RAM start pointer AND RAM entry pointer fields in the IVT Tool.

      pastedImage_8.png

      pastedImage_9.png

  9. Since the application binary file which was loaded is just a raw binary file, it is necessary to generate the full application bootloader image. The Export Image function takes the values entered for the RAM start & entry pointers and Code length, then generates the Application bootloader header. This header is added to the raw binary file producing a new image, the full application bootloader image file. Within the Application bootloader section, click 'Export Image' and enter a meaningful name for the image file. In addition to being a necessary source component of the IVT image, this file can more easily be shared or re-used to as an input to other IVT images.

    pastedImage_9.png

    pastedImage_10.png

    After the file has been generated, you will notice that the address settings section has collapsed. This is because it has replaced the file you originally selected with the newly generated one and the tool has recognized that the file contains the required header information.

    image.png

  10. Click 'Export Blob Image' to generate the blob image file. This is what will be flashed to the target.

    image.png

  11. Now that the Blob Image is generated, the 'Flash Image' button could be used to program the image to the target over serial connection, use the S32 Flash Tool, or over the JTAG connection using the Flash Programmer within the S32 Debugger (QSPI only).

    image.png

Version history
Revision #:
2 of 2
Last update:
‎04-13-2021 02:01 PM
Updated by: