S7 Bootloader question

Hi,

I am working on this basic bootloader application: renesasrulz.com/.../3223 and I am trying to upload the "S7SK_HMI_MMF" project. In this case, I have to copy on a USB stick the two binaries: flash.bin and qspi_flash.bin. My question is: what are they referred to? Is the first related to the executable and the second to the GUIX resources?

In particular, I would like to try to load my own GUIX HMI project application using the bootloader: how can I generate the two .bin files to copy on the USB stick? I saw there is a .bat file that should do the work, but it seems it doesn't work. Any help?

Thanks,

regards.

  • In reply to Renesas Karol:

    Hi Karol,
    I apply the python script to my resources (they are placed in QSPI), but no bootloader is present, I program the MCU directly through JTAG. In this way, the flickering problem still remains.
    Rebuilding the project making no use of QSPI (resources and code in internal flash), the problem is no longer present.
    I noticed that in the first case the graphics is flickering also when it is static (no touches detected).
    Any idea to solve the problem? Have you ever experienced that before?
  • In reply to Laser:

    Hello Laser,

    If non-MMF project using QSPI for resources is also showing this behaviour, it's definitely down to the QSPI throughput. We recently identified a problem where the buffers may be toggled too early, when D/AVE2D is still performing the rendering. While we actively work on a fix, you can disable D/AVE2D on your end to temporarily solve the problem - this will cause GUIX to use software rendering functions.

    Regards
  • In reply to Renesas Karol:

    Hi,

    any update about the fix for that problem? How can I temporarly disable D/AVE2D? I tryied to delete the D/AVE 2D Driver in the configurator.xml, but the build fails. Any help?

    Thank you.

  • In reply to Laser:

    Hello Laser,

    You'll need to disable Hardware Drawing Acceleration inside your GUIX Studio project.

    Regards
  • In reply to Renesas Karol:

    Hi Karol,

    you mean the "Enable Graphic Accelerator shown below?

    The JPEG option should become "None"?

    Also, the D/AVE 2D Drivier in the configurator has to be deleted, right?

  • In reply to Laser:

    Hello Laser,

    "Enable Graphic Accelerator" is the right option for D/AVE2D - it should be disabled. Once disabled in GUIX Studio, settings in the configured are no longer relevant for D/AVE2D (you can remove it from the configurator to save 32k of RAM). As for the JPEG - it's not part of the problem so you can keep it enabled, however I tend to disable it usually unless project uses JPEG images.

    Regards
  • In reply to Renesas Karol:

    I unchecked the "Enable Graphic Accelerator" choice, but the build always fails. Am I missing something?
    Thank you.
  • In reply to Laser:

    Hello Laser,

    Your screenshots are only thumbnail size so I can't see exactly what build problem you're seeing. Since you removed D/AVE2D from Synergy Configuration also, you'll need to make sure it's disabled in properties for GUIX on gx.

    JPEG and D/AVE2D appear in 3 places: GUIX Studio, GUIX properties and as a module stack, in order of importance. To use them, you'll need to keep all enabled. Do disable either one, GUIX Studio must be set to disabled. You can then also disable it in GUIX properties. If that's done, you can then remove its stack from the configurator.

    Regards
  • In reply to Renesas Karol:

    Karol,
    I did some tryies, and I finally succeded in removing D/AVE2D. Now, I cannot see the flickering problem on the screen due to the QSPI throughput anymore, so the app loaded by the bootloader works well.
    Now, since my application requires a 180 degree rotation, I set the "Screen Rotation Angle" property to "180" and consequently the "GUIX canvas buffer" property to "Used". With these settings (with the graphic accelerator disabled) the application does not work anymore!
    Is it possible to keep the graphic accelerator disabled (in order to avoid problems caused by the QSPI throughput) and set the screen rotated to 180 degree? Why it gives problems?
    Thank you.
  • In reply to Laser:

    Hello Laser,

    In this situation, I'm not sure whether external bus bandwidth is sufficient for your solution, assuming you're using 800x480 resolution with 16 bit color. For each frame, the external bus is used to pull resources from QSPI, write them to the buffer in SDRAM, then load that content back, transpose/rotate it using CPU and write it back to SDRAM - effectively performing more than 3x actions on the external bus.

    The best solution, if possible, would be to amend your hardware so that 180 degree rotation is not necessary - currently canvas rotation is performed using intermediate buffer and is quite taxing on the external memory bus (however there's plan to implement this as co-ordinate manipulation so that additional buffer is not required). If for some reason your hardware cannot be modified/adjusted, you can re-generate GUIX resources but not move them to QSPI - since rendering is now performed by the CPU, resources can be placed in the code flash. Final alternative would be to apply small fix to one of the D/AVE2D files that checks if the drawing list is still rendering, before returning.

    Regards
  • In reply to Renesas Karol:

    Karol,
    I see. I would try to place the resources in the code flash. I tryied to delete the pre-build command involving the phyton script, but when I run the .bat file in order to generate the flash.bin and qspi_flash.bin obviously fails (the qspi is no longer used). In this particular case, how can I build the application to be loaded by the bootloader?
    The qspi_flash.bin should be empty?
    Have I to modify also the .ld script file?
    Thanks.
  • In reply to Laser:

    Hello Laser,

    You can either go to Project -> Properties -> C/C++ Build -> Settings -> Cross ARM GNU Create Flash Image -> General and set output file format to raw binary, or add an arbitrary symbol in QSPI flash in order to satisfy the batch script, i.e:
    static UINT unused_symbol BSP_PLACE_IN_SECTION(".qspi_flash");

    Regards
  • In reply to Laser:

    Why don't you flip all your bitmaps and work normally with your board? I used this trick with a 90° rotated screen and it works fine. You only have to apply simple conversions to the touch screen coordinates.
  • In reply to Laboratori Elecsan:

    Hello Laboratori,

    This will only work for pixelmaps - text will not be rotated.

    Regards
  • In reply to Renesas Karol:

    Karol,

    I placed the resources in the code flash, and add a dummy symbol in qspi flash (as you suggested) in order to satisfy the batch script. Unfortunately, the graphic does not work well with the screen rotated, the effect is the same as the case of resources placed in qspi. Is it possible?

    Image ok, but rotation = 0 degree:

    Image with rotation = 180 degree: images NOT ok: