RL78開発環境移行ガイド
R8C/M16C, H8S/H8SXからRL78への移行（統合開発環境編）（High-performance Embedded Workshop→CS+)
2017/4/7
R20UT2087JJ0103
ソフトウェア事業部ソフトウエア技術部
ルネサスシステムデザイン株式会社© 2017 Renesas System Design Co., Ltd. All rights reserved.

はじめにHEWプロジェクト

 本資料は、統合開発環境High-performance Embedded Workshop（以降、HEW） で作成したプロジェクトを統合開発環境CS+の
RL78ファミリ用コンパイラ(以降、CC-RL)のプロジェクトに移行する際の注意事項を記載しています。

RXファミリ用SuperHファミリ用
R8C,M16Cファミリ用
R32Cファミリ用
M32Rファミリ用

 本資料で対象とする、CS+／HEW／CC-RLのバージョンは以下の通りです。
− CS+ for CC V5.00.00

H8SX,H8S,H8ファミリ用

CS+プロジェクト

プロジェクト移行

RL78ファミリ用− HEW V4.09.01.007
RXファミリ用− CC-RL V1.04.00

RH850ファミリ用
本資料で説明© 2017 Renesas System Design Co., Ltd. All rights reserved.

ページ 2

アジェンダ セクション配置

ページ 04

 マイコン制御機能

ページ 08－周辺機能制御

ページ 09－割り込み制御

ページ 11－オンチップデバッグ設定

ページ 13© 2017 Renesas System Design Co., Ltd. All rights reserved.

ページ 3

セクション配置© 2017 Renesas System Design Co., Ltd. All rights reserved.

セクション配置（1/3）
 プログラムやデータのセクションの配置の指定は、プロパティのリンクオプションで設定してください。

配置は、コンパイラが生成するセクション名を指定

任意のアドレスに任意のセクションを指定可能© 2017 Renesas System Design Co., Ltd. All rights reserved.

ページ 5

セクション配置（2/3）
 CC-RLでは、デフォルト・セクション名でセクションを生成します。
デフォルト・セクション名

再配置属性

内容

.callt0

CALLT0callt関数呼び出しのテーブル用セクション

.text

TEXT

コード部用セクション（near領域配置）.textf

TEXTF

コード部用セクション（far領域配置）.textf_unit64kp

TEXTF_UNIT64KP

コード部用セクション（セクションを先頭が偶数番地になるように，64KB-1境界にまたがらないように配置）.const

CONST

ROMデータ（near領域配置）（ミラー領域内）.constf

CONSTF

ROMデータ（far領域配置）

.data

DATA

初期化データ用セクション（初期値あり、near領域配置）.dataf

DATAF

初期化データ用セクション（初期値あり、far領域配置）.sdataSDATA

初期化データ用セクション（初期値あり、saddr配置変数）.sbss_bit

SBSS_BIT

ビットデータ領域用セクション（初期値なし，saddr配置変数）.bss_bit

BSS_BIT

ビットデータ領域用セクション（初期値なし，near領域配置）© 2017 Renesas System Design Co., Ltd. All rights reserved.

ページ 6

セクション配置（3/3）
デフォルト・セクション名

再配置属性

内容

.bss

BSS

データ領域用セクション（初期値なし，near領域配置）

.bssf

BSSF

データ領域用セクション（初期値なし，far領域配置）

.sbss

SBSS

データ領域用セクション（初期値なし，saddr配置変数）.option_byte

OPT_BYTE

ユーザ・オプション・バイト，およびオンチップ・デバッグ指定専用セクショ
ン.security_id

SECUR_ID

セキュリティID指定専用セクション.vect注AT

割り込みベクタテーブル.dataRDATA

初期化データRAM用セクション（初期値あり、near領域配置）
スタートアップファイルで定義.sdataR

DATA

初期化データRAM用セクション（初期値あり、saddr領域配置）
スタートアップファイルで定義.RLIB注

TEXTF

ランタイム・ライブラリ コード用セクション.SLIB注

TEXTF

標準ライブラリ コード用セクション注© 2017 Renesas System Design Co., Ltd. All rights reserved.

ページ 7#pragma sectionでセクション名を変更することができません。

マイコン制御機能© 2017 Renesas System Design Co., Ltd. All rights reserved.

周辺機能制御
CS+でプロジェクトを作成時にiodefine.hファイルが生成されます。このファイルをインクルードすることで、周辺ＩＯに対応したシンボルでのアクセスが可能となります。記述するレジスタ名称
は、マニュアルに記載されているレジスタ略称名およびビット名称です。

※ 四角印のビットについては、ビット名での記述が可能#include “iodefine.h”// 周辺I/Oレジスタ定義ファイルの指定

PER0 = 0x01;// レジスタ全体のアクセス

TAU0EN = 0;// １ビットのみアクセス© 2017 Renesas System Design Co., Ltd. All rights reserved.

ページ 9

周辺機能制御
アクセス例

 四角印がないビットに対してのアクセス例#include “iodefine.h”// 周辺I/Oレジスタ定義ファイルの指定

PM5_bit.no0 = 0;// PM5レジスタのビット0のみ0クリア※iodefine.hで定義されている_bitの名前の付いたバイトとワードの予約語を利用してアクセスしてください。

© 2017 Renesas System Design Co., Ltd. All rights reserved.

ページ 10割り込み制御 割り込み禁止・許可を行う組み込み関数
void __DI(void); ・・・ 割り込み禁止
void __EI(void); ・・・ 割り込み許可
 割り込み関数のベクタ登録と割り込み前後処理のコード出力#pragma interrupt [(]割り込みハンドラ名[(割り込み仕様 [,...])][)]
割り込み仕様に応じて・ベクタに関数の先頭番地を登録
・レジスタの退避・回復とRETI命令などのコードを出力＜割り込み仕様＞
項目

形式

ベクタテーブル指定

vect=アドレス

レジスタ・バンク指定

bank={ RB0 | RB1 | RB2 | RB3 }多重割り込み許可指定

enable={ true | false }© 2017 Renesas System Design Co., Ltd. All rights reserved.

ページ 11

割り込み制御
プログラム記述例#include “iodefine.h”// 周辺I/Oレジスタ定義ファイルの指定// ベクタ登録＆割り込み関数指定#pragma interrupt intp0_int(vect=INTP0)
void main(void){

割り込み仕様

割り込み関数名：__EI();// 割り込み許可

while(1);}void intp0_int(void)// INTP0割り込み{：}© 2017 Renesas System Design Co., Ltd. All rights reserved.

ページ 12

オンチップデバッグ設定
 オンチップデバッグの動作制御を行う「オンチップ・デバッグ・オプション・バイト」レジスタの値をビルド・ツール→「リンク・オプション」タブの ”デバイス”カテゴリで設定します。
 また「ユーザ・オプション・バイト」レジスタの値も設定し、高速内蔵発信回路の周波数の設定と、デバッグ用にウォッチ・ドッグ・タイマを停止しておきます。
「はい」を選択し、制御値は 84h(オンチップデバッグの動作を許可)を設定「はい」を選択し、値はEEFFE8h(ウォッチドッグタイマ停止、高速内蔵発振：32MHz)を設定© 2017 Renesas System Design Co., Ltd. All rights reserved.

ページ 13

ルネサス システムデザイン株式会社© 2017 Renesas System Design Co., Ltd. All rights reserved.