スライド 1

Similar documents
SHコンパイラ アプリケーションノート 1-導入ガイド: スタートアップルーチンガイド SH-1, SH-2, SH-2A編

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

CubeSuite+版RXシリアルデバッガ取扱説明書

スライド 1

スライド 1

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

Microsoft Word - プログラムをRAM.doc

スライド 1

スライド 1

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

スライド 1

スライド 1

RX210 グループ MTU2 を用いた相補 PWM モードの波形出力 要旨 本サンプルコードでは MTU2 を用いて相補 PWM モードの波形を出力する方法について説 明します 対象デバイス RX210 1 / 41

RX600 & RX200シリーズ RX用シンプルフラッシュAPI アプリケーションノート

スライド 1

Microsoft PowerPoint - RX62N動画マニュアルDMAC.ppt [互換モード]

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

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

アプリケーションノート MT-R300 割り込みプログラムのデバッグ方法

RX開発環境移行ガイド V850からRXへの移行(コンパイラ編)(CA850/CX→CC-RX)

スライド 1

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

RX210 グループ FIT を用いたフラッシュメモリの書き換え 要旨 本サンプルコードでは FIT を用いて 特定の内蔵フラッシュメモリ (ROM および E2 デ ータフラッシュ ) のアドレスに特定の値を書き込む方法について説明します 対象デバイス RX210 1 / 50

AN1508 AP-RX63N-0A USBホストサンプルプログラム解説

AN1510 LCD-KIT サンプルプログラム解説(RX63N)

スライド 1

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

AN1509 AP-RX63N-0A USBファンクション サンプルプログラム解説

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

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

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

RXファミリ

内容 1 はじめに 本ガイドの目的 本ガイドの対象者 対象製品 表記について リンカ設定ファイル例 ソースファイル例 名前の付け方 リンカオプションとリンカ設定ファ

SuperH RISC engine C/C++ コンパイラ Ver.7 不具合内容 - 過去のお知らせ SuperH RISC engine C/C++ コンパイラ Ver.7 台における不具合内容を以下に示します のチェックツールをルネサスエレクトロニクス株式会社のホームページ

main01a.dvi

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

SH7734グループ SH7734初期設定例 アプリケーションノート

PowerPoint プレゼンテーション

デジタル表現論・第6回

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

CS+ V 統合開発環境 ユーザーズマニュアル プロジェクト操作編

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

1. LCD LS027B4DH01 について LS027B4DH01 は 400dot x 240dot のグラフィック LCD です 秋月電子通商で購入できます 外形サイズ : 62.8 x x 1.53mm LCD のフレキシブルケーブルの根元の部分はちょっと力を加えただけで表示が

MMUなしプロセッサ用Linuxの共有ライブラリ機構

SH7786 INTC CPU間割り込み使用例

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

スライド 1

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

マイコンプログラミング講座

Microsoft PowerPoint - 計算機言語 第7回.ppt

04-process_thread_2.ppt

Microsoft PowerPoint - 09.pptx

自己紹介 湯浅陽一 1999 年より Linux kernel 開発に参加 MIPS アーキテクチャのいくつかの CPU へ Linux kernel を移植

GR-SAKURA-SAのサンプルソフト説明

02: 変数と標準入出力

02: 変数と標準入出力

02: 変数と標準入出力

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

02: 変数と標準入出力

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で

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

02: 変数と標準入出力

PowerPoint プレゼンテーション

RX ファミリ リアルタイムOS RI600V4 V リリースノート

多言語ドメイン名の実装 mdnkit 石曽根信 ( 株 ) SRA 2001/12/04 日本語ドメイン名解説 / mdnkit 1 mdnkit 多言語ドメイン名を扱うためのツールキット 正規化 エンコード変換等を提供するライブラリとコマンド 既存アプリケーシ

02: 変数と標準入出力

Microsoft PowerPoint - kougi7.ppt

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

02: 変数と標準入出力

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

TOPPERS活用アイデア・アプリケーション開発

CS+ 統合開発環境 ユーザーズマニュアル CC-RL ビルド・ツール操作編

アプリケーションノート 1版( )

SH7734 グループ イーサネット受信設定例 アプリケーションノート

memo

02: 変数と標準入出力

Microsoft PowerPoint - CproNt02.ppt [互換モード]

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

Toolchain_setting_ARMC

第2回

Microsoft PowerPoint - Kozos12step_07_

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

Cコンパイラパッケージお知らせ

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

スライド 1

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

Microsoft PowerPoint - 11.pptx

概要 プログラミング論 変数のスコープ, 記憶クラス. メモリ動的確保. 変数のスコープ 重要. おそらく簡単. 記憶クラス 自動変数 (auto) と静的変数 (static). スコープほどではないが重要.

目次 目次... 1 はじめに... 3 マイコンシミュレータのデバッグ機能... 3 スタートアップコマンドファイル... 5 シミュレータコマンド ( マクロ ) 例... 6 I/O 制御等で外的要因待ちをしている場合 ( その1)... 6 I/O 制御等で外的要因待ちをしている場合 ( そ

計算機アーキテクチャ

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

Prog1_10th

(2) 構造体変数の宣言 文法は次のとおり. struct 構造体タグ名構造体変数名 ; (1) と (2) は同時に行える. struct 構造体タグ名 { データ型変数 1; データ型変数 2;... 構造体変数名 ; 例 : struct STUDENT{ stdata; int id; do

AquesTalk for WinCE プログラミングガイド

Operating System 仮想記憶

AquesTalk プログラミングガイド

マクロ(シミュレータコマンド)の使い方

Transcription:

RX ファミリ用コンパイラスタートアップの紹介 ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A

コンテンツ スタートアップの概要 スタートアッププログラム例 外部メモリを利用する場合の設定 2

スタートアップの概要 3

処理の流れとファイル構成例 パワーオン リセット Fixed_Vectors ( 固定ベクタテーブル ) スタートアップ vecttbl.c resetprg.c CPU 内部の初期化 machine.h 組み込み関数用ヘッダ hwsetup.c ハードウェアの初期化 iodefine.h PowerON_Reset_PC 関数 HardwareSetup 関数 内蔵周辺機能用ヘッダ intprg.c Dummy 関数 MNI 関数 ( 割り込み関数群 ) 割り込み関数のプロトタイプ宣言 vect.h ライブラリ ファイル静的変数の初期化 _INITSCT 関数 main 関数 関数 処理の流れ インクルード関係 ユーザ固有ヘッダ 関数 ユーザシステムに依存 4

スタートアッププログラム例 5

スタートアップのプログラム例 (1) #include <machine.h> #pragma stacksize si=0x200 void HardwareSetup(void); void _INITSCT(void); void main(void); // Use Embedded Function // Interrupt Stack is 512Byte resetprg.c #pragma section P PResetPRG // Section Name is PResetPRG #pragma entry PowerON_Reset_PC // Entry Function void PowerON_Reset_PC(void) { set_intb( sectop("c$vect")); // Initialize of INTB HardwareSetup( ); // Initialize of CPG _INITSCT( ); // Initialize of Static Variable main( ); // Execute main Function } 6

割り込みテーブルレジスタ (INTB) #include <machine.h> #pragma stacksize si=0x200 void HardwareSetup(void); void _INITSCT(void); void main(void); // Use Embedded Function // Interrupt Stack is 512Byte アドレス空間 INTB #pragma section 可変ベクタテーブルの先頭アドレス P PResetPRG // Section Name is PResetPRG 可変ベクタ #pragma entry PowerON_Reset_PC // Entry Function テーブル void PowerON_Reset_PC(void) 組み込み関数 { set_intb( sectop("c$vect")); // Initialize of INTB HardwareSetup( ); // Initialize of CPG セクションの先頭アドレス _INITSCT( ); 可変ベクタテーブルのセクション // Initialize of Static Variable 固定ベクタ main( ); // Execute main Function テーブル } 7

HardwareSetup 関数のプログラム例 #include "iodefine.h" // Peripheral Header File hwsetup.c void HardwareSetup(void) { SYSTEM.SCKCR.LONG = 0x00020100; // ICLK=96MHz,BCLK=24MHz,PCLK=48MHz //SYSTEM.SYSCR0.WORD = 0x5A03; // External Bus Enable //set BSC, I/O port } 8

システムクロックコントロールレジスタ (SCKCR) BCK ICK PCK ICK になるように設定 入力クロック (EXTAL) に対する倍数 9

システムコントロールレジスタ 0(SYSCR0) 0x5A 外部拡張モード

_INITSCT ライブラリ関数による静的変数の初期化 セクション SI B_1 R_1 B_2 R_2 B R PResetPRG PIntPRG P C_1 D_1 W_1 C_2 D_2 W_2 C D W L C$VECT C$DSEC C$BSEC FIXEDVECT RAM ROM 初期値のない静的変数 B_1 B_2 B _INITSCT(); 0 クリア RAM 領域を示すように ROM 化支援オプションを設定 -rom=d=r,d_2=r_2,d_1=r_1 セクション初期化用テーブル が使用するセクション 初期値のある静的変数 R_1 R_2 R _INITSCT(); D_1 D_2 D 初期値のコピー X_1: アライメント数 =1 X_2: アライメント数 =2 X: アライメント数 =4 11

セクション初期化用テーブルのプログラム例 #pragma unpack #pragma section C C$DSEC // Section Name is C$DSEC extern const struct { _UBYTE *rom_s; /* 初期化データセクションの ROM 上の先頭アドレス */ _UBYTE *rom_e; /* 初期化データセクションの ROM 上の最終アドレス */ _UBYTE *ram_s; /* 初期化データセクションの RAM 上の先頭アドレス */ } _DTBL[] = { { sectop("d"), secend("d"), sectop("r") }, { sectop("d_2"), secend("d_2"), sectop("r_2") }, { sectop("d_1"), secend("d_1"), sectop("r_1") } }; #pragma section C C$BSEC // Section Name is C$BSEC extern const struct { _UBYTE *b_s; /* 未初期化データセクションの先頭アドレス */ _UBYTE *b_e; /* 未初期化データセクションの最終アドレス */ } _BTBL[] = { { sectop("b"), secend("b") }, { sectop("b_2"), secend("b_2") }, { sectop("b_1"), secend("b_1") } }; #pragma section #pragma packoption dbsct.c 12

スタートアップのプログラム例 (2) #include <machine.h> #pragma stacksize si=0x200 void HardwareSetup(void); void _INITSCT(void); void main(void); // Use Embedded Function // Interrupt Stack is 512Byte スタートアップ関数の先頭に スタックポインタの初期設定コードを出力 CPU 内部レジスタの退避 復帰コードを作成しない resetprg.c #pragma section P PResetPRG // Section Name is PResetPRG #pragma entry PowerON_Reset_PC // Entry Function void PowerON_Reset_PC(void) { set_intb( sectop("c$vect")); // Initialize of INTB set_fpsw(fpsw_init); // Initialize of FPSW HardwareSetup( ); // Initialize of CPG _INITSCT( ); // Initialize of Static Variable main( ); // Execute main Function } 13

固定ベクタテーブル用配列のプログラム例 #include "vect.h" 0xFFFFFFD0 番地に配置 #pragma section C FIXEDVECT // Section Name is FIXEDVECT void (*const Fixed_Vectors[])(void) = { MSB Dummy, FFFFFFD0h Dummy, FFFFFFD4h Dummy, FFFFFFD8h Dummy, FFFFFFDCh Dummy, FFFFFFE0h Dummy, FFFFFFE4h Dummy, FFFFFFE8h Dummy, FFFFFFECh Dummy, FFFFFFF0h Dummy, FFFFFFF4h NMI, FFFFFFF8h PowerON_Reset_PC, FFFFFFFCh }; 特権命令例外アクセス例外 ( 予約領域 ) 未定義命令例外 ( 予約領域 ) 浮動小数点例外 ( 予約領域 ) ( 予約領域 ) ( 予約領域 ) ( 予約領域 ) ノンマスカブル割り込みリセット 固定ベクタテーブル vecttbl.c LSB 14

外部メモリを利用する場合の設定 15

外部メモリへの変数の配置方法 外部メモリ仕様 ROM 配置アドレス :0x01000000 配置セクション :DMem セクション RAM 配置アドレス :0x02000000 配置セクション :RMem セクション アドレス空間 内蔵 RAM R セクション #pragma section Mem static uint32_t array[] = { ( 初期値 ) }; #pragma section 0x01000000 外部 ROM 新セクション DMem 0x02000000 外部 RAM 新セクション RMem 内蔵 ROM D セクション 16

セクションアドレスオプション設定 (HEW の場合 ) 0x01000000 番地 :DMem セクション 0x02000000 番地 :RMem セクション追加 タブ : 最適化リンカカテゴリ : セクション設定項目 : セクション 17

セクションアドレスオプション設定 (CubeSuite+ の場合 ) 18

ROM 化支援オプション設定 (HEW の場合 ) ROM セクション :DMem セクション RAM セクション :RMem セクション追加 タブカテゴリオプション項目 : 最適化リンカ : 出力 :ROMからRAMへマップするセクション 19

ROM 化支援オプション設定 (CubeSuite+ の場合 ) 20

セクション初期化用テーブルへの登録 #pragma unpack #pragma section C C$DSEC // Section Name is C$DSEC extern const struct { _UBYTE *rom_s; /* 初期化データセクションの ROM 上の先頭アドレス */ _UBYTE *rom_e; /* 初期化データセクションの ROM 上の最終アドレス */ _UBYTE *ram_s; /* 初期化データセクションの RAM 上の先頭アドレス */ } _DTBL[] = { { sectop("d"), secend("d"), sectop("r") }, { sectop("d_2"), secend("d_2"), sectop("r_2") }, { sectop("d_1"), secend("d_1"), sectop("r_1") }, { sectop("dmem"), secend("dmem"), sectop("rmem") } }; #pragma section C C$BSEC // Section Name is C$BSEC extern const struct { _UBYTE *b_s; /* 未初期化データセクションの先頭アドレス */ _UBYTE *b_e; /* 未初期化データセクションの最終アドレス */ } _BTBL[] = { { sectop("b"), secend("b") }, { sectop("b_2"), secend("b_2") }, { sectop("b_1"), secend("b_1") } }; #pragma section #pragma packoption dbsct.c 21

END ルネサスエレクトロニクス株式会社