Download RX64M Group Application Note TCP/IP Protocol Stack Based

Transcript
APPLICATION NOTE
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
R01AN2153EJ0100
Rev.1.00
Sep 1, 2014
Introduction
This application note describes a network solution for industrial applications that uses the M3S-T4-Tiny TCP/IP
protocol stack. This application note includes sample code for a main program that performs web server and module
initialization and drive processing and, when used in combination with the RX64M Group RX Driver Package, allows
the construction of web server systems. A sample application that operates combined with the RX Driver Package is
referred to as an RX Driver Package Application.
A web server is an application program that operates using TCP/IP. In general, a web server is accessed from web
browsers and provides functions for using TCP/IP to transmit content stored on the web server to those browsers.
This application note describes the procedure for main program and web server evaluation by combining the USB
driver (host mass storage), FAT file system (M3S-TFAT-Tiny), Ethernet driver, and TCP/IP protocol stack (M3S-T4Tiny) included in the RX64M Group RX Driver Package.
Target Device
RX64M Group (Renesas Starter Kit+ RX64M)
When using this application note with other Renesas MCUs, careful evaluation is recommended after making
modifications to comply with the alternate MCU.
Contents
1.
Overview ........................................................................................................................................... 2
2.
Acquiring a Development Environment ............................................................................................. 7
3.
Environment Preparation ................................................................................................................ 10
4.
Building a Project ............................................................................................................................ 12
5.
Verify Operation .............................................................................................................................. 24
6.
Web Server Specifications .............................................................................................................. 35
7.
Main Program Specifications .......................................................................................................... 51
8.
User-Defined Functions................................................................................................................... 61
9.
When CubeSuite+ is Used .............................................................................................................. 62
10. Supplement ..................................................................................................................................... 65
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 1 of 66
RX64M Group
1.
1.1
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Overview
This Application Note
This application note describes a network solution for industrial applications that uses the M3S-T4-Tiny TCP/IP
protocol stack. This application note includes sample code for a main program that performs web server and module
initialization and drive processing and, when used in combination with the RX64M Group RX Driver Package, allows
the construction of web server systems. A sample application that operates combined with the RX Driver Package is
referred to as an RX Driver Package Application.
A web server is an application program that operates using TCP/IP. In general, a web server is accessed from web
browsers and provides functions for using TCP/IP to transmit content stored on the web server to those browsers.
This application note describes the procedure for main program and web server evaluation by combining the USB
driver (host mass storage), FAT file system (M3S-TFAT-Tiny), Ethernet driver, and TCP/IP protocol stack (M3S-T4Tiny) included in the RX64M Group RX Driver Package.
This application note operates on the Renesas Starter Kit+ for RX64M (referred to as “RSK” in the remainder of this
document).
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 2 of 66
RX64M Group
1.2
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Operating Environment
This application note operates in the following environment.
Table 1.2.1 Operating Environment
Microcontroller
Evaluation board
RX64M Group
Renesas Starter Kit+ RX64M
http://japan.renesas.com/products/tools/introductory_tools/renesas_starter_kits/
rsk_plus_rx64m/index.jsp
2
Integrated development
e studio, V3.0.1.09 or later
environment (IDE)
Or:
CubeSuite+ V2.02.00 or later
Cross tools
RX Family C/C++ Compiler Package V2.02.00 or later
Emulator
E1 (included in the Renesas Starter Kit+ for RX64M), E20
RX Driver Package
RX64M Group RX Driver Package Ver1.00 (R01AN2144EJ0100)*
Note: * Operation of this application note has been verified when the modules in the RX Driver Package
mentioned above are incorporated. If any of the modules used in this application note are replaced
with a different module, the user must verify the operation.
AC
adapter
LAN cable
(straight)
Development PC
Switching hub
Client PC
(web browser)
IP: 192.168.0.100
USB memory
Figure 1.2.1 Sample Operating Environment
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 3 of 66
RX64M Group
1.3
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Module Structure
This section shows the structure of the modules used by this application note and a list of those modules.
Figure 1.3.1 Module Structure
Table 1.3.1 Modules
Type
Board Support Package
Device Driver
Device Driver
Middleware
Middleware
Middleware
Device Driver
Device Driver
Application
Application
Module
Board support package (BSP module)
Compare match timer (CMT)
Ethernet controller (ETHERC)
M3S-T4-Tiny interface conversion module
TCP/IP protocol stack (M3S-T4-Tiny)
FAT file system (M3S-TFAT-Tiny)
USB basic firmware
USB host mass storage class
HTTP server
Web server system main program
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
FIT Module Name
r_bsp
r_cmt_rx
r_ether_rx
r_t4_driver_rx64m
r_t4_rx
r_tfat_rx
r_usb_basic
r_usb_hmsc
r_t4_http_server_rx
r_httpd_main_rx64m
Version
2.60
2.30
1.00
1.00
2.00
3.00
1.00
1.00
1.03
1.00
Page 4 of 66
RX64M Group
1.4
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
File Structure
This section describes the file structure used in this application note.
Figure 1.4.1 File Structure
When the ZIP file provided with this application note is decompressed, a folder with the same name is created and the
various folders and files are created within that folder.
The project is s special-purpose project for building a web server. It is used by inputting it to an e2 studio workspace.
Also, Renesas provided project files, which are used to read the project with CubeSuite+, are also included.
The Web server FIT modules are included in the FITModules folder.
Documents that describe using the FIT modules in various development environments are included in the
reference_documents folder. The document “Adding Firmware Integration Technology Modules to Projects”
(r01an1723eu0110_rx.pdf) describes the method for including the FIT modules, as a FIT plugin, in an e2 studio project.
The document “Adding Firmware Integration Technology Modules to CubeSuite+ Projects” (r01an1826ej0100_rx.pdf)
describes the method for including the FIT modules in a CubeSuite+ project.
The file “Application Note” (r01an2153ej0100_rx64m.pdf) is this document.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 5 of 66
RX64M Group
1.5
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Projects
This application note includes an e2 studio and a CubeSuite+ project for building and evaluating a web server system.
These projects register both a build structure (build mode in CubeSuite+) that stores the build settings and a debug
structure (debug tool in CubeSuite+) that stores debug settings.
The table below lists the build structure and debug structure registered in these projects.
Table 1.5.1 Project Settings
Build structure
(referred to as build mode
in CubeSuite+)
Debug structure
(referred to as debug tool
in CubeSuite+)
Structure
HardwareDebug
(Debug on hardware)
HardwareDebug (E1)
(This is RX E1 (JTAG) in
CubeSuite+)
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Description
This structure is used to generate a load
module with debugging information included.
Main settings
• Debug information present
• No optimization (-optimize=0)
Used for hardware debugging over an E1
emulator using a load module generated by
HardwareDebug (Debug on hardware).
Page 6 of 66
RX64M Group
2.
2.1
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Acquiring a Development Environment
Acquire and Install e2 studio
The e2 studio can be downloaded from the Renesas web site.
1. Access the following URL to display the e2 studio download page.
http://www.renesas.com/e2studio_download
2. Of the displayed items, click Install the e2 studio 3.0.0.22 installer. (Although there are two versions, one that is
broken up into smaller sections, and one that can be downloaded in a single operation, the contents are the same.)
Next, download the e2 studio installer by following the instructions displayed.
Click either of these
links.
3. Run the downloaded e2 studio installer to install e2 studio on your personal computer.
See the e2 studio Integrated Development Environment User's Manual: Getting Started Guide for details on
the installation procedure.
http://documentation.renesas.com/doc/products/tool/doc/r20ut2771ej0200_e2_start_s.pdf
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 7 of 66
RX64M Group
2.2
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Acquire a Compiler Package
The RX Family C/C++ Compiler Package, V2.02.00 or later, is required to build this web server system. This section
assumes the user does not own the commercial version and will be using the free evaluation version.
1. Access the following URL to display the e2 studio download page.
http://www.renesas.com/e2studio_download
2. Of the displayed items, click [Evaluation Software] RX Family C/C++ Compiler Package V2 (without IDE)
V2.02.00.
Follow the instructions on the page displayed next to download the compiler installer.
Click this link.
3. Run the downloaded compiler installer to install the compiler on your personal computer.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 8 of 66
RX64M Group
2.3
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Upgrade to Version 3.0.1.09
Upgrade the e2 studio that is installed on your personal computer to the latest version.
1. Access the following URL to display the e2 studio download page.
http://www.renesas.com/e2studio_download
2. Click the version information link on the right side of the displayed page.
Click this link.
3. Of the displayed items, click the link shown as e2 studio, Eclipse open-source based Integrated Development
Environment, revised to V3.0.1.09.
Follow the directions on the displayed page to perform the e2 studio update.
Click this link.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 9 of 66
RX64M Group
3.
3.1
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Environment Preparation
Install the FIT Modules
Install the FIT modules used in the web server system in this application note into e2 studio.
1. Decompress the ZIP file in which this application note is provided into an arbitrary folder.
2. Open the folder into which that ZIP file was decompressed and of the folders in that folder, open the FITModules
folder.
3. Select all of the files in the FITModules folder and click Copy in the Edit menu.
Select all files and click
Copy in the Edit
menu.
4. Open the e2 studio install folder (Usually, this will be c:/Renesas/e2_studio.) and open the FITModules folder in
that folder.
5. Click Paste on the Edit menu.
The e2 studio FITModules folder will be copied to the FIT modules.
Open the FITModules
folder and click Paste
on the Edit menu.
The folder will be copied.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 10 of 66
RX64M Group
3.2
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Install the RX Driver Package
Install the FIT modules included in the RX64M Group RX Driver package in e2 studio.
1. Download the RX64M Group RX Driver package and decompress the file an_r01an2144ej0100_rx64m.zip into an
arbitrary folder.
2. Open the folder that was decompressed and open the FITModules folder in that folder.
3. Select all the files in the FITModules folder, and click Paste on the Edit menu.
Select all files and click
Copy in the Edit menu.
4. Open the e2 studio install folder (Usually, this will be c:/Renesas/e2_studio.) and open the FITModules folder in
that folder.
5. Click Paste on the Edit menu.
The e2 studio FITModules folder will be copied to the FIT modules.
Open the FITModules
folder and click Paste
on the Edit menu.
The folder will be copied.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 11 of 66
RX64M Group
4.
4.1
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Building a Project
Create a Workspace
1. Start e2 studio.
2. Enter an arbitrary workspace folder in the displayed dialog box and click OK.
Enter a workspace
folder.
Click OK.
3. When the following window is displayed, click Workbench.
Click Workbench.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 12 of 66
RX64M Group
4.2
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Import a Project
Import the project provided with this application note into the newly created workspace.
1. Select Import from the e2 studio File menu.
Click here.
2. Select Existing Projects into Workspace from General and click Next.
Select Existing Projects
into Workspace from
General and click Next.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 13 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
3. Click Browse.
Click here.
4. Select the project folder associated with this application note and click OK.
Select this
project folder
and click OK.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 14 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
5. Check Copy projects into workspace and click Finish.
Check this box
and click Finish.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 15 of 66
RX64M Group
4.3
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Add the Web Server System FIT Modules to the Project
2
Use the e studio FIT plugin to add the FIT modules used by the web server system to the project.
1. Select Renesas FIT Module from New in the e2 studio File menu to start the FIT plugin.
Click here.
2. Set the FIT plugin items as shown below.
Set this item.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 16 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
3. Select r_httpd_main_rx64m from the FIT plugin module list and click Finish.
Select this item
and click Finish.
4. A variety of message dialog boxes will be displayed. Click OK in all of them.
The above procedure will have installed all the required FIT modules into the project. The project structure after this
installation is shown below.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 17 of 66
RX64M Group
4.4
4.4.1
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Set Up Board Support Package (BSP Module)
Copy Configuration File
Copy the configuration file for the microcontroller used to the r_config folder.
1. From the e2 studio project explorer, open r_bsp/board/rskrx64m and select two files: r_bsp_config_reference.h
and r_bsp_interrupt_config_reference.h. Then click Copy on the Edit menu.
Select the two files
and then click Copy
on the Edit menu.
2 Select the r_config folder and click Paste on the Edit menu.
Select the r_config
folder and click
Paste on the Edit
menu.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 18 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
3. Rename the copied files to r_bsp_config.h and r_bsp_interrupt_config.h, that is, remove _reference from the file
names.
Rename these files.
4.4.2
Edit platform.h
Modify platform.h to correspond to the target board being used.
Open r_bsp/platform.h and remove the comment from the include line for the RSKRX64M r_bsp.h file.
r_bsp/platform.h
/* RDKRX63N */
//#include "./board/rdkrx63n/r_bsp.h"
/* RDKRX631 */
//#include "./board/rdkrx631/r_bsp.h"
/* RSKRX64M */
#include "./board/rskrx64m/r_bsp.h"
/* RSKRX210 */
//#include "./board/rskrx210/r_bsp.h"
/* HSBRX21AP */
//#include "./board/hsbrx21ap/r_bsp.h"
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 19 of 66
RX64M Group
4.5
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Modify Configuration
The configuration files for each of the FIT modules that make up the web server system must be modified.
Refer to the manuals and other files in the doc folder for each FIT module for details on the items and their settings in
the configuration files.
The places that must be changed in the configuration files to operate this web server system are shown below.
4.5.1
Change Interrupt Stack Size
In this web server system, the main web server processing is performed from the Ethernet controller's interrupt handler.
This requires about 2.5 KB of interrupt stack.
Modify the interrupt stack size defined in the r_bsp configuration file as shown below.
r_config/r_bsp_config.h
/* Interrupt Stack size in bytes. The Renesas RX toolchain sets the stack
size using the #pragma stacksize directive.
* If the interrupt stack is the only stack being used then the user will
likely want to increase the default size
* below.
*/
#pragma stacksize si=0x1000
4.5.2
Change Compare Match Timer Driver Settings
Set interrupt priority of compare match timer lower than interrupt priority of the USB driver (IPR=3).
r_config/r_cmt_rx_config.h
/* The interrupt priority level to be used for CMT interrupts. */
#define CMT_RX_CFG_IPR
(2)
4.5.3
Change USB Driver Settings
Set channel 0 to be unused (USB_NOUSE_PP).
r_config/r_usb_config.h
//
//
#define USB_FUNCSEL_USBIP0_PP
#define USB_FUNCSEL_USBIP0_PP
#define USB_FUNCSEL_USBIP0_PP
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
USB_HOST_PP
USB_PERI_PP
USB_NOUSE_PP
/* Host Mode */
/* Peripheral Mode */
Page 20 of 66
RX64M Group
4.5.4
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Change T4 Settings
Change the T4 settings as shown below.
Comment out the t4_callback function external reference declaration and add a new external reference declaration for
the http_callback function.
r_t4_rx/src/config_tcpudp.c
#include "r_t4_itcpip.h"
//extern ER t4_callback(ID cepid, FN fncd , VP p_parblk);
extern ER http_callback(ID cepid, FN fncd , VP p_parblk);
Increase the number of TCP reception points to 6 and modify each local point.
r_t4_rx/src/config_tcpudp.c
/*** Definition of TCP reception point (only port number needs to be set) ***/
T_TCP_CREP tcp_crep[6] =
{
/* { attribute of reception point, {local IP address, local port number}} */
{ 0x0000, { 0, 80 }},
{ 0x0000, { 0, 80 }},
{ 0x0000, { 0, 80 }},
{ 0x0000, { 0, 80 }},
{ 0x0000, { 0, 80 }},
{ 0x0000, { 0, 80 }},
};
Change the TCP communication end point setting as shown below.
r_t4_rx/src/config_tcpudp.c
/***
Definition of TCP communication end point
(only receive window size needs to be set) ***/
T_TCP_CCEP tcp_ccep[6] =
{
/* { attribute of TCP communication end point,
top address of transmit window buffer, size of transmit window
buffer,top address of receive window buffer, size of receive window
buffer, address of callback routine }
*/
{ 0, 0, 0, 0, 1460, http_callback },
{ 0, 0, 0, 0, 1460, http_callback },
{ 0, 0, 0, 0, 1460, http_callback },
{ 1, 0, 0, 0, 1460, http_callback },
{ 1, 0, 0, 0, 1460, http_callback },
{ 1, 0, 0, 0, 1460, http_callback },
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 21 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Change in 10 ms to the 2MSL Wait Time.
【r_t4_rx/src/config_tcpudp.c】
/*** 2MSL wait time (unit:10ms)
const UH
_tcp_2msl[] =
{
(1),
/* 10 ms */
(1),
/* 10 ms */
};
4.5.5
***/
Change HTTP Server Settings
Change the CGI_FILE_NAME_TABLE_LIST as shown below.
r_config/r_t4_http_server_rx_config.h
/*#define CGI_FILE_NAME_TABLE_LIST \*/
/* {"cgi_smpl.cgi", NULL},
\*/
extern ER cgi_sample_function(ID cepid, void *res_info);
#define CGI_FILE_NAME_TABLE_LIST \
{"cgi_smpl.cgi", cgi_sample_function, NULL},
\
Change in 6 to maximum number of clients that can be accepted at the same time to match tcp_ccep table of
r_t4_rx/src/config_tcpudp.c.
r_config/r_t4_http_server_rx_config.h
// set same value number of CEPID in config_tcpudp.c
#define HTTP_TCP_CEP_NUM 6
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 22 of 66
RX64M Group
4.6
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Modify Source Code
The places that must be changed in the source code to operate this web server system are shown below.
4.6.1
Allows multiple interrupts
This system uses multiple interrupts.
Allow interrupts before calling the _process_tcpip function called in the lan_inthdr handler function and the
timer_interrupt handler function in the t4_driver.c.
r_t4_driver_rx64m/src/t4_driver.c
/******************************************************************************
Functions (Interrput handler)
******************************************************************************/
void timer_interrupt(void *pdata)
{
R_BSP_InterruptsEnable();
if (tcpip_flag == 1)
{
_process_tcpip();
tcpudp_time_cnt++;
}
/* for wait function */
if (wait_timer < 0xFFFF)
{
wait_timer++;
}
}
void lan_inthdr(void *ppram)
{
R_BSP_InterruptsEnable();
// callback from r_ether.c
if (tcpip_flag == 1)
{
_process_tcpip();
}
}
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 23 of 66
RX64M Group
5.
5.1
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Verify Operation
Build the Project
Use the following procedure to build the project and generate a load module.
1. Click the project to build from the Project Explorer.
Click here.
2. Click Build project from the Project menu.
Click here.
3. When “Build complete” is displayed on the Console panel, the build will have completed.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 24 of 66
RX64M Group
5.2
5.2.1
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Prepare for Debugging
Configure Hardware
The evaluation board must be configured before starting debugging.
A table of the required equipment and its configuration are shown below.
Table 5.2.1.1 Hardware Configuration
No.
1
2
3
4
5
Device
Development PC
Evaluation board
(Renesas Starter Kit+ for RX64M)
USB memory
Client PC (web browser)
One of the following must be provided as a
network environment for connecting the client
PC to the RSK (web server).
1. If a switching hub is used
a. Switching hub
b. LAN cable (straight) × 3
2. If cross cables are used
a. LAN cable (cross) × 2
Supplementary Information
Personal computer used for development
Memory that is formatted as either FAT or FAT32.
The development PC can be used for this function.
If cross cables and two Ethernet channels are
used, then the client PC must have two LAN ports.
When only one Ethernet channel is used, the
number of LAN cables required will be as follows.
1. If a switching hub is used
LAN cable (straight) × 2
2. If cross cables are used
LAN cable (cross) × 1
Switching Hub Configuration (two Ethernet channels used)
AC
adapter
LAN cable
(straight)
Development PC
Switching hub
Client PC
(web browser)
IP: 192.168.0.100
USB memory
Figure 5.2.1.1 Switching Hub Configuration (Two Ethernet Channels Used)
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 25 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Cross Cable Configuration (two Ethernet channels used)
AC
adapter
LAN cable
(cross)
Development PC
Client PC
(web browser)
IP: 192.168.0.100
USB memory
Figure 5.2.1.2 Cross Cable Configuration (Two Ethernet Channels Used)
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 26 of 66
RX64M Group
5.2.2
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Set Up the Evaluation Board
The evaluation board settings required to operate the web server system are shown below.
1. Set the USB ch0 mode (host/peripheral). Set jumpers J2 and J6 to match the setting of
USB_FUNCSEL_USBIP0_PP in r_usb_config.h.
2. Set the USB ch1 mode (host/peripheral). Set jumpers J7 and J9 to match the setting of
USB_FUNCSEL_USBIP1_PP in r_usb_config.h.
3. Specify the PHY IC channel used to control the PHY IC from the Ethernet controller. Set jumpers J3 and J4 to
match the settings of ETHER_CFG_CH0_PHY_ACCESS and ETHER_CFG_CH1_PHY_ACCESS in
r_ether_rx_config.h.
Table 5.2.2.1 Jumper Settings
No.
1
2
3
Setting
When use USB0 in host mode.
(USB_FUNCSEL_USBIP0_PP = USB_HOST_PP)
When use USB0 in peripheral mode.
(USB_FUNCSEL_USBIP0_PP = USB_PERI_PP)
When use USB1 in host mode.
(USB_FUNCSEL_USBIP1_PP = USB_HOST_PP)
When use USB1 in peripheral mode.
(USB_FUNCSEL_USBIP1_PP = USB_PERI_PP)
Control the PHY IC with ch1.
Jumper
J2
J6
J2
J6
J7
J9
J7
J9
J3
J4
Setting
Short 1 to 2.
Short 2 to 3.
Short 2 to 3.
Short 1 to 2.
Short 1 to 2.
Short 2 to 3.
Short 2 to 3.
Short 1 to 2.
Short 2 to 3.
Short 2 to 3.
Jumper J6
Jumper J2
Jumper J9
Jumper J7
Jumper J4
Jumper J3
Note: The image and the actual settings differ.
Figure 5.2.2.1 Renesas Starter Kit+ for RX64M Jumper Locations
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 27 of 66
RX64M Group
5.2.3
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Set Up Client PC
Set up the network on the client PC. This section shows the procedure when using Windows 7 as an example.
1. Open the Control Panel on the client PC and click Network and Internet.
Click here.
2. Click Network and Sharing Center.
Click here.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 28 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
3. Click Change adapter settings.
Click here.
4. Right click Local Area Connection and select Properties.
Click here.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 29 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
5. Select Internet Protocol Version 4 (TCP/IPv4) and click Properties.
Click here.
6. The IP address and other settings will be displayed. Set these as shown below and click OK.
Click here.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 30 of 66
RX64M Group
5.2.4
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Prepare USB Memory
Store the HTML content on the USB memory.
1. Open the src folder in the project and then open the contents folder in that folder. Open the contents.zip file in the
contents folder. Copy the contents folder in the demo folder to the USB memory.
Copy the contents
folder.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 31 of 66
RX64M Group
5.3
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Debug the Project
Use the following procedure to start debugging the project.
1. Connect the development PC to the E1 emulator with a USB cable.
2. Connect the evaluation board (Renesas Starter Kit+ for RX64M) to the adapter and turn on the power.
3. Click Debug Configurations in the e2 studio Run menu.
Click here.
4. Click r_httpd_system_rx64m HardwareDebug under Renesas GDB Hardware Debugging and click Debug.
Click here.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 32 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
When the following message is displayed, click Yes.
Click here.
When the load module download completes, a Debug perspective opens.
5. Click Resume on the toolbar. The program will be executed and a break will occur at the start of the main function.
Click here.
After the break at the start of the main function, click Resume on the tool bar again.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 33 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
6. Start a web browser on the client PC and enter the following address according to which port the LAN cable is
connected.
Ethernet Port Number
Web Server Address
0
http://192.168.0.3
1
http://192.168.0.10
Note: Note that the web address can be changed in the configuration.
A list of files in the root directory on the USB memory will be displayed. The file name is listed in the Name field,
the last date on which the file was changed is listed in the Last modified field, and for directories, (dir) is listed as in
the size field while for files, the size is shown in bytes. Click Parent Directory to move to the next higher directory.
7. Click CONTENTS and then click the file DEMO.HTM. This will display a page like the one shown below. The
LEDs on the board can be controlled (turned on or off) by pressing the LEDx button.
Click here.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 34 of 66
RX64M Group
6.
6.1
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Web Server Specifications
Performance Overview
This is a simple web server that is implemented based on the HTTP/1.0 specifications. This web server is intended to
serve as a base when a user develops their own web server to be embedded in an end product and that web server will
run under M3S-T4-Tiny (referred to as T4 in the remainder of this document). This web server does not included any
countermeasures for attacks such as SYN-FLOOD and does not include any security functions. Therefore it is not
appropriate for applications in which it is operated as a server connected to the internet waiting on a www port (number
80). This sample program as developed assuming it would be used only in local networks in which malicious actors are
not present, such as a network within a business office or factory. Also, the file names it can handle are limited to short
file names only.
Note that except for file I/O, this web server operates on microcontroller internal memory only and does not require any
special memory. While its processing performance is affected by RAM capacity, this parameter is defined in the
program so that it can be set flexibly. In this web server the memory usage is set appropriately for the ROM/RAM
capacity of the RX64M microcontroller.
The table below lists the performance of this web server.
Table 6.1.1 Web Server Performance
Item
ROM size
RAM size
Number of simultaneous
connections
CGI functions
6.2
Performance
About 6.6 KB
About 36 KB
(About 5 KB × number of simultaneous connected clients + α)
5 clients (this parameter can be set)
Functions that can remotely control the microcontroller from the web browser.
Operation Overview
Compared to the web servers (such as Apache) that are widely used on the internet, this web server holds the set of
functions implemented to an absolute minimum. Furthermore, it is implemented with nonblocking calls to make it easy
to use in embedded application, and the application can perform web server processing simply by calling R_httpd()
periodically. The function R_httpd() monitors all communication endpoints (normally called sockets) and transitions to
the connection wait state if a socket goes to the disconnected state. Communication processing is performed in the T4
API function _process_tcpip(), and in this web server, this API function is called from timer interrupts and Ethernet
interrupts. To report the completion of processing the _process_tcpip() function calls a callback function. HTTP data
analysis processing and data generation processing is performed in this callback function.
The processing time required by these interrupt processing operations, including activation of the _process_tcpip()
function can vary greatly depending on the performance of the transmit/receive drivers and the implementation of the
callback routine. Accordingly, if necessary, operation of the application can be given priority by reducing the priority of
these interrupts or by disabling interrupts entirely.
Furthermore, the behavior of this web server can be customized by modifying macro definitions in the configuration file,
r_t4_http_server_rx_config.h.
6.3
CGI Functions
This web server provide simplified CGI (Common Gateway Interface) functions. CGI is a mechanism for calling user
function in a web browser according to requests from that web browser. In this web browser, when a URL set in
advance as a CGI file is requested, the corresponding internal function is called.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 35 of 66
RX64M Group
6.4
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Configuration
The web server's behavior can be customized by modifying the macro definitions in the configuration file
(r_t4_http_server_rx_config.h).
• Server header field: HTTPD_VERSION_CODE
The data stored in the server header field transmitted to the web browser when communicating with the web
browser can be specified.
• Root directory: ROOT_DIR
Which directory in the external memory is taken to be the root directory can be specified.
Examples: #define ROOT_DIR “”
#define ROOT_DIR “user”
#define ROOT_DIR “user/root_dir”
• Display or don’t display index page: INDEXES
The behavior when a directory is specified by the web browser can be specified.
When 1 is specified, the response is the directory contents.
When 0 is specified, the response is the file specified by DEFAULT_FILE_NAME.
• Response file when index page not displayed: DEFAULT_FILE_NAME
This is the file that is returned when INDEXES is 0.
If this file cannot be found, the 404 Not Found response will be returned.
• Number of corresponding content types: MAX_EXTENSION
Specifies the number of definitions in the file extension list for files stored in external memory.
• Corresponding content types: EXTENSION_TYPE_TABLE_LIST
This is a list of file extensions for files stored in external memory.
When a file with an extension that is not in this list is transmitted, the file is returned with the settings for the file
extension defined at the start of this list.
• Number of register CGI files: MAX_CGI_FILE
• Table of correspondences between CGI file names and internal functions: CGI_FILE_NAME_TABLE_LIST
• Newline code used for index page generation: LF_CODE
• Maximum number of clients that can be accepted at the same time: TCP_CEP_NUM
This must be set to match the number of endpoints defined in the T4 source file config_tcpudp.c.
• Maximum number of files that can be displayed on the index page: MAX_FILE_LIST
This must be set so that BODY_BUF_SIZE is not exceeded.
• Receive buffer size: RCV_BUF_SIZE
• Header field transmit buffer size: HDR_BUF_SIZE
• Body field transmit buffer size: BODY_BUF_SIZE
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 36 of 66
RX64M Group
6.5
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Files
The table below lists the files in this web server.
Table 6.6.1 Web Server Files
Folder Name
r_t4_http_server_rx/src
6.6
6.6.1
File Name
r_http_server.c
r_http_server_config.c
r_http_server_config.h
Description
Web server source file
Web server configuration source file
Web server configuration header file
API Reference
R_httpd
Description
The application calls this function periodically. R_httpd() manages the sockets required for HTTP communication.
This function only manages these sockets while the communication itself is performed automatically by T4 interrupt
drive.
Usage
#include “r_t4_http_server_rx_if.h”
void R_httpd (void);
Parameters
None
Return Value
None
Remark
None
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 37 of 66
RX64M Group
6.6.2
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
R_httpd_pending_release_request
Description
Application calls this function when release the CGI pending
Please refer to the section 6.9.1cgi_sample_function.
Usage
#include “r_t4_http_server_rx_if.h”
void R_httpd_pending_release_request(ID cepid);
Parameters
cepid
input
communication endpoint ID
Return Value
None
Remark
None
6.6.3
R_T4_HTTP_SERVER_GetVersion
Description
Returns the version of this module. The version number is encoded such that the top two bytes are the major version
number and the bottom two bytes are the minor version number.
For example, version ‘4.25’, the return value is ‘0x00040019’.
Usage
#include “r_t4_http_server_rx_if.h”
uint32_t R_T4_HTTP_SERVER_GetVersion(void);
Parameters
None
Return Value
Version number of Web server
Remark
None
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 38 of 66
RX64M Group
6.7
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
User-Defined Function Reference (File I/O)
This web server calls this set of functions. The user must define the processing performed by these function
appropriately for the file system used. Also, this web server uses this data structure and can acquire information from
external memory. This web server is defined using TFAT as a sample file system.
Table 6.8.1 User-Defined Functions
Function Name
Function Overview
Function Name
Function Overview
change_dir()
Changes the working directory file_write()
Writes to a file
file_close()
Closes a file
get_file_info()
Acquires file information
file_delete()
Deletes a file
get_file_list_info()
Acquires a file list
file_open()
Opens a file
get_file_size()
Acquires a file’s size
file_read()
Reads a file
make_dir()
Creates a directory
file_rename()
Renames a file
remove_dir()
Deletes a directory
file_exist()
Verifies that a file exists
Note: Of the above functions, the ones that this web server does not call are grayed out.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 39 of 66
RX64M Group
6.7.1
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Data Structures
Date Information Structure
typedef struct date_info_
{
uint16_t
year;
// 2011, 2012, …
uint8_t
month[4];
// Jan, Feb, Mar, …
uint8_t
day;
// 1-31
uint8_t
day_of_the_week[4];
// Sun, Mon, Tus, …
uint16_t
hour;
// 0-23
uint16_t
min;
// 0-59
uint16_t
sec;
// 0-59
}DATE_INFO;
File List Structure
typedef struct file_list_
{
uint8_t
file_name[13];
uint32_t
file_size;
uint32_t
file_attr;
DATE_INFO
date_info;
}FILE_LIST;
Macro Definitions
#define FILE_WRITE
(0x10)
#define FILE_READ
(0x01)
#define FILE_ATTR_RDO
0x01
/* Read only */
#define FILE_ATTR_HID
0x02
/* Hidden */
#define FILE_ATTR_SYS
0x04
/* System */
#define FILE_ATTR_VOL
0x08
/* Volume label */
#define FILE_ATTR_DIR
0x10
/* Directory */
#define FILE_ATTR_ARC
0x20
/* Archive */
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 40 of 66
RX64M Group
6.7.2
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
change_dir
Description
This function sets the directory path specified with the argument to be the working directory. The directory path is
specified as a full path name. The information in the working directory is managed by each socket.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t change_dir(uint8_t *dir_path);
Parameters
dir_path
Input
Storage location for the specified directory path
Return Value
-1
0
The directory does not exist
The directory exists
Remark
There are cases where the directory path ends with a "/", and cases where it does not. The presence or absence of the
final "/" must be determined according to the file system used.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 41 of 66
RX64M Group
6.7.3
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
file_close
Description
This function performs a close operation on the file with the ID value specified in the argument and discards the
management information.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t file_close(int32_t file_id);
Parameters
file_id
Input
ID value for the file to be closed
Return Value
-1
0
Error
Normal completion
Remark
None
6.7.4
file_delete
Description
This function deletes the file with the ID value specified in the argument. The file is specified as a full path name
starting with the root directory.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t file_delete(uint8_t *file_path);
Parameters
file_path
Input
Storage location that holds the full path name for the file.
Return Value
-1
0
Error
Normal completion
Remark
None
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 42 of 66
RX64M Group
6.7.5
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
file_open
Description
This function opens the file specified by the first argument in the mode specified by the second argument.
Furthermore it returns as its return value the ID value for the stored management information so that the web server
can reference it using that ID. This stored management information must be stored until that ID value is specified to
the file close function.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t file_open(uint8_t *file_path, uint8_t mode_flag);
Parameters
file_path
mode_flag
Input
input
Storage location that holds the full path name for the file.
File open mode (FILE_WRITE or FILE_READ)
Return Value
-1
0
Error
ID value for the opened file
Remark
The file open state must be stored until that file’s ID value is specified to the file close function.
6.7.6
file_read
Description
This function reads the amount of file data specified by the third argument from the file corresponding to the ID
value specified by the first argument to the address specified by the second argument. The file pointer in the
management information corresponding to the ID value of the first argument is updated by the amount of data read
and saved until the file close function is called.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t file_read(int32_t file_id, uint8_t *buf, int32_t read_size);
Parameters
file_id
buf
read_size
Input
ID value for the file to be read
Output Storage address for the file data to be read
Input
Size of the file data to be read
Return Value
-1
0
Error
Size of data read
Remark
None
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 43 of 66
RX64M Group
6.7.7
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
file_rename
Description
This function changes the name of the file or directory specified by the first argument to the name specified by the
second argument. Both the first and second arguments are full path names from the root directory.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t file_rename(uint8_t *old_name, uint8_t *new_name);
Parameters
old_name
new_name
Input
Input
File or directory to be modified
Name after modification
Return Value
-1
0
Error
Normal completion
Remark
None
6.7.8
file_exist
Description
This function verifies whether or not the file or directory specified by the first argument exists. The argument is
specified as a full path name from the root directory.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t file_exist(uint8_t *file_path);
Parameters
file_path
Input
File or directory whose existence is to be verified
Return Value
-1
0
Does not exist
Does exist
Remark
None
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 44 of 66
RX64M Group
6.7.9
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
file_write
Description
This function writes the amount of data specified by the third argument to the file with the ID value specified by the
first argument to the address specified by the second argument. The file pointer in the management information
corresponding to the ID value of the first argument is updated by the amount of data written and saved until the file
close function is called.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t file_write(int32_t file_id, uint8_t *buf, int32_t write_size);
Parameters
file_id
buf
write_size
Input
Input
Input
ID value for the file to be written
Start address of the data to be written
Size of data to be written
Return Value
-1
0
Error
Normal completion
Remark
None
6.7.10
get_file_info
Description
This function reads in the file management information for the file corresponding to the ID value specified by the
first argument and writes the data information structure specified by the second argument to the files date
information.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t get_file_info(int32_t file_id, DATE_INFO *date_info);
Parameters
file_id
date_info
Input
ID value for the file to be read
Output Storage address of the date information
Return Value
-1
0
Error
Normal completion
Remark
None
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 45 of 66
RX64M Group
6.7.11
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
get_file_list_info
Description
This function writes the information for either the file or directory stored at directory path specified by the first
argument to the file list structure specified by the second argument. The maximum number of information items
written out is specified by the third argument and file list read start position is specified by the fourth argument.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t get_file_list_info(uint8_t *dir_path, FILE_LIST *file_list, uint32_t num_file_list, int32_tread_index);
Parameters
dir_path
file_list
num_file_list
read_index
Input Storage address for the directory path to read
Output Storage address for the read out file list
Note that '\0' will be stored at the start of the file name structure at the end of the list.
Input Maximum number of file list information items to read at one time
Input File list read out start position
Return Value
-1
0
Error
Number of file items read out
Remark
When the return value is smaller than num_file_list, it indicates that file list information readout has completed and
when it is the same as num_file_list, it indicates that there is still more information to read out. When reading out
continued values from the file list, call this function with read_index specified to be the file list read start position.
There are cases where dir_path ends with a "/", and cases where it does not. The presence or absence of the final "/"
must be determined according to the file system used.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 46 of 66
RX64M Group
6.7.12
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
get_file_size
Description
This function reads the management information for the file corresponding to the ID value specified by the first
argument and returns the file size.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t get_file_size(int32_t file_id);
Parameters
file_id
Input
ID value for the file to be read
Return Value
-1
0
Error
File size
Remark
None
6.7.13
make_dir
Description
This function creates the directory specified by the argument. This directory path is specified as a full path name.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t make_dir(uint8_t *dir_path);
Parameters
dir_path
Input
Directory name to be created
Return Value
-1
0
Error
Normal completion
Remark
There are cases where dir_path ends with a "/", and cases where it does not. The presence or absence of the final "/"
must be determined according to the file system used.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 47 of 66
RX64M Group
6.7.14
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
remove_dir
Description
This function deletes the directory specified by the argument. This directory path is specified as a full path name.
Usage
#include <stdint.h>
#include “r_file_driver.h”
int32_t remove_dir(uint8_t *dir_path);
Parameters
dir_path
Input
Directory to be deleted
Return Value
-1
0
Error
Normal completion
Remark
There are cases where dir_path ends with a "/", and cases where it does not. The presence or absence of the final "/"
must be determined according to the file system used.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 48 of 66
RX64M Group
6.8
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
User-Defined Function Reference (System Timer)
This web server calls these functions. User defines system timer.
Table 6.8.1 User-Defined Functions
Function Name
get_sys_time()
6.8.1
Function Overview
Get pointer to system time
Data Structures
System Time Structure
typedef struct sys_time_
{
uint32_t
sec;
uint32_t
min;
uint32_t
hour;
uint32_t
day;
uint32_t
month;
uint32_t
year;
}SYS_TIME;
6.8.2
get_sys_time
Description
This function gets pointer to system time.
Usage
#include <stdint.h>
#include “r_t4_http_server_rx_config.h”
SYS_TIME *get_sys_time( void );
Parameters
None
Return Value
Pointer to system time
Remark
Please specify the variable for system timer.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 49 of 66
RX64M Group
6.9
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Sample CGI Function
6.9.1
cgi_sample_function
Description
CGI function that is defined as CGI_FILE_NAME_TABLE_LIST in "r_t4_http_server_config.h"
The second element (cgi function pointer) of CGI_FILE_NAME_TABLE_LIST will be called when web browser
requests the defined cgi file URL. And next, HTTPd will call cgi function.
HTTPd behavior will be changed by the return value.
case: Normal termination
CGI process finishes in this function.
case: Internal error
CGI process errors occur in this function.
case: CGI pending
CGI process does not finish in this function. The third element (cgi function pointer) of
CGI_FILE_NAME_TABLE_LIST will be called when user will call R_httpd_pending_release_request() in
finishing CGI process.
Usage
#include "r_t4_itcpip.h"
#include "r_http_server_config.h"
#include "r_t4_http_server_rx_if.h"
ER cgi_sample_function(ID cepid, void *res_info);
Parameters
cepid
res_info
Input
Input
Communication endpoint ID for which there was a CGI function execution request
(HTTPD_RESOURCE_INFO*)res_info->param
Parameter associated with the URL for which there was a request from a web browser
Output (HTTPD_RESOURCE_INFO*)res_info->res.body
HTML character string to be returned as the response
Output (HTTPD_RESOURCE_INFO*)res_info->res.body_size
Length of the HTML character string to be returned as the response
Return Value
-1
-2
0
Internal Error
CGI pending
Normal completion
Remark
None
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 50 of 66
RX64M Group
7.
7.1
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Main Program Specifications
Files
The following table lists the files in the main program.
Table 7.1.1 Main Program Files
Folder Name
src
File Name
main.c
led.c
led.h
r_file_driver.c
r_file_driver.h
r_http_server_cgi_sample.c
r_sys_time.c
r_sys_time.h
r_usb_hmsc_api.c
r_usb_hmsc_api.h
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Description
Main source file
LED initialization processing source file
LED initialization processing header file
Web server file system interface source file
Web server file system interface header file
CGI sample source file
Web server system timer source file
Web server system timer header file
USB driver call processing source file
USB driver call processing header file
Page 51 of 66
RX64M Group
7.2
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Modules
The following table lists the modules in the main program.
Table 7.2.1 Main Program Modules
File Name
main.c
Module Name
main
r_usb_hmsc_api.c
usb_cstd_IdleTaskStart
usb_cstd_IdleTask
usb_hmsc_task_start
usb_apl_task_switch
usb_hapl_task_start
usb_hmsc_DummyFunction
usb_hmsc_DriveOpen
usb_hapl_registration
usb_hmsc_apl_init
usb_hmsc_StrgCommandResult
usb_hmsc_SampleAplTask
led.c
r_file_driver.c
led_init
-
r_http_server_cgi_sa
mple.c
r_sys_time.c
-
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Description
Main processing for the main program
Calls initialization processing for each of the
FIT modules and drives the main processing
for the web server, USB driver, and Ethernet
driver (uses an infinite loop to implement
periodic activation).
Starts the idle task used in low-power mode.
Idle task used in low-power mode.
Performs no processing in host operation.
HMSC driver activation processing.
Performs USB IP initialization and class
driver registration.
Performs task scheduling for the USB
drivers in non-OS environments.
Starts the HMSC driver application task.
HMSC driver dummy function
HMSC driver open processing
Registers HMSC drivers.
Initializes HMSC driver application task
internal variables.
R_usb_hmsc_StrgDriveSearch() callback
processing
HMSC driver application task processing.
Detects USB memory and mounts the file
system.
Initialization of LEDs
Please refer to the section 6.7 User-Defined
Function Reference (File I/O).
Please refer to the section 6.9 Sample CGI
Function.
Please refer to the section 6.8 User-Defined
Function Reference (System Timer).
Page 52 of 66
RX64M Group
7.3
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Flowcharts
This section shows the flowcharts for the modules in the main program.
1. main()
This is the main() function and is first called from the startup routine for the board support package (BSP module).
It initializes the drivers and T4 and then periodically calls Ethernet driver link up processing, web server main
processing, and USB driver scheduling from an infinite loop.
main
Sample code
processing
usb_cstd_ScheInit
// USB-BASIC-F/W scheduler initialization
usb_cpu_target_init
// USB-BASIC-F/W hardware initialization
R_USB_Open
usb_cstd_IdleTaskStart
usb_hmsc_task_start
HardwareSetup
lan_open
tcpudp_get_ramsize
tcpudp_open
R_ETHER_LinkProcess
R_httpd
usb_apl_task_switch
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
FIT module API
// USB-BASIC-F/W open
// USB sample application idle task startup
// USB sample application main task startup
// Ethernet driver hardware setup
// LAN driver open
// T4 working area size acquisition
// T4 open
// Ethernet link up processing (Ethernet ch0 and ch1 are separate)
// Web server processing
// USB sample application scheduling
Page 53 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
2. usb_cstd_IdleTaskStart
Starts the USB driver processing idle task.
usb_cstd_IdleTaskStart
R_usb_cstd_SetTaskPri
R_SND_MSG
// Sets the priority of the USB sample application idle task
// Sends a startup message to the USB sample application idle task
return
3. usb_cstd_IdleTask
This is the USB driver processing idle task.
usb_cstd_IdleTask
return
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 54 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
4. usb_hmsc_task_start
Starts the various tasks within the USB driver, registers class drivers, and starts the USB memory mount processing
task.
usb_hmsc_task_start
Set host IP number
Host used?
No
Yes
R_usb_cstd_GetUsbIpAdr
// Acquires the base register address for the used IP
Set used IP and base register
address for the TFAT driver
R_usb_hstd_MgrOpen
// Starts the USB-BASIC-F/W host manager task
R_usb_hstd_HcdOpen
// Starts the USB-BASIC-F/W host control driver task
usb_hapl_registration
// Registers the HMSC driver
R_usb_hmsc_hub_registration
R_usb_hmsc_driver_start
usb_hapl_task_start
R_usb_cstd_UsbIpInit
// Registers the host hub class driver
// Starts the HMSC driver task
// Starts the USB sample code main task
// USB IP initialization
return
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 55 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
5. usb_apl_task_switch
Performs the USB driver scheduling.
usb_apl_task_switch
R_usb_cstd_Scheduler
// USB-BASIC-F/W scheduling
R_usb_cstd_CheckSchedule
// USB-BASIC-F/W scheduling plug acquisition
No
USB_FLGSET?
Yes
usb_cstd_IdleTask
// USB sample code idle task processing
R_usb_hstd_HcdTask
// USB-BASIC-F/W host control driver task processing
R_usb_hstd_MgrTask
// USB-BASIC-F/W host manager task processing
R_usb_hhub_Task
// USB-BASIC-F/W hub task processing
R_usb_hmsc_Task
// HMSC main task processing
R_usb_hmsc_StrgDriveTask
usb_hmsc_SampleAplTask
// HMSC storage driver task processing
// USB sample code main task processing
return
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 56 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
6. usb_hapl_task_start
Initializes the USB memory mount processing task.
usb_hapl_task_start
R_usb_cstd_SetTaskPri
// Sets the priority of the USB sample application main task
usb_hmsc_apl_init
// USB sample application: scheduler variable initialization
return
7. usb_hapl_registration
Performs the class driver registration processing.
usb_hapl_registration
Class driver information preparation
R_usb_hstd_DriverRegistration
// Host class driver registration
return
8. usb_hmsc_apl_init
Initializes the sequence processing variables for the USB memory mount processing task.
usb_hmsc_apl_init
Sequence processing variable
initialization
return
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 57 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
9. usb_hmsc_DummyFunction
Dummy function for suspend and resume specified at class driver registration.
usb_hmsc_DummyFunction
return
10. usb_hmsc_DriveOpen
This is the callback function called from the USB driver when USB memory is inserted. It sends a
USB_HMSC_DRIVE_OPEN message for the sample application task.
usb_hmsc_DriveOpen
R_USB_PGET_BLK
Acquisition OK?
// Acquires a message block.
No
Yes
return
R_USB_SND_MSG
// Sends USB_HMSC_DRIVE_OPEN to the sample application task.
Normal completion?
Yes
No
R_USB_REL_BLK
// Releases the memory block.
return
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 58 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
11. usb_hmsc_SampleAplTask
This function performs the sample application task processing. It receives the USB_HMSC_DRIVE_OPEN
message issued from the usb_hmsc_DriveOpen function and detects a mountable drive.
Also, it receives the USB_HMSC_DRIVEMOUNT message issued from the usb_hmsc_StrgCommandResult
function and performs a mount for the file system.
usb_hmsc_SampleAplTask
R_USB_TRCV_MSG
// Message reception
No
Receive OK?
Yes
return
Processing status
USB_KEY_WAIT
USB_HMSC_DRIVEMOUNT
USB_HMSC_DRIVE_OPEN
1
Processing status =
USB_HMSC_DRIVE_OPEN
R_tfat_f_mount
// TFAT drive mount
Processing status =
USB_KEY_WAIT
R_usb_hmsc_StrgDriveSearch
// Drive search request
message transmission
1
1
R_USB_REL_BLK
// Releases the memory block.
return
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 59 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
12. led_init
This function performs the initialization process for using the LED on the Renesas Starter Kit + for RX64M.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 60 of 66
RX64M Group
8.
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
User-Defined Functions
The user defined functions must be coded by the user to match the user system environment. Some of the user-defined
functions are required by the FIT modules.
This package includes the following user-defined function samples. See the corresponding FIT module manual or other
documentation for specifications of these user-defined functions.
Table 8.1 User-Defined Functions
User-Defined Function
File system interface
File Name
r_file_driver.c
FIT Module Name
r_t4_http_server_rx
System timer interface
r_sys_time.c
r_t4_http_server_rx
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Document Name/Catalog Number
6.7, User-Defined Function Reference
(File I/O)
6.8, User-Defined Function Reference
(System Timer)
Page 61 of 66
RX64M Group
9.
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
When CubeSuite+ is Used
This application note can be evaluated using CubeSuite+. Note that RX Family C/C++ Compiler Package V2.02.00 or
later is required to build this application note under CubeSuite+. This section assumes the user does not own the
commercial version and will be using the free evaluation version.
9.1
Acquire and Install CubeSuite+
Download CubeSuite+ from the Renesas web site.
1. Access the following URL to display the CubeSuite+ download page.
http://www.renesas.com/cubesuite+_download
2. Of the displayed items, click [Evaluation Software] CubeSuite+ V2.02.00. (Although there are two versions, one
that is broken up into smaller sections, and one that can be downloaded in a single operation, the contents are the
same.)
Next, download the CubeSuite+ installer by following the instructions displayed.
Click this link.
3. Run the downloaded CubeSuite+ installer to CubeSuite+ on your personal computer.
See the CubeSuite+ V2.02.00 Integrated Development Environment User’s Manual: Start for details on the
installation procedure.
http://documentation.renesas.com/doc/products/tool/doc/r20ut2865ej0100_qsst.pdf
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 62 of 66
RX64M Group
9.2
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Install the Project
Install the Renesas common project files provided with this application note in CubeSuite+.
1. Decompress the ZIP file in which this application note is provided into an arbitrary folder.
2. Start CubeSuite+ and from the start screen, click GO under Open Existing e2 studio/CubeSuite/Highperformance Embedded Workshop/PM+ project.
Click GO.
3. Open the folder decompressed in step 1 above and of those entries, open Web server system project
(h_httpd_system_rx64m folder). From there, select Renesas common project files
(h_httpd_system_rx64m.rcpc) and click Open.
Select this item.
Click Open.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 63 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
4. After selecting the project from the project tree, select the items as shown below and click OK. Note that
Microcontroller used must be selected to match the device actually mounted in the evaluation board used.
Select this item.
Click OK.
5. The project will be converted and the converted project opened. Also, the e2 studio project will be backed up.
9.3
Add the FIT Modules to the Project
Add the FIT modules included in this application note and the RX64M Group Driver Package to the project.
The added FIT modules are listed in the table below.
Table 9.3.1 Added FIT Modules
Type
Board Support Package
Device Driver
Device Driver
Middleware
Middleware
Middleware
Device Driver
Device Driver
Application
Application
Module
Board support package (BSP module)
Compare match timer (CMT)
Ethernet controller (ETHERC)
M3S-T4-Tiny interface conversion module
TCP/IP protocol stack (M3S-T4-Tiny)
FAT file system (M3S-TFAT-Tiny)
USB basic firmware
USB host mass storage class
HTTP server
Web server system main program
FIT Module Name
r_bsp
r_cmt_rx
r_ether_rx
r_t4_driver_rx64m
r_t4_rx
r_tfat_rx
r_usb_basic
r_usb_hmsc
r_t4_http_server_rx
r_httpd_main_rx64m
Version
2.60
2.30
1.00
1.00
2.00
3.00
1.00
1.00
1.03
1.00
See the “RX Family: Adding Firmware Integration Technology Modules to CubeSuite+ Projects” document for the
methods for adding FIT modules to a project.
http://documentation.renesas.com/doc/products/mpumcu/apn/rx/r01an1826ej0100_rx.pdf
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 64 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
10. Supplement
10.1
USB Driver Limitations
When both USB channels ch0 and ch1 are set to host mode, only ch0 can recognize USB memory. To use ch1 in host
mode, set ch0 to either unused or peripheral mode.
r_config/r_usb_config.h
/* Select USB mode(Host or Periphera) per each USB IP */
// #define USB_FUNCSEL_USBIP0_PP
USB_HOST_PP
/* Host Mode */
// #define USB_FUNCSEL_USBIP0_PP
USB_PERI_PP
/* Peripheral Mode */
#define USB_FUNCSEL_USBIP0_PP
USB_NOUSE_PP
//
//
#define USB_FUNCSEL_USBIP1_PP
#define USB_FUNCSEL_USBIP1_PP
#define USB_FUNCSEL_USBIP1_PP
USB_HOST_PP
USB_PERI_PP
USB_NOUSE_PP
/* Host Mode */
/* Peripheral Mode */
Figure 10.1.1 When Using ch1 in Host Mode
10.2
Web Server System Limitations
After program operation, if the USB memory is removed it will not be recognized if it is reinserted. The program should
be restarted.
10.3
Notes on Using the Free Evaluation Version of the RX Family C/C++ Compiler
Package
There is a usage period limitation and certain usage limitations on the free evaluation version of the RX Family C/C++
Compiler Package. If the usage period is exceeded, load modules may not be generated correctly due to the usage
limitations.
See the page on evaluation software on the Renesas web site at the link below.
http://www.renesas.com/products/tools/evaluation_software/index.jsp
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 65 of 66
RX64M Group
TCP/IP Protocol Stack Based Network Solution for Industrial Applications
RX Driver Package Application
Website and Support
Renesas Electronics Website
http://www.renesas.com/
Inquiries
http://www.renesas.com/contact/
All trademarks and registered trademarks are the property of their respective owners.
R01AN2153EJ0100 Rev.1.00
Sep 1, 2014
Page 66 of 66
Revision History
Rev.
1.00
Date
Sep 1, 2014
Description
Page
Summary

First edition issued
A-1
General Precautions in the Handling of MPU/MCU Products
The following usage notes are applicable to all MPU/MCU products from Renesas. For detailed usage notes on the
products covered by this document, refer to the relevant sections of the document as well as any technical updates that
have been issued for the products.
1. Handling of Unused Pins
Handle unused pins in accordance with the directions given under Handling of Unused Pins in the
manual.
 The input pins of CMOS products are generally in the high-impedance state. In operation with an
unused pin in the open-circuit state, extra electromagnetic noise is induced in the vicinity of LSI, an
associated shoot-through current flows internally, and malfunctions occur due to the false
recognition of the pin state as an input signal become possible. Unused pins should be handled as
described under Handling of Unused Pins in the manual.
2. Processing at Power-on
The state of the product is undefined at the moment when power is supplied.
 The states of internal circuits in the LSI are indeterminate and the states of register settings and
pins are undefined at the moment when power is supplied.
In a finished product where the reset signal is applied to the external reset pin, the states of pins
are not guaranteed from the moment when power is supplied until the reset process is completed.
In a similar way, the states of pins in a product that is reset by an on-chip power-on reset function
are not guaranteed from the moment when power is supplied until the power reaches the level at
which resetting has been specified.
3. Prohibition of Access to Reserved Addresses
Access to reserved addresses is prohibited.
 The reserved addresses are provided for the possible future expansion of functions. Do not access
these addresses; the correct operation of LSI is not guaranteed if they are accessed.
4. Clock Signals
After applying a reset, only release the reset line after the operating clock signal has become stable.
When switching the clock signal during program execution, wait until the target clock signal has
stabilized.
 When the clock signal is generated with an external resonator (or from an external oscillator)
during a reset, ensure that the reset line is only released after full stabilization of the clock signal.
Moreover, when switching to a clock signal produced with an external resonator (or by an external
oscillator) while program execution is in progress, wait until the target clock signal is stable.
5. Differences between Products
Before changing from one product to another, i.e. to a product with a different part number, confirm
that the change will not lead to problems.
 The characteristics of an MPU or MCU in the same group but having a different part number may
differ in terms of the internal memory capacity, layout pattern, and other factors, which can affect
the ranges of electrical characteristics, such as characteristic values, operating margins, immunity
to noise, and amount of radiated noise. When changing to a product with a different part number,
implement a system-evaluation test for the given product.
Notice
1.
Descriptions of circuits, software and other related information in this document are provided only to illustrate the operation of semiconductor products and application examples. You are fully responsible for
the incorporation of these circuits, software, and information in the design of your equipment. Renesas Electronics assumes no responsibility for any losses incurred by you or third parties arising from the
use of these circuits, software, or information.
2.
Renesas Electronics has used reasonable care in preparing the information included in this document, but Renesas Electronics does not warrant that such information is error free. Renesas Electronics
assumes no liability whatsoever for any damages incurred by you resulting from errors in or omissions from the information included herein.
3.
Renesas Electronics does not assume any liability for infringement of patents, copyrights, or other intellectual property rights of third parties by or arising from the use of Renesas Electronics products or
technical information described in this document. No license, express, implied or otherwise, is granted hereby under any patents, copyrights or other intellectual property rights of Renesas Electronics or
others.
4.
You should not alter, modify, copy, or otherwise misappropriate any Renesas Electronics product, whether in whole or in part. Renesas Electronics assumes no responsibility for any losses incurred by you or
third parties arising from such alteration, modification, copy or otherwise misappropriation of Renesas Electronics product.
5.
Renesas Electronics products are classified according to the following two quality grades: "Standard" and "High Quality". The recommended applications for each Renesas Electronics product depends on
the product's quality grade, as indicated below.
"Standard": Computers; office equipment; communications equipment; test and measurement equipment; audio and visual equipment; home electronic appliances; machine tools; personal electronic
equipment; and industrial robots etc.
"High Quality": Transportation equipment (automobiles, trains, ships, etc.); traffic control systems; anti-disaster systems; anti-crime systems; and safety equipment etc.
Renesas Electronics products are neither intended nor authorized for use in products or systems that may pose a direct threat to human life or bodily injury (artificial life support devices or systems, surgical
implantations etc.), or may cause serious property damages (nuclear reactor control systems, military equipment etc.). You must check the quality grade of each Renesas Electronics product before using it
in a particular application. You may not use any Renesas Electronics product for any application for which it is not intended. Renesas Electronics shall not be in any way liable for any damages or losses
incurred by you or third parties arising from the use of any Renesas Electronics product for which the product is not intended by Renesas Electronics.
6.
You should use the Renesas Electronics products described in this document within the range specified by Renesas Electronics, especially with respect to the maximum rating, operating supply voltage
range, movement power voltage range, heat radiation characteristics, installation and other product characteristics. Renesas Electronics shall have no liability for malfunctions or damages arising out of the
use of Renesas Electronics products beyond such specified ranges.
7.
Although Renesas Electronics endeavors to improve the quality and reliability of its products, semiconductor products have specific characteristics such as the occurrence of failure at a certain rate and
malfunctions under certain use conditions. Further, Renesas Electronics products are not subject to radiation resistance design. Please be sure to implement safety measures to guard them against the
possibility of physical injury, and injury or damage caused by fire in the event of the failure of a Renesas Electronics product, such as safety design for hardware and software including but not limited to
redundancy, fire control and malfunction prevention, appropriate treatment for aging degradation or any other appropriate measures. Because the evaluation of microcomputer software alone is very difficult,
please evaluate the safety of the final products or systems manufactured by you.
8.
Please contact a Renesas Electronics sales office for details as to environmental matters such as the environmental compatibility of each Renesas Electronics product. Please use Renesas Electronics
products in compliance with all applicable laws and regulations that regulate the inclusion or use of controlled substances, including without limitation, the EU RoHS Directive. Renesas Electronics assumes
no liability for damages or losses occurring as a result of your noncompliance with applicable laws and regulations.
9.
Renesas Electronics products and technology may not be used for or incorporated into any products or systems whose manufacture, use, or sale is prohibited under any applicable domestic or foreign laws or
regulations. You should not use Renesas Electronics products or technology described in this document for any purpose relating to military applications or use by the military, including but not limited to the
development of weapons of mass destruction. When exporting the Renesas Electronics products or technology described in this document, you should comply with the applicable export control laws and
regulations and follow the procedures required by such laws and regulations.
10. It is the responsibility of the buyer or distributor of Renesas Electronics products, who distributes, disposes of, or otherwise places the product with a third party, to notify such third party in advance of the
contents and conditions set forth in this document, Renesas Electronics assumes no responsibility for any losses incurred by you or third parties as a result of unauthorized use of Renesas Electronics
products.
11. This document may not be reproduced or duplicated in any form, in whole or in part, without prior written consent of Renesas Electronics.
12. Please contact a Renesas Electronics sales office if you have any questions regarding the information contained in this document or Renesas Electronics products, or if you have any other inquiries.
(Note 1)
"Renesas Electronics" as used in this document means Renesas Electronics Corporation and also includes its majority-owned subsidiaries.
(Note 2)
"Renesas Electronics product(s)" means any product developed or manufactured by or for Renesas Electronics.
SALES OFFICES
http://www.renesas.com
Refer to "http://www.renesas.com/" for the latest and detailed information.
Renesas Electronics America Inc.
2801 Scott Boulevard Santa Clara, CA 95050-2549, U.S.A.
Tel: +1-408-588-6000, Fax: +1-408-588-6130
Renesas Electronics Canada Limited
1101 Nicholson Road, Newmarket, Ontario L3Y 9C3, Canada
Tel: +1-905-898-5441, Fax: +1-905-898-3220
Renesas Electronics Europe Limited
Dukes Meadow, Millboard Road, Bourne End, Buckinghamshire, SL8 5FH, U.K
Tel: +44-1628-585-100, Fax: +44-1628-585-900
Renesas Electronics Europe GmbH
Arcadiastrasse 10, 40472 Düsseldorf, Germany
Tel: +49-211-6503-0, Fax: +49-211-6503-1327
Renesas Electronics (China) Co., Ltd.
Room 1709, Quantum Plaza, No.27 ZhiChunLu Haidian District, Beijing 100191, P.R.China
Tel: +86-10-8235-1155, Fax: +86-10-8235-7679
Renesas Electronics (Shanghai) Co., Ltd.
Unit 301, Tower A, Central Towers, 555 Langao Road, Putuo District, Shanghai, P. R. China 200333
Tel: +86-21-2226-0888, Fax: +86-21-2226-0999
Renesas Electronics Hong Kong Limited
Unit 1601-1613, 16/F., Tower 2, Grand Century Place, 193 Prince Edward Road West, Mongkok, Kowloon, Hong Kong
Tel: +852-2265-6688, Fax: +852 2886-9022/9044
Renesas Electronics Taiwan Co., Ltd.
13F, No. 363, Fu Shing North Road, Taipei 10543, Taiwan
Tel: +886-2-8175-9600, Fax: +886 2-8175-9670
Renesas Electronics Singapore Pte. Ltd.
80 Bendemeer Road, Unit #06-02 Hyflux Innovation Centre, Singapore 339949
Tel: +65-6213-0200, Fax: +65-6213-0300
Renesas Electronics Malaysia Sdn.Bhd.
Unit 906, Block B, Menara Amcorp, Amcorp Trade Centre, No. 18, Jln Persiaran Barat, 46050 Petaling Jaya, Selangor Darul Ehsan, Malaysia
Tel: +60-3-7955-9390, Fax: +60-3-7955-9510
Renesas Electronics Korea Co., Ltd.
12F., 234 Teheran-ro, Gangnam-Ku, Seoul, 135-920, Korea
Tel: +82-2-558-3737, Fax: +82-2-558-5141
© 2014 Renesas Electronics Corporation. All rights reserved.
Colophon 4.0