Using openVG with embOS

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Using openVG with embOS

    Hi,

    I have an openVG demo running on a Renessas RZA1 demo board.

    The demo runs fine when there is no rtos involved. I just have a function that I call from main
    with a loop that rotates a coloured rectangle.

    When I introduce embOS (embOS ARM IAR V6) into the demo and call the same function from a single task, it stops working.
    The task runs fine, but the output to the display is wrong. It's like the frame buffer isn't getting the correct data.

    One thing I have noticed is that the project is using the hardware VFP and NEON, but the rtos is built using software
    floating point. I'm new to ARM so I'm not sure what effect this has.

    Thanks.
  • Hi Allan,

    Thank you for your inquiry. I'm not quite familiar with openVG and thus cannot give specific advise on that. Generally speaking, however, there isn't many differences between a super-loop application and an embOS application with 1 task only. One of these differences is the hardware initialization performed by embOS, which configures a hardware timer to periodically generate an interrupt as a time basis for the OS, and may furthermore include modifications to the clock and PLL configurations. This could in reverse affect display timings as well. With our shipped start project for the RZA1, a function _InitPLL() was in fact included with the source file RTOSInit_R7S72100.c; it gets called during the low level initialization. Hence, could you please validate if the settings configured therein would actually fit your purpose?

    Best regards,

    SEGGER - Support embOS
    Martin
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hi Alan,

    one additional note:
    With embOS and RZ the memory managment unit and caches are used.
    Please find at the end of RTOSInit_R7S72100.c the MMU table which defines which memory areas are cached with write through or write back.
    If you are using the wrong setting it could happen that e.g. the display data is only written to the cache but not directly written to the memory.

    Best regards,
    Til
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Thanks to you both for your replies.

    It turns out that it was the MMU and the caches. In RTOSInit_R7S72100.c the cache mode for the 10MB internal mirror RAM was set to Write-Back,
    changing it to Write-Through solved the problem.


    Thanks again,


    Allan