Using PDG with e2studio on RSK RX63N _Tutorial

Using PDG with e2studio: Example

Here is a simple example project using Renesas Peripheral Driver Generator (PDG) for
RX and the e2studio IDE to get an LED to flash on a Renesas Starter Kit+ for RX63N
 Configure I/O Port 10, connected to LED2 on the RSK+, as a general purpose
Output pin. From the RSK+ schematic page 2:
 Use Timer 0 to generate periodic interrupts to turn the LED on and off
1
© 2010 Renesas Electronics Europe. All rights reserved.
LED Flash Example
 The LED will turn on when the output
from port 10 is 0, and will turn off when
it is 1.
2
© 2010 Renesas Electronics Europe. All rights reserved.
e2studio Project

Start Renesas e2studio and specify a new
workspace
 e.g. C:\Workspace\RX63N

Create a new project:
 e.g. RX63N_LED_Flash



3
© 2010 Renesas Electronics Europe. All rights reserved.
We will be using E1 for hardware debug and
the default of Little-endian data
Select the correct device for your hardware
target
 e.g. for RSK+ for RX63N select part
number R5F563NBDxFC
Click ‘Finish’ to run create the project
PDG Project

Now start PDG and create a new project



Name the project ‘PDG_Files’ and locate it in
the folder for the e2studio project you just
created:


4
e.g. C:\WorkSpace\RSK63N\RX63N_LED_Flash
Ensure you have the right device part
number, (which determines package and
ROM/RAM capacity) selected for your target
hardware


Start > All programs > Renesas > Peripheral
Driver Generator 2
Click on File -> New Project
e.g. For RSK+ for RX63N select part number
R5F563NBDDFC (176 LQFP, 1MB Flash)
Click ‘OK’ and after a few moments the PDG
project editor will be displayed..
© 2010 Renesas Electronics Europe. All rights reserved.
Configure the PDG project – System clocks

The clocking System window opens

The error icons are initially displayed to show that configuration is necessary
Move the mouse over the error icon to see a tooltip
5
© 2010 Renesas Electronics Europe. All rights reserved.
Configure the PDG project – System clocks(2)


Set up the Main clock (EXTAL input) frequency.
The RSK+ for RX63N includes a 12MHz external crystal.

Type ’12’ into the dialog box then scroll down and add the internal clock frequencies:
In this example we will not use the PLL, which can generate an instruction clock up to the
maximum (100MHz).
 Set the Instruction, Peripheral and Flash clocks to 3MHz:
6
© 2010 Renesas Electronics Europe. All rights reserved.
Configure the PDG project – Ports
 Set up the I/O pin connected to the LED2
 Select the I/O tab
 Select Port 1 and tick P10 ‘Used as an I/O port’
 Select ‘Direction : Output’, CMOS output, High-drive output
7
© 2010 Renesas Electronics Europe. All rights reserved.
Configure the PDG project - TMR

Set up the TMR timer to
generate periodic interrupts:







Select the ‘TMR’ tab
Click on ‘Unit 0’ and select
‘Mode: 16-bit timer mode’
Tick ‘Use this channel’ box
Select ‘Count source:
Internal clock (PCLK/8192)’
Select ‘Counter clearing
source: Compare match B’
Click on ‘Timer operating
period’ field and input
1000msec
Choose a ‘Duty cycle’ of 50%
The values to be used for the
Compare match A and Compare
match B register settings are
automatically calculated and
displayed
8
© 2010 Renesas Electronics Europe. All rights reserved.
Configure the PDG project - TMR (2)
 Configure the TMR timer to generate interrupts at both Compare match
events (A and B):
Check 'compare match A interrupt'.
Notification function is
'Tmr0CmAIntFunc'
Check 'compare match B interrupt'.
Notification function is
'Tmr0CmBIntFunc
Note: The ‘Interrupt notification function names’ can be changed to the users preference in
this setting dialogue, if desired
9
© 2010 Renesas Electronics Europe. All rights reserved.
Configure the PDG project – Generate files
 We have setup our system. Let’s now get
the PDG to generate the peripheral driver
code that we need to start coding.
 Click on Tool -> Generate Source Files
or click on the
icon in the toolbar
 When asked to Save, click OK
 And finally click OK
10
© 2010 Renesas Electronics Europe. All rights reserved.
Finding the PDG files in e2studio
11

Go back into e2studio, which you
should still have open in the
background

Right-click on the project name in the
Project Explorer view and select
‘Refresh’ (or hit F5)

You will now see the folder ‘PDG_Files’
appear in your project with the source
files generated by PDG
© 2012 Renesas Electronics Europe. All rights reserved.
Modifying the e2studio project

Copy the library file manually from PDG installation to your project:
In the installation directory of PDG (e.g. C:\Renesas\PDG2), there is a folder 'lib' for library files
and then sub-folders for each processor group. The library files have different versions for each
package size and for little and big endian. Copy the library file for your configuration to the
PDG_files folder in the e2 studio project:
e.g. Copy ‘RX63N_library_176_little.lib’ to C:\WorkSpace\RSK63N\RX63N_LED_Flash\PDG_Files


Exclude some files in the 'src' directory of the e2studio project from build:
 Select files in 'Project Explorer' window:
interrupt_handlers.c
vector_table.c
 Right mouse button click and select 'Exclude from Build'
 Select all configurations and click ‘OK ‘

Modify the project settings:

In





Change the precision for ‘double’ variables:

12
Mark the project in 'Project Explorer' and go to 'Project' > 'Renesas Tool Settings' or click
on the toolbar
‘Settings’ , ‘Compiler’ > ‘Source’ add a new include file directory:
In ‘Include file directories’ select the
icon then click ‘Workspace’
Select your PDG file directory:
The entry should be like this: ${workspace_loc:/${ProjName}/PDG_files}
Repeat for the 'i_src' directory: ${workspace_loc:/${ProjName}/PDG_files/i_src}
PDG and RPDL require double variables set to 'Double precision' (64-bit). The default setting for
CCRX is 'Single precision' change this in the compiler settings in group 'CPU' > 'Advanced'.
© 2012 Renesas Electronics Europe. All rights reserved.
Modifying the e2studio project (2)

In ‘Settings’ > 'Linker' > 'Input' add the PDG library file:
 Click the
icon and click 'Workspace‘, select your PDG file directory then select the library file
e.g. ${workspace_loc:/${ProjName}/PDG_Files/RX63N_library_176_little.lib}

In ‘Settings’ > 'Linker' > 'Sections‘ modify the Linker settings:
 Delete section 'PIntPRG‘, select it under ‘Section Name’ and click ‘Remove section’.
This is created by e2studio Project Generator and is not required as PDG has defined the interrupts


Change the start address for section 'FIXEDVECT‘ from 0xFFFFFF80 to 0xFFFFFFD0. You can
modify the address directly in the Section viewer window
Modify file 'reset_program.c‘ in 'src' folder
This file is created by e2studio and provides the start-up code and low level initialization after
RESET. But the name of the reset function is different from the reset vector generated by PDG.
 Change the label ‘PowerON_Reset’ to ‘PowerON_Reset_PC’ each time it is used in this file, once
for the function prototype at the beginning of the file, once for the #pragma entry definition,
and once for the function definition.
13
© 2012 Renesas Electronics Europe. All rights reserved.
Edit ‘main’ function

Double click on
‘RX63N_LED_Flash.c’ file in the
‘src’ folder to open the file.

Edit the ‘main’ function to include
the PDG header files:
#include "R_PG_PDG_Files.h"
#include "R_PG_RPDL_headers.h“
14

Call the initialisation functions for
the System Clocks, I/O Port pin
and Timer – see image:

Add in the interrupt functions for
the TMR interrupts and add the
calls to the functions to turn on
and off the LED on Port P10

Now build the project by selecting
‘Project’ > ‘Build All’
© 2012 Renesas Electronics Europe. All rights reserved.
Debugging the project


When we created the e2studio project, we
automatically generated a Debug
Configuration for the E1 debugger

You can check this configuration by selecting
‘Run’ > ‘Debug configurations…’

Make sure your E1 is connected to a USB port
on your PC and to the target hardware (e.g.
RSK+) via the 16-way ribbon cable

Start the E1 debugger by clicking ‘Debug’
The e2studio ‘console’ view will show the
connection dialogue and if successful a
window will appear prompting you to open
the Debug Perspective

15
Click on the
icon. The Program Counter
indicator will stop on ‘main’. Click on the
icon again, and the code should run and LED2
should flash..
© 2012 Renesas Electronics Europe. All rights reserved.
Modifying the PDG configuration
16

Now let’s modify the system
configuration within PDG and observe
the changes within our e2studio project

Switch to PDG and in the TMR tab
change the ‘Timer operating period’ to
200msec

Click on the
icon to generate the
source files again

Switch back into e2studio and rebuild
the project by clicking on the
icon

When the project is reloaded on the
target, run the code again and observe
the increased LED2 flashing frequency.
© 2012 Renesas Electronics Europe. All rights reserved.
Renesas Electronics Europe
© 2010 Renesas Electronics Europe. All rights reserved.