I'm evaluating the Renesas RX65N MCU EV Kit. In this post, I'll port the LCD driver example from the Renesas proprietary CC-RX |
Renesas offers a GCC toolchain that can build firware for the RX65 family. I have been using it for most of my developments and it works .
The toolchain is nicely integrated in the e2 Studio IDE. The full cycle from project creation to debug is supported.
Let's see how you can port a project from CC-RX to GCC: the QE for Display [RX] Sample Program.
First, create a GCC project in e2 studio. Look at post 2a for instructions.
Then, use the configurator to add the r_glcdc_rc component.
Enable LCD_CLK Pin and LCD_TCO0 -> 15.
Save and generate code.
Then copy the example sources from the Renesas project over from src to src:
main.c
r_image_config_RX65N_Envision.h
r_lcd_timing_RX65N_Envision.h
Also copy over the image folder. It contains the test pattern.image shown at the beginning of this post.
When you build the cde, it will fail for one source line:
#define FRAME_BUF_BASE_ADDR (__sectop("FRAME_BUFFER"))
This is because __sectop() is a Renesas toolchain specific construct. It returns the address of the begin of the FRAME BUFFER section.
An other option is to read the documentation. It says that this address = 0x0800000.
That means I can get away by replacing the line with:
#define FRAME_BUF_BASE_ADDR 0x00800000
No other changes are needed. Build and debug.
Once this line in the main() function has been executed, we can manipulate the screen:
/* ---- Initialization of frame buffer area ---- */ frame_buffer_initialize(); /* ---- Initialization of the GLCDC, and start display ---- */ glcdc_initialize();
note: I was not successful in porting these Renesas components to GCC: the FAT and SHA1 modules. These modules don't publish all sources. Part of the implementation comes in a pre-compiled .lib binary. These libraries are specific for the Renesas rlink optimised linker. They aren't compatible with GCC linkers. There is a tool available to convert Renesas .lib of type SH (fixed location libs) but the libs provided with the two modules above are not of that type.
That means that the default secure bootloader example (it uses SHA1 to validate new firmware and uses FAT to get the signed firmware from a USB stick) is not easy to port. I managed to port the soource compilation but haven't found a way to link in the FAT and SHA1 blobs.
If you plan to build the out-of-box example from source, do that within the first 60 days after you first used the Renesas toolchain, the archive those project with the build artifacts for later use. The toolchain is fully functional the first 60 days. After that, a few options are restricted. One of those options affects your ability to build those examples: a code size restriction of 128K (for the RX family). You need more for the default demo. The price for a one year names STD licence for the CC-RX packet is a little over USD 300. That will give access to full-size binaries. A one seat PRO license adds security and compliance related functionality (e.g.: MISRA-C rule validation) and costs approx. USD 350 / year. For professional use, those are fair prices. |
The e2 studio project is attached.