RA - > Synergy BSP Problems

Hello everyone. My customer has requested I move from RA to Synergy, and I'm perplexed by the HAL differences.  

This project uses just about every peripheral available, and I enjoyed porting to RA initially.  The IDE and configurator and code all worked exceptionally well.  The R_ interfaces for configuring and using the underlying driver model had few bugs or issues, and I really appreciated being able to mouse over and get the help context popups too for each R_ function.  

But Synergy is really taxing me. While the R_ functions are sometimes defined in the synergy driver libraries, they all appear to be private, and instead the framework exposes global members with their own differently-named functions for performing the same functions. I've been told by our local Renesas FAEs that examples don't exist for much of the BSP and pointed me to the Synergy Software Package User's Manual. But this does not list the names of the global variables and many of the underlying structures used to make this all work.

For example with the ADC. On FSP you'd do:

err = R_ADC_Open (&g_adc0_ctrl, &g_adc0_cfg);

In SPP however this becomes

err = g_adc_on_adc.open(g_adc0.p_ctrl, g_adc0.p_cfg);

For some peripherals I've been able to sort out the syntactical changes. But others are just eluding me. There's just a never-ending depth to all the configure and control registers and their new associated global structures. So I'm hesitant to proceed without asking for help first. Am I missing the big picture here? Is there a way to enable access to the R_ calls I'm used to?

Thank you for any insight you can provide!

- Jason

Parents Reply
  • Yes that is fine. My questions were SW in nature and the HW discussions have derailed us a bit.    

    Let's ignore porting entirely.  Please approach this as if I was a first-time Synergy User.  

    Question 1:

    Is it expected that R_ calls are largely not used in Synergy HAL, despite being referenced in the online Synergy Software Manual and being defined in many header files?  Instead Synergy uses abstracted calls found on global driver objects?  For example: g_adc_on_adc.open(g_adc0.p_ctrl, g_adc0.p_cfg);  to open and configure the ADC driver.

    Question 2:

    Does a repo of project examples exist anywhere?  Most videos and worksheets mention a downloadable set of examples having existed at some point.  Many forum questions also have folks searching on the Renesas website, but my perception is any examples may have been purged along the way.  

    Thank you!

Children