Configuring the Board Support Package (BSP) using the Synergy Configuration Tool

In the last post, we discussed the fundamentals associated with creating a base project using the “Custom BSP Creator”. In that post, we saw that there are two scripts associated with creating a custom BSP; the Custom BSP Creator and the Custom Pack Creator. In today’s post, we will examine how we can configure the BSP with our own customizations.

 

The BSP handles everything necessary to get the microcontroller from reset to the main application. In a Renesas Synergy™ project, the files located in projects synergy\board\ folder are going to be the most interesting to developers. The boards folder contains at least three different files:

  • bsp.h

  • bsp_init.c

  • bsp_init.h

These files contain code that provide prototypes and definitions for managing the microcontrollers initialization and may even contain additional files for initializing off-chip QSPI and SDRAM memory.

 

The BSP also has configuration data for clocks, irqs and pins located in the projects \synergy_cfg\bsp\ directory. The files located here can and should be configured using the Synergy Configurator located within the ISDE. The configuration information is stored in the configuration.xml file and generated into source code when a developer builds the project or generates the SSP.

 

The Synergy Configurator allows a developer to configure there BSP in three main ways:

  • Adjusting the pin configuration

  • Setting the stack and heap sizes

  • Updating the clock tree configuration

 

Making these adjustments are simple. Start by opening your custom BSP project (see last week’s post for examples on how to do this and a great application note that walks developers through the steps). Open the configuration.xml file and then navigate to the BSP tab. Open the properties tab and scroll down until the stack and heap settings are shown. A developer can customize their BSP’s stack and heap by simply adjusting these values from the default 0x1000 to 0x2000 as shown below:

 

 

Adjusting other parameters are just as easy. Take for example pin configuration changes. The development kit BSP may use certain pins for one purpose while the end application uses those pins for another purpose. Within the Synergy Configuration, developers can select the pins tab and then setup the configuration for every pin and peripheral for the application.

 

 

 

Developers can also adjust the clock settings for the BSP. Developers will notice under the clocks tab that most Synergy development kits use the PLL Src: XTAL. For the end products hardware, maybe the HOCO source is used. Developers can adjust this setting so that any developer who uses the configured BSP doesn’t have to make these changes.

 


 

 

Once the stack, pins, clocks and peripherals have been configured, a developer needs to save the project and then generate project contents. The project is just like any other project and should be compiled and debugged to ensure that the new configuration values are correct. When the system is verified, a develop can then use the Custom Pack Creator tool to create their custom and configured BSP. The BSP can then be shared amongst developers for use on the custom hardware.

 

Now that you understand how to create and configure a custom BSP, the next step will be to add frameworks and custom code modules to the BSP. In the next post, we will take a closer look at how to do this. In the mean-time,

 

Live long and profit!

 

Professor_IoT

 

 

Hot Tip of the Week

 

You may not have noticed the new and easy way to access all kit related information from the Renesas web site. From the Renesas Synergy Tools and Kits page here , just select the Software and Tools Tab, and the different Kits will show up. Click on your kit and the kit web page will open up. On that page, scroll down toward the bottom and you will find all the kit related information, including Board Design Data, and Ordering Information. Back at the top you will find tabs for Design Support, Documentation, Downloads, and Sample Programs.