RL78ファミリ用Cコンパイラ CA78K0R スタートアップルーチンの変更について(RL78/G10用)

Similar documents
ブート領域、フラッシュ領域の分割方法 RL78ファミリ用Cコンパイラ CC-RL

Introduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

Copyright SATO International All rights reserved. This software is based in part on the work of the Independen

インターネット接続ガイド v110

基本操作ガイド

操作ガイド(本体操作編)

エレクトーンのお客様向けiPhone/iPad接続マニュアル

iPhone/iPad接続マニュアル

操作ガイド(本体操作編)

Introduction Purpose This training course describes the configuration and session features of the High-performance Embedded Workshop (HEW), a key tool

ScanFront300/300P セットアップガイド

RX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM

RL78/G13 制限事項について

基本操作ガイド

ScanFront 220/220P 取扱説明書

ScanFront 220/220P セットアップガイド

SonicWALL SSL-VPN 4000 導入ガイド

べリンガーB-CONTROL

Microsoft Word - Win-Outlook.docx

25 II :30 16:00 (1),. Do not open this problem booklet until the start of the examination is announced. (2) 3.. Answer the following 3 proble

RL78開発環境移行ガイド RL78ファミリ間の移行 (コンパイラ編:コンパイラオプション・アセンブラオプション)(CA78K0R→CC-RL)


スライド 1

Introduction Purpose This course explains how to use Mapview, a utility program for the Highperformance Embedded Workshop (HEW) development environmen


D-Link DWL-3500AP/DWL-8500AP 設定ガイド

memo ii

TH-47LFX60 / TH-47LFX6N


目次 コード生成概要ページ 03 汎用アンプを使ったデモ概要ページ 05 CS+ でプロジェクト作成ページ 07 コード生成で周辺機能設定ページ 09 ソースコードを自動生成ページ 19 プログラム編集ページ 20 デバッグツールの設定ページ 26 プログラムの実行ページ 28 e 2 studio

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

操作ガイド(本体操作編)

DOUSHISYA-sports_R12339(高解像度).pdf

REDCap_EULA_FAQ

137. Tenancy specific information (a) Amount of deposit paid. (insert amount of deposit paid; in the case of a joint tenancy it should be the total am

1. Database&Logic Word/Excel/PPT/PDF&Web Ultimate Dictionary 4. Jukkou&Rewrite 5. Convenience&Safety 6. Chinese&Korean 7. Support&Consultation 8

RL78ファミリ用CコンパイラCC-RL プログラミングテクニック


NSR-500 Create DVD Installer Procedures

23回会社説明会資料(HP用)

はじめに このドキュメントではftServerに関する障害調査を行う際に 必要となるログ データの取得方法を説明しています ログ データの取得には 初期解析用のデータの取得方法と 詳細な調査を行うときのデータ取得方法があります 特別な理由でOS 側のログが必要となった場合には RHELログの取得につ

スライド 1


入学検定料支払方法の案内 1. 入学検定料支払い用ページにアクセス ポータルの入学検定料支払いフォームから 入学検定料支払い用 URL の ここをクリック / Click here をクリックしてください クリックを行うと 入学検定料支払い用のページが新たに開かれます ( 検定料支払い用ページは ポ

Chapter

橡最終原稿.PDF

25 Removal of the fricative sounds that occur in the electronic stethoscope


if clear = 1 then Q <= " "; elsif we = 1 then Q <= D; end rtl; regs.vhdl clk 0 1 rst clear we Write Enable we 1 we 0 if clk 1 Q if rst =

2

Contents Logging in 3-14 Downloading files from e-ijlp 15 Submitting files on e-ijlp Sending messages to instructors Setting up automatic

Microsoft Word - Meta70_Preferences.doc


Microsoft Word - PCM TL-Ed.4.4(特定電気用品適合性検査申込のご案内)

WYE771W取扱説明書

DS-30

PX-504A


アプリケーションノート AS-E402サンプルプログラム

【注意事項】RXファミリ 組み込み用TCP/IP M3S-T4-Tiny

EPSON ES-D200 パソコンでのスキャンガイド

Express5800/320Fc-MR

PX-434A/PX-404A

西川町広報誌NETWORKにしかわ2011年1月号

1 Code Generation Part I Chapter 8 (1 st ed. Ch.9) COP5621 Compiler Construction Copyright Robert van Engelen, Florida State University,

PX-403A

untitled

NetVehicle GX5取扱説明書 基本編

MIDI_IO.book

FC741E2_091201

クイックスタートガイド [SC-03E]

EPSON PX-503A ユーザーズガイド

2 except for a female subordinate in work. Using personal name with SAN/KUN will make the distance with speech partner closer than using titles. Last

DIGNO® ケータイ ユーザーガイド

N Express5800/R320a-E4 N Express5800/R320a-M4 ユーザーズガイド

Express5800/R320a-E4/Express5800/R320b-M4ユーザーズガイド

Express5800/R320a-E4, Express5800/R320b-M4ユーザーズガイド

NECエレクトロニクス 78K0/Kx2 マイコンシリーズ スタートアップガイド C言語編

Tab 5, 11 Tab 4, 10, Tab 3, 9, 15Tab 2, 8, 14 Tab 1, 7, 13 2

EP-704A


Transcription:

RL78 ファミリ用 C コンパイラ CA78K0R スタートアップルーチンの変更について RL78/G10 向けのコードサイズの削減について 株式会社ルネサスソリューションズツールビジネス本部ツール技術部 2014/6/20 Rev. 1.00 R20UT3046JJ0100

はじめに 本資料は RL78/G10 を使用する際に スタートアップルーチンのコードサイ ズを削減する方法について説明します CA78K0R のスタートアップルーチンは RL78 で共通の仕様です RL78/G10が 次の仕様であることを考慮した変更方法の説明です そのため 他のマイコンを使用した際には正常に動作しない可能性がありますので ご注意ください RL78-S1コアである 汎用レジスタバンクを搭載していない 外部メモリアクセス機能を搭載していない MAAが0 固定 RAMサイズが小さい (512バイト) 2

CA78K0Rのスタートアップルーチン内の処理概要 RL78/G10 向けのスタートアップルーチンのカスタマイズ概要 CubeSuite+ でのスタートアップルーチンの登録 スタートアップルーチンの編集 3

CA78K0R のスタートアップルーチン内の処理概要 cstartn.asm の処理の概要は次のようになっています setting the register bank RB setting the mirror area setting the stack pointer call hardware initialization clear stack area clear saddr area copy external variables having initial value (near) copy external variables having initial value (far) copy external variables which doesn't have initial value (near) copy external variables which doesn't have initial value (far) copy sreg variables having initial value copy sreg variables which doesn't have initial value call main function 4

RL78/G10 向けのスタートアップルーチンのカスタマイズ概要 cstartn.asm に対して 次の変更を行います setting the register bank RB レジスタバンクがないので削除 setting the mirror area 0x10000 番地以上にミラー領域がないので削除 setting the stack pointer call hardware initialization clear stack area clear saddr area 複数の 0 クリア処理を 1 つの処理にまとめる copy external variables having initial value (near) copy external variables having initial value (far) 外部メモリ機能がないので削除 clear RAM area copy external variables which doesn't have initial value (near) copy external variables which doesn't have initial value (far) copy sreg variables having initial value copy sreg variables which doesn't have initial value call main function 外部メモリ機能がないので削除 コードサイズ 223 バイト 71 バイト 5

CubeSuite+ でのスタートアップルーチンの登録 (1/3) インストールフォルダからスタートアップルーチンのファイルを任意のフォルダコピーする コピー対象ファイル cstartn.asm def.inc macro.inc デフォルトのインストールフォルダ ( スタートアップ関連ファイル ) C: Program Files Renesas Electronics CubeSuite+ CA78K0R バージョン Src cc78k0r src ( バージョン :CA78K0Rのバージョンです) 6

CubeSuite+ でのスタートアップルーチンの登録 (2/3) コピーしたスタートアップルーチンを CubeSuite+ に登録する Explorer から CubeSuite+ のプロジェクトツリーパネルの スタートアップ に cstart.asm をドラッグ & ドロップする 7

CubeSuite+ でのスタートアップルーチンの登録 (3/3) プロジェクトツリーに登録されたら 編集してください cstartn.asm が表示されるので 編集してください 登録完了するとファイルが表示される 8

スタートアップルーチンの編集 (1/13) ; Copyright(c) 2006-2012 Renesas Electronics Corporation ; RENESAS ELECTRONICS CONFIDENTIAL AND PROPRIETARY. ; This program must be used solely for the purpose for which ; it was furnished by Renesas Electronics Corporation. No part of this ; program may be reproduced or disclosed to others, in any ; form, without the prior written permission of Renesas Electronics ; Corporation. ;------------------------------------- ; W-1 cstart (no init) ; ;------------------------------------- NAME @cstart 変更なし $INCLUDE (def.inc) $INCLUDE (macro.inc) 9

スタートアップルーチンの編集 (2/13) ; declaration of symbol ; ; attention): change to EQU value 1 -> 0 if necessary ; FLOATSW EQU 1 ;floating point variables use 変更なし PUBLIC $_IF(FLOATSW) PUBLIC _@cstart,_@cend _errno 10

スタートアップルーチンの編集 (3/13) ; external declaration of symbol for stack area ; ; _@STBEG has value of the end address +1 of compiler's stack area. ; _@STEND has value of the start address of compiler's stack area. ; _@STBEG and _@STEND are created by linker with -S option. ; Accordingly, specify the -S option when linking. ; ; _@MAA has value of the mirror area. ; _@SADSIZ has value of the size of the saddr area. ; _@SADBEG has value of the start address of the saddr area. EXTRN _main,_@stbeg,_@stend,_stkinit,_hdwinit,_@sadsiz,_@sadbeg $_IF(_MIRROR) EXTRN _@MAA 削除 EXTRN _?R_INIT,_?RLINIT,_?R_INIS,_?DATA,_?DATAL,_?DATS 11

スタートアップルーチンの編集 (4/13) ; allocation area which library uses ; _errno errno number code @@DATA DSEG BASEP ;near _@DATA: $_IF(FLOATSW) _errno: DS 2 変更なし @@VECT00 CSEG AT 0 DW _@cstart @@LCODE CSEG BASE _@cstart: 12

スタートアップルーチンの編集 (5/13) ; setting the register bank RB0 as work register set SEL RB0 削除 ; setting the mirror area $_IF(_MIRROR) MOV A,#_@MAA 削除 MOV1 CY,A.0 MOV1 MAA,CY ; setting the stack pointer ; ; _@STBEG is created by linker with -S option. MOVW SP,#LOWW _@STBEG ;SP <- stack begin address ; hardware initialization CALL!!_hdwinit 13

スタートアップルーチンの編集 (6/13) ; clear stack area ; ; _@STEND is created by linker with -S option. MOVW HL,#LOWW _@STEND ;HL <- stack end address CALL!!_stkinit 削除 ; clear saddr MOV B,#_@SADSIZ ;0FEDFH - _@SADBEG + 1 CLRW AX LSADR1: DEC B DEC B 削除 MOVW _@SADBEG[B],AX BNZ $LSADR1 14

スタートアップルーチンの編集 (7/13) ; clear Internal RAM ; add for RL78/G10 MOVW HL,#LOWW 0FFDE0H ; Start address of Internal RAM MOVW AX,#LOWW 0FFEE0H ; End address of Internal RAM + 1 BR $LDATA2 LDATA1: MOV [HL+0],#0 INCW HL LDATA2: CMPW AX,HL BNZ $LDATA1 追加 15

スタートアップルーチンの編集 (8/13) ; ROM data copy 変更なし ; copy external variables having initial value $_IF(_ESCOPY) MOV ES,#HIGHW _@R_INIT MOVW HL,#LOWW _@R_INIT MOVW DE,#LOWW _@INIT BR $LINIT2 LINIT1: $_IF(_ESCOPY) MOV A,ES:[HL] $ELSE MOV A,[HL] MOV [DE],A INCW HL INCW DE LINIT2: MOVW AX,HL CMPW AX,#LOWW _?R_INIT BNZ $LINIT1 16

スタートアップルーチンの編集 (9/13) $_IF(_DATAFAR) ; copy external variables having initial value MOVW HL,#LOWW _@RLINIT MOVW DE,#LOWW _@INITL BR $LINIT4 LINIT3: MOV ES,#HIGHW _@RLINIT MOV A,ES:[HL] MOV ES,#HIGHW _@INITL MOV ES:[DE],A INCW HL INCW DE LINIT4: MOVW AX,HL CMPW AX,#LOWW _?RLINIT BNZ $LINIT3 削除 17

スタートアップルーチンの編集 (10/13) ; copy external variables which doesn't have initial value MOVW HL,#LOWW _@DATA MOVW AX,#LOWW _?DATA BR $LDATA2 LDATA1: 削除 MOV [HL+0],#0 INCW HL LDATA2: CMPW AX,HL BNZ $LDATA1 $_IF(_DATAFAR) ; copy external variables which doesn't have initial value MOV ES,#HIGHW _@DATAL MOVW HL,#LOWW _@DATAL MOVW AX,#LOWW _?DATAL BR $LDATA4 LDATA3: MOV ES:[HL+0],#0 削除 INCW HL LDATA4: CMPW AX,HL BNZ $LDATA3 18

スタートアップルーチンの編集 (11/13) ; copy sreg variables having initial value $_IF(_ESCOPY) MOV ES,#HIGHW _@R_INIS MOVW HL,#LOWW _@R_INIS MOVW DE,#LOWW _@INIS BR $LINIS2 LINIS1: $_IF(_ESCOPY) MOV A,ES:[HL] $ELSE MOV A,[HL] MOV [DE],A INCW HL INCW DE LINIS2: MOVW AX,HL CMPW AX,#LOWW _?R_INIS BNZ $LINIS1 変更なし 19

スタートアップルーチンの編集 (12/13) ; copy sreg variables which doesn't have initial value MOVW HL,#LOWW _@DATS MOVW AX,#LOWW _?DATS BR $LDATS2 LDATS1: MOV [HL+0],#0 INCW HL LDATS2: CMPW AX,HL BNZ $LDATS1 削除 ; call main function CALL!!_main ;main(); BR $$ ; _@cend: 20

スタートアップルーチンの編集 (13/13) ; define segment and label used by ROMable processing @@R_INIT CSEG UNIT64KP _@R_INIT: $_IF(_DATAFAR) @@RLINIT CSEG UNIT64KP _@RLINIT: @@R_INIS CSEG UNIT64KP _@R_INIS: @@INIT DSEG BASEP _@INIT: $_IF(_DATAFAR) @@INITL DSEG UNIT64KP _@INITL: $_IF(_DATAFAR) @@DATAL DSEG UNIT64KP _@DATAL: @@INIS DSEG SADDRP _@INIS: @@DATS DSEG SADDRP _@DATS: @@CALT CSEG CALLT0 @@CNST CSEG MIRRORP @@CNSTL CSEG PAGE64KP @@BITS BSEG ; END 変更なし 21

ルネサスソリューションズ株式会社