code composer studio 概要 - texas...
TRANSCRIPT
Stellaris 1day Workshop – CCS 2 - 1
Code Composer Studio 概要
Module Topics
Code Composer Studio 概要..................................................................................................................... 2-1
Code Composer Studio ........................................................................................................................... 2-2 Code Composer Studio v4 概要 ......................................................................................................... 2-2 ワークスペース ................................................................................................................................ 2-3 プロジェクト .................................................................................................................................... 2-4 ターゲット・コンフィグレーション ............................................................................................ 2-4 ビルド・オプション ........................................................................................................................ 2-6
Lab2 CCS でビルド、デバッグを行う ..............................................................................................2-10 CCS の起動.......................................................................................................................................2-10
オプション演習....................................................................................................................................2-27 GEL ファイルの内容を確認...........................................................................................................2-27 CCS の設定を確認...........................................................................................................................2-29
2 - 2 Stellaris 1day Workshop – CCS
Code Composer Studio
Code Composer Studio v4 概要
SIM
シミュレータ
Code Composer Studio
CCSは以下のものを含みます: 組み込みエディタ / デバッグ GUI
エディタ
DSK
EVM
サードパーティボード
BIOS: リアルタイムカーネルリアルタイム解析
DSP/BIOSライブラリ
DSP/BIOSコンフィグツール
デバッグ
コード生成ツール
コンパイラ
アセンブラ
標準ランタイムライブラリ
.outリンク
XDS
DSP ボード
コード生成
.outエディタ
.c / .cppコンパイラ アセンブラ
.asmリンカ
.obj
Link.cmd
.map
Stellaris 1day Workshop – CCS 2 - 3
CCSv4での作業
1. ワークスペースの作成
2. プロジェクトの作成
3. ターゲット・コンフィグレーションの作成
4. プログラミング、ビルド、ロード、デバッグ
※※CCS v4CCS v4ははeclipseeclipseをベースにをベースにTITI独自のカスタマイズを行った統合開発環境です。独自のカスタマイズを行った統合開発環境です。CCS v3.3CCS v3.3以前とは使い方が大分異なります。以前とは使い方が大分異なります。
ワークスペース
ワークスペースとは?
1台のPC上に複数のワークスペースを持つことができます File→Switch Workspace… で使用するワークスペースを変更できます
ワークスペース内には、異なるプラットフォームのプロジェクトを混在させることが可能です
プロジェクトをクローズしても、ワークスペースのプロジェクト・ビューから、そのプロジェクトは消えません。 プロジェクトを削除した場合、プロジェクト・ビューから消去されます
【注意!!】削除”でハードディスクからのファイル本体の削除が出来てしまいます
CCS v4では、従来のCCS(v3以前)とは異なり、ワークスペースがビューのレイアウトを直接管理することはありません CCS v4ではパースペクティブがビュー・レイアウトを管理
CCSCCSプロジェクトを収めるためのワーキングフォルダですプロジェクトを収めるためのワーキングフォルダです!!
2 - 4 Stellaris 1day Workshop – CCS
プロジェクト
プロジェクトとは?
プロジェクトは以下を含む:
プロジェクトのファイル: ソース
ライブラリ
リンカ・コマンド等…
プロジェクトの設定: コンパイラ オプション
DSP/BIOS リンカ、 …
プロジェクトプロジェクトビュービュー
ターゲット・コンフィグレーション
ターゲット・コンフィグレーションとは?
使用するボード/エミュレータ/シミュレータ/デバイスを選択
プロジェクトごとにターゲットの設定も可能
使用するボード/エミュレータ/シミュレータ/デバイスを選択
プロジェクトごとにターゲットの設定も可能
Stellaris 1day Workshop – CCS 2 - 5
CCSのGUI
ワークベンチ CCSのウィンドウ全体
ビュー
種々の情報を閲覧するためのサブウィンドウ
エディター
主にファイルを編集するためのサブウィンドウ
パースペクティブ
ビューとエディタの組み合わせとレイアウトを管理する
デバッグ用、C/C++プログラミング用にそれぞれパースペクティブがあります
CCSのGUI(C/C++パースペクティブ)
ビュービュー
エディタエディタ
ビュービュー
ビュービュー ビュービュー
ワークベンチワークベンチ
C/C++C/C++パースペクティブパースペクティブ
2 - 6 Stellaris 1day Workshop – CCS
CCSのGUI(Debugパースペクティブ)DebugDebugパースペクティブパースペクティブ
ビュービュー ビュービュー
ビュービュー
ビュービュー
ビルド・オプション
オプション 説明
-mv7M3 Cortex-M3コードを生成
-mv7A8 Cortex-A8コードを生成
-mv5e ARM9コードを生成
-fr <dir> object/outputの出力先ディレクトリの指定
-fs <dir> アセンブリ・ファイルの出力先ディレクトリの指定
-g シンボリック・デバッグをイネーブル
-ss アセンブリ・ファイルの出力(Cソースをコメント付加)
-O3 最適化を起動 (-O0, -O1, -O2, -O3)-k アセンブリ・ファイルのみ出力
コンパイラのビルド・オプション
コードのパフォーマンスやサイズ等をチューンできる約100種類のコンパイラ・オプション
以下に示すリストは非常に良く使用されるオプション:
debug
optimize
Stellaris 1day Workshop – CCS 2 - 7
プロジェクトの作成と設定変更
ヒント:File→New→CCS Projectでプロジェクトを作成
ビルド設定の変更は
C/C++ Projects ビューで
該当プロジェクトを右クリック、Build Properties…を選択
ヒント:File→New→CCS Projectでプロジェクトを作成
ビルド設定の変更は
C/C++ Projects ビューで
該当プロジェクトを右クリック、Build Properties…を選択
次のスライド
ビルド オプション-mv7M3 -g -O2 --gcc --define=ccs --define=TARGET_IS_TEMPEST_RB1…
2 - 8 Stellaris 1day Workshop – CCS
リンカ オプション
実行ファイルの指定実行ファイルの指定
メモリマップファイルの指定メモリマップファイルの指定
※※メモリ配置はリンカ・コマンドファイルにより設定します。メモリ配置はリンカ・コマンドファイルにより設定します。※※リンカ・コマンドファイルはプロジェクトに追加します。リンカ・コマンドファイルはプロジェクトに追加します。
TI ARM CGT C データ型
型 サイズ 説明
char, signed char 8 ビット ASCIIunsigned char 8 ビット ASCIIshort 16 ビット 2’s complementunsigned short 16 ビット binaryint, signed int 32 ビット 2’s complementunsigned int 32 ビット binarylong, signed long 32 ビット 2’s complementunsigned long 32 ビット binaryenum 32 ビット 2’s complementfloat 32 ビット IEEE 32-bitdouble 64 ビット IEEE 64-bitlong double 64 ビット IEEE 64-bitpointers 32 ビット binary
Stellaris 1day Workshop – CCS 2 - 9
GEL スクリプト
GEL: General Extension Language Cスタイルの文法
非常に多くのデバッガ・コマンドが
GEL関数として用意されている
自作の関数も記述可能
GELのメニューアイテムを作成する
GEL: General Extension Language Cスタイルの文法
非常に多くのデバッガ・コマンドが
GEL関数として用意されている
自作の関数も記述可能
GELのメニューアイテムを作成する
2 - 10 Stellaris 1day Workshop – CCS
Lab2 CCS でビルド、デバッグを行う
Lab2 CCSでビルド、デバッグを行う
ハードウェアをセットアップ
プロジェクトを作成しビルド する
変数、メモリ、コードを確認
プログラムを実行(run)、停止(halt), ステップ実行、ブレークポイント
メモリに格納された結果を表示
Code Composer Studio (CCS)を使ってみる
volatile unsigned long g_ulCount;
unsigned long plusOne(unsigned long in)
{
return(++in);
}
void main(void)
{
g_ulCount = 1;
while(g_ulCount){
g_ulCount = plusOne(g_ulCount);
}
}
CCS の起動 1. CCSv4 を起動します。
ウィンドウズのスタートメニュー→すべてのプログラム→Texas Instruments→Code Composer Studio v4→Code Composer Studio v4 をクリックして CCSv4 を起動してくだ
さい。
起動するとワークスペースを選択するウィンドウが現れますので C:\stellaris_1day を
選択し OK してください。
Stellaris 1day Workshop – CCS 2 - 11
最初の起動時には以下のような Welcome ビューが現れます。ここではさまざまな資
料をご紹介しています。トップメニューの Help→Welcome から開けますので評価/開
発時にご活用下さい。右上の をクリックし workbench を開いてください。
また後の作業のためにデスクトップにアイコンを作っておくと起動しやすいでしょ
う。
2 - 12 Stellaris 1day Workshop – CCS
2. プロジェクトを作成します。
1)CCS のメインメニュー、File→New→CCS Project をクリックしてください。
2)Project name:フィールドに”lab2”と入力し Next をクリックしてください。 Location:フィールドが自動的に<ワークスペース>\<プロジェクト名>となる ことに注目してください。新しいプロジェクトを作成すると、同名のフォルダ がワークスペースに作成されます。
Stellaris 1day Workshop – CCS 2 - 13
3)プロジェクトタイプを選択しますがデフォルトのままでかまいません。 Next をクリックしてください。
4)依存関係のある他のプロジェクトを選択します。
まだワークスペース内に他のプロジェクトはなく、今回はシンプルな
ソフトウェアを作成しますのでそのまま Next をクリックしてください。
2 - 14 Stellaris 1day Workshop – CCS
5)プロジェクトの設定を行います。Device Variant:の右のプルダウンメニューから
使用する評価キットに搭載されている Stellaris デバイスを選択してください。
すると以下のプルダウンメニューが適した内容に変更されます。下図のように
設定されていることを確認し、Finish をクリックしてください。
6)プロジェクトが作成されると下図のようにプロジェクトビューにいま作成した
プロジェクトが現れます。
Stellaris 1day Workshop – CCS 2 - 15
3. 新規Cソースファイルを作成します。
CCS のメインメニュー、File→New→Source File をクリックしてください。すると下
図のようなウィンドウが現れます。拡張子が.c であればファイル名はどんなもので
もかまいませんが、ここでは例として lab2.c とします。Source File:フィールドに
lab2.c と入力し Finish をクリックしてください。するとプロジェクトビューのツリー
に lab2.c が追加され、エディタが現れます。
4. コードを記述します。
ここでは CCS の使い方を確認するためにプログラムとしてはあまり意味のないもの
ですが、簡単なルーチンを記述していただきます。
1)以下のコードを記述してください。
volatile unsigned long g_ulCount; unsigned long plusOne(unsigned long in) { return(++in); } void main(void) { g_ulCount = 1; while(g_ulCount){ g_ulCount = plusOne(g_ulCount); } }
2 - 16 Stellaris 1day Workshop – CCS
2)記述を加えるとエディタのファイル名の横に*がつくことに注目してください。
これはこのファイルに変更が加わり、まだセーブされていないことを示してい
ます。
すべて記述が終わりましたら をクリックしセーブしてください。
5. startup_ccs.c をプロジェクトに追加します。
割込みベクタを記述してある startup_ccs.c を StellarisWare から追加します。割込み処
理の詳細については次章で紹介しますので、ここでは「リセット処理のために必
要」とだけ覚えておいてください。
プロジェクトに既存のファイルを追加するにはプロジェクトを右クリック→Add Files to Project…をクリックします。startup_ccs.c は例えば C:\StellarisWare\boards\ek-lm3s9b92\blinky 評価キット名 など、サンプルのフォルダにありま
すので追加してください。
※ CCSv4 では既存のファイルを Add Files to Project にて追加すると、
追加したプロジェクトのフォルダ
にコピーを作ります。
Stellaris 1day Workshop – CCS 2 - 17
6. ターゲット・コンフィグレーションを作成します。
メニューから File→New→Target Configuration file
をクリックしてください。
すると下図のようなウィンドウが現れます。拡張子
が.ccxml であればファイル名はどんなものでもかま
いません。
ここでは例として TargetConfiguration.ccxml とします。
File name:フィールドに TargetConfiguration.ccxml と
入力し Finish をクリックしてください。
するとプロジェクト・ビューのツリーに
TargetConfiguration.ccxml が追加され、
ターゲット・コンフィグレーションをセットアップ
するビューが現れます。
7. ターゲット・コンフィグレーションの内容を修正します。
1)Stellaris 評価キット用に設定を行います。まず Connection プルダウンメニューか
ら”Stellaris In-Circuit Debug Interface”を選択してください。このプルダウンメニ
ューでは Emulator や Simulator の選択を行います。たとえば実機を使わず
Cortex-M3 コアのみのシミュレータにて作業を行う場合には”Texas Instruments Simulator”を選択します。このワークショップでは実機を使います。
2 - 18 Stellaris 1day Workshop – CCS
2)Device プルダウンメニューからお使いの評価キットに搭載されている Stellarisデバイスを探し、チェックボックスにチェックを入れてください。以上でター
ゲット・コンフィグレーションの設定は終了です。同じビューにある Save ボタ
ンをクリックし保存してください。
8. プロジェクトをビルドし実行可能ファイルを作成します。
プロジェクトのビルドを行うには CCS のメニュー、Project→Build Active Project(ま
たはツールバーの ボタン)をクリックします。ビルドを行い、エラーがないこ
とを確認してください。エラーがなく、実行可能ファイル lab2.out が出来上がると
下図のように”Build complete for project lab2”というメッセージが Console ビューに表
示されます。
※エラーがある場合は赤い文字でエラーの内容が Console ビューに表示されますの
で、表示された内容を参考にプログラムを修正してください。
Stellaris 1day Workshop – CCS 2 - 19
9. デバッガを起動し、作成した実行可能ファイルをターゲットにロードします。
1)作成した実行可能ファイルをターゲット上で実行させるためにデバッガを起動
し、ロードします。Stellaris 用のターゲット・コンフィグレーションではロード
を行うと自動的にチップ内蔵の Flash メモリにプログラムが書き込まれます。
Target→Debug Active Project
(またはツールバーの ボタン)
をクリックしてください。
右図のようにデバッガの起動および
プログラムのロードの進行状況を
示すウィンドウが現れます。
2)デバッガの起動およびロードが問題なく完了すると下図のように CCS のビュー
構成がデバッグ・パースペクティブにかわり、プログラムは main 関数の先頭ま
で実行したところで停止します。エディタの行の左にある マークはプログ
ラムが停止している行を示します。
2 - 20 Stellaris 1day Workshop – CCS
10. グローバル変数 g_ulCount を Watch ビューに追加します。
実行するに従い、グローバル変数 g_ulCount が変化する様子を確認するために
Watch ビューに追加します。エディタ上で g_ulCount を選択し、右クリック→Add Watch Expression をクリックしてください。
すると下図のように Watch ビューが表示され、g_ulCount の現在の値が表示されます。
Stellaris 1day Workshop – CCS 2 - 21
11. ブレークポイントを設定します。
プログラムの動作を確認するためにいったん停止させたい行へブレークポイントを
設定します。ここでは g_ulCount 変数に plusOne 関数の戻り値を代入する行にブレー
クポイントを設定してみましょう。下図のようにエディタで停止させたい行にカー
ソルを移動し、右クリック→Toggle Breakepoint をクリックしてください。
・ブレークポイントが設定されると設定
された行に マークが表示されます。
・ブレークポイントの設定/解除はエディ
タの左側( マークが現れたあたり)
をダブルクリックすることでも可能です。
11. プログラムを実行します。
2 - 22 Stellaris 1day Workshop – CCS
デバッグビューの ボタンをクリックし、プログラムを実行してください。設定
したブレークポイントの行で停止したでしょうか?ブレークポイントは、設定した
行を実行する直前で止まりますので Watch ビューにて1が代入されたことが確認で
きると思います。
12. 再度プログラムを実行します。
何回かプログラムを実行してみてください。実行のたびに pulsOne 関数が処理され、
g_ulCount 変数の値が増えていくことが確認できると思います。
13. メモリビューにて g_ulCount 変数の値を確認します。
組込みプログラミングではアドレスを直に
指定し、メモリの内容を確認したいことも
あるでしょう。ここでは g_ulCount 変数を
題材にメモリビューを使ってみます。
View→Memory
新しく表示されたメモリビュー内の”Enter location here”というフィールドに g_ulCount変数のアドレスを入力し Enter キーを押し
てください。右図のように連続したメモリ
空間のイメージで内容が表示されます。
Stellaris 1day Workshop – CCS 2 - 23
メモリビューでは表示の仕方をプルダウンメニューで変えることができます。
変数の型に合わせるなど、見やすい表示を活用してください。
14. 実行サイクル数を表示します。
Stellaris の CPU、Cortex-M3 コアの持つ機能と CCS のブレークポイント機能を組み
合わせ、実行にかかったサイクル数を表示させることができます。
1)ブレークポイントビューを表示します。
View→Breakpoints
下図のように ボタンから Count Event をクリックするとカウントする
イベント選択ウィンドウが現れます。
2)イベント選択ウィンドウから Clock Cycles を選択してください。
2 - 24 Stellaris 1day Workshop – CCS
下図のようにブレークポイントビューに Count Event の表示が追加されます。
何度か実行し、Count が増える様子を確認してください。
上図に表示されている Count Event 行を右ク
リックでプロパティを開くと右図の表示が
出ます。
”Reset Count on Run”にチェックを入れると
実行時に Count をクリアしてからサイクル数
を確認することができます。ブレークポイ
ントビューの Count Event の行を右クリック、
プロパティから下図のように”Reset Count on Run”をチェックし OK してください。何度
か実行し動作の違いを確認してください。
また単に Count 値をクリアするには Name 列の Count Event をクリックした後、同じ
行の他の部分をクリックしてください。
15. 最適化オプションを変え、サイクル数の違いを確認します。
Stellaris 1day Workshop – CCS 2 - 25
ここまで簡単なプログラムをビルドし、ロード、実行する手順を見てきましたが、
ビルドオプションはデフォルトのオプションを使用してきました。ここでは最適化
オプションを変更、ビルドし、プログラムの変化を確認します。
まずいったんデバッガを終了します。デバッガの終了はデバッガビューの ボ
タンをクリックしてください。するとデバッガ終了とともに C/C++パースペクティ
ブに戻ります。
次にビルドオプションを変更します。プロジェクトビューの lab2 プロジェクトを右
クリックし、Build Properties…を開いてください。
2 - 26 Stellaris 1day Workshop – CCS
ビルドプロパティではコード生成ツールに渡すさまざまなオプションや環境変数な
どを設定できます。ここでは下図のように Tool Settings タブの TMS470 Compiler→Basic Options から最適化オプションを変更してください。最適化オプションは、な
し<0<1<2<3 という順序でより強く最適化を行うようになります。
16. 最適化オプションの効果を確認します。
最適化オプションを変えるごとにビルド、ロード、実行しサイクル数に違いが現れ
ることを確認してください。最適化オプションを弱くするとサイクル数が増え、強
くするとサイクル数を減らすことができる様子が確認できると思います。
以上で lab2 は終了です。お疲れ様でした。時間に余裕のある方はオプション演習をご覧下さい。
Stellaris 1day Workshop – CCS 2 - 27
オプション演習
GEL ファイルの内容を確認 17. 自動的に読み込まれる GEL ファイルのパスを確認します。
ターゲット・コンフィグレーションではデバッガ起動時に自動的に読み込む GEL フ
ァイルの設定がされています。プロジェクトビューの lab2 ツリーから
TargetConfiguration.ccxml をダブルクリックしターゲット・コンフィグレーションビ
ューを開いてください。そして左下の Advanced タブをクリックするとより詳細な情
報が表示されます。さらに Stellaris の CPU、CORTEX_M3_0 をクリックすると下図
のように自動的に読み込まれる GEL ファイルのパスが表示されます。ここにユーザ
ー独自の GEL ファイルを指定することも可能です。
18. GEL ファイルの内容を確認します。
デバッガ起動時には、自動的に読み込まれている GEL ファイルの内容を表示、確認
することができます。
1)デバッガを起動します。プログラムをロードせずに、デバッガのみ起動する際
には ボタンからプルダウンメニューを開き Lanch TI Debugger をクリック
してください。
2 - 28 Stellaris 1day Workshop – CCS
2)デバッグビューの Stellaris In-Circuit Debug Interface を右クリック→Open GEL Files View をクリックしてください。
すると下図のように GEL Files ビューが表示され、たとえば lm3s9b92.gel をダブ
ルクリックするとエディタに表示されます。
Stellaris 1day Workshop – CCS 2 - 29
CCS の設定を確認 19. CCS の設定を開きます。
CCS のメインメニュー、Window→Preferences…をクリックすると CCS 全体のさまざ
まなオプションを設定できます。たとえば下図のように General→workspace ではプ
ロジェクトに変更があったとき自動的にビルドを実行させるか否かなど CCS の動作
をコントロールできます。
20. 使いやすい設定を行います。
たくさんの項目がありますので時間の許す限りご覧下さい。
オプション演習は以上です。お疲れ様でした。