Code Composer Studio CCS CD ROM Ver2?? ???????????? ?? ??? ????1

Document Sample
Code Composer Studio CCS CD ROM Ver2?? ???????????? ?? ??? ????1 Powered By Docstoc
					東京大学工学部授業「マイクロプロセッサ応用」資料                       Ver. 1.1
                                    2002/12/10 坂井修一



TI DSK (DSP Starter Kit) TMS320C6711 のプログラミング



目次



1. 概要

2. TMS320C6711 のアーキテクチャとソフトウェア

3. 手順

4. 課題




                                                          1
1.概要
  「マイクロプロセッサ応用」のソフトウェア課題として、Texas Instruments 社のディジタル
信号処理プロセッサ(Digital Signal Processor, DSP)を使った実習を行う。
  DSP とは、その名の通り、信号処理を行うコンピュータである。信号処理は、社会のあらゆる
ところで必要な情報処理であるが、ひと昔前までは時間がかかりすぎたり、装置がたいへん高価
であったりして、   (特に個人用途では)なかなか気軽に使うことができなかった。しかし、デバイ
ス技術・システム技術の進歩により、       実時間のディジタル信号処理を行うことのできる安価な DSP
が出現し、この分野は情報化社会の発展とともに飛躍的な広がりを見せている。
  DSP の用途として携帯電話、CD/MD/DVD プレイヤーやディジタル TV/カメラ/ビデオの信号処理
装置、サーボモータの制御装置、自動車やロボットの制御、カーナビ、インターネット電話やマ
ルチメディアデータのネット配信、などがあり、現代社会で私たちは、つねに数多くの DSP に囲
まれ、これらに依存して暮らしていると言える。
  DSP は、マイクロプロセッサの一種であるが、Pentium などの PC 用マイクロプロセッサと比較
すると、次のような特徴がある。
(1)組込型
       PC用の CPU のように、ユーザないし不特定のアプリケーションプログラマがプログラム
     することを前提として作られておらず、特定の機器に組み込まれて、専用の処理をするため
     に使われる。プログラムは、一度作成されると、基本的には変更されない。DSP は、コンピ
     ュータとしての基本機能を備えており、        メモリが許す限りどんなプログラムでも稼働させる
     ことができる。しかし、仮想記憶、マルチプロセスなどの機能は無いか、あってもあまり強
     くない。一方で次の(2)で述べるような機能があり、また、省電力や低コスト化への配慮が
     なされている。
 (2)実時間信号処理
       音声信号の入出力、積和計算やアドレッシング、メモリアーキテクチャ、プログラムの応
     答性を見るためのソフトウェアツールなどが強化されている。

  こうした DSP も、ここ数年で次のように進歩してきた。
(a) 2極化
     そもそも DSP といえば、積和器つきの素朴なマイコンであり、制御機構も単純で、データ
    パスだけの計算機、という感じであった。もちろん、こうした「アキュミュレータ型」の DSP
    は、今も低コスト・低消費電力の専用機として活躍している。他方、汎用レジスタをたくさ
    ん積み、 広大なメモリ空間をもつ               の
                          「RISC 型」 DSP も開発され、使われるようになっている。
                                 PC
    これは通常のマイクロプロセッサに近く、 プログラマにはプログラムしやすい構成であり、
    やや高価な(といっても Pentium 系の高性能 CPU よりは一桁以上安いが)汎用機として使わ
    れている。  「RISC 型」の DSP は、多くの有名メーカの競合するホットな技術分野となってい
    る。
(b) ソフトウェア
     昔は「DSP といえばアセンブラプログラミング」が常識であった。しかし、現在では、組
    込型システムも複雑な情報処理が要求されるようになっており、また、プログラム開発期間
    も短くなくてはならない。そのためには、高級言語のプログラミングが必須である。ありが
    たいことに、コンパイラ最適化技術の発達によって、エキスパートのアセンブラプログラミ
    ングに(それほど)見劣りしない高級言語コンパイルが可能になった。以上のような理由か
    ら、TI の DSP でも、C 言語が使われる。
     また、エディタ、デバッガ、リンカ、ランタイムカーネル、環境設定ツール、可視化ツー
    ル、などが昔より格段によくなっており、使いやすく効率的なプログラム開発環境が提供さ
    れるようになっている。



                                                        2
     「RISC 型」DSP である TMS320C6711 のプログラム開発を行う。このチップを用いるの
 ここでは、
 「汎用マイクロプロセッサに近いプログラミングが可能」であり、かつ「実時間信号処理の専
は、
門性の高い実習が可能」という、二重の利点があるからである。

2.TMS320C6711 のアーキテクチャとソフトウェア
2.1 TMS320C6711 のアーキテクチャ
  TMS320C6711 のアーキテクチャの特徴を以下に列挙する。
1) VLIW(VelociTITM)による並列処理
   4種類の機能ユニット(.L/.M/.S/.D Unit)が2セット、計8個の機能ユニットにより、8命
   令同時実行可能(図1参照)        。同時に実行する命令は、アセンブリプログラム(あるいはコン
   パイラ)が静的に決定する。




      L:加算器、S:シフト、M:乗算器、D:メモリ Load/Store、レジスタはすべて 32 ビット
                  図1 TMS3206711 のコア・データパス

2) 命令形式は、32ビットの RISC 型。演算は、レジスタどうしに限られ、メモリとのデータの
やりとりは、Load/Store のみ。詳細は、オンラインマニュアルである TMS320C6000 CPU and
Instruction Set Reference Guide を参照のこと。
3) 150MHz クロック。32bit/64bit データ。特に、単精度/倍精度小数点演算、32 ビット整数乗
   算。最大 900MFLOPS(Floating point Operations Per Second).
4) メモリ階層
4.1) 1 次命令キャッシュ:4KB、一次データキャッシュ:4KB
4.2) 2 次キャッシュ 64KB(オンチップ, 4 バンク)
    アプリケーション・プログラムにより、L2 をキャッシュまたはマップド・メモリをバンク毎
    に選択可能
4.3) アドレス空間は 4GB。
5) 16 チャネルのエンハンスト DMA
6) 割り込みセレクタにより、13 種類の割り込みから 12 個の選択優先順位を決定
7) パワーダウン・モード
8) その他、命令セットの特徴に関しては、TMS320C6000 Assembly Language Tools User's Guide
   を参照のこと。




                                                                    3
                       図2.6711-DSP ブロック図

  次に、貸し出しを行う DSK(DSP Starter Kit)ボードの特徴を列挙する。
1) 16MB SDRAM(100MHz), 128KB Flash ROM
2) 8 bit Memory mapped I/O port
3) 16 bit 音声/データコーデック(DA/AD converter)
4) ホスト PC との接続: Parallel IO (プリンタケーブル)




                           図3.C6711DSK

2.2 TMS320C6711 のソフトウェア
    TMS320C6711 の利用にあたって TI は、Code Composer Studio(CCS)(図4)と呼ばれる統合


                                                                 4
ソフトウェア環境を用意している。




                  図4.Code Composer Studio 全体像

  CCS は次のソフトウェアから成る。
(1) C, C++コンパイラ
  C(++)のプログラムを DSP のアセンブリ言語に翻訳する。このさい、通常の最適化に加えて、
  ソフトウェアのパイプライン処理、コードの変換および暗示的な実行、メモリ・アドレス複製、
  およびメモリ・アドレス依存性除去など、DSP 固有の最適化を行う。
(2) アセンブラ
  アセンブリプログラムを機械語に翻訳する。               アセンブリ言語になってから後の最適化を行う「ア
  センブリオプティマイザ」も入っている。
(3) ビジュアル・リンカ
  WindowsTM Explorer ライクなインターフェイスを利用してさまざまな機能を提供する。      プログ
  ラム・コンポーネントを多数の異なるメモリー・タイプやエリアにドラッグ・アンド・ドロップす
  る、標準デバイス・メモリー・マップのライブラリからメモリー・マップを選択する、メモリー
  割り当ての即時画像フィードバックを使って最適化可能な場所を見つける、不要なコードやデ
  ータを自動的に除去する高精度な機能によりアプリケーションのサイズを縮小する、など。
(4) エディタ
    (普通のエディタでソースプログラムなどを編集する)
(5) デバッガ
  ・ 条件ブレークポイント、ハードウェア・ブレークポイントなど、さまざまなブレークポイン
      トの設定が可能
  ・ General Extension Language(GEL)スクリプト・ファイル: 特定のブレークポイント
      がヒットすると実行
  ・ サブルーチンの選択的なステップ・イントゥ、ステップ・オーバー、ステップ・アウト機能
  ・ ProbePointTM :通常のブレークポイントとは異なり、ProbePoint をヒットした後でプログ
      ラム実行が再開され、接続されている動作(例:信号データの送信または抽出、信号の監
      視、GEL スクリプトの実行)が実行される。
(6) DSP/BIOS
    オブジェクトベース・ランタイムカーネル。タイマ割込や周期動作、統計データの収集、タ
  スクスケジューリング、など。特に実時間のインタラクティブなデバグに大変強力な道具を提
  供する。
(7) Real-Time Data Exchange (RTDXTM)
    ホスト・DSP 間のリアルタイムデータ通信機能。ターゲット・アプリケーションを停止せず
    にホスト・コンピュータと DSP 間でデータを転送する。DSP/BIOS を支える技術。




                                                          5
                        図5.Code Composer Studio の実行例



3.手順
3.1 最初にすること (1 hour)
  DSK の貸し出しを受けたら、まず、箱の中身を確認しよう。箱の中には、次のものが入ってい
る。

(1)   DSK 基板: C6711 DSP 搭載
(2)   5V 電源アダプタ
(3)   電源コード
(4)   PC 接続ケーブル(プリンタケーブルと同じ)
(5)   Code Composer Studio (CCS) CD-ROM (Ver2 など)
(6)   インストレーションガイド (英語):ハード、ソフト各1
(7)   その他

 最初に、(6)のインストールガイドを読み、PC と DSK の接続、DSK Tools のインストール、DSK
のリセットを行う。

注意.DSK 基板は、裸同然の形で袋に入っている。取り出し・格納のときも、実験中も静電気や
衝撃などによって回路や基板を傷つけることのないよう、細心の注意を払うこと。

3.2 Manuals and Tutorial (1-3 days)
  続いて、PC 上で、マニュアル類がどこにあるかを確認する。
  CCS(Ver.2)を立ち上げて、Help のプルダウンメニューを開くと、User Manual という項目があ
る。ここをクリックすると、たくさんのハイパーリンクが入ったページが現れる。ハイパーリン
クの先には、Code Composer Studio 全体, API, Compiler Assembler, Programming, DSP/BIOS,
Peripheral などに関するマニュアル(PDF 形式)がある。マニュアルはそれぞれに大部なので、印


                                                                            6
刷は肝心なところだけとし、ふだんは画面に出して使う。
 同じく Help を開くと、Tutorial があるので、まずはここから見ていく。これは、その名の通
り、Code Composer Studio のチュートリアルである。頭から順番にこれに書いてある通りのこと
を実行すると、DSK プログラム開発の実態がかなりわかるようになっている。
 「習うより慣れろ」       ということわざもある。   まずは、チュートリアルをひととおりやってみよ。

注.坂井の使っている CCS の Version は、 (やや古く)1.2.3 である。本 CCS の場合、ドキュメン
トの場所などは、上記とかなり異なる。このように、自分に配られた CCS Ver. 2 でなかった場合
でも、Tutorial と Manual 類は必ず入っているので、探してみること。

3.3 課題までの試行錯誤 (1 week)
  次に自分で簡単な問題を考え、C でプログラムし、DSK で実行する。マニュアル類は、必要に応
じてこまめに利用するとよい。
  やりかたの例として、まず、四則演算や文字列処理、ソートなどのプログラムを書いてみて、
動くことを確認してみる。次に、時間依存性のあるプログラムを書いてみて、トレースやデバグ
のやりかた、  実時間性を保証するやりかた、 入出力のやりかた、 DPS/BIOS の使い方、などを学ぶ。
  あるいは、下に記した参考書に書いてあるプログラムを実行してみるのもよい。ソースを丸ま
まコピーしたとしても、実作業上で学ぶことはある。さらにソースを書き換えて、参考書のプロ
グラムとは違ったものを作るよう試みればよい。

注.時間のない人はいきなり課題にチャレンジしてもよいが、さまざまに試行錯誤してみるのが
ものごとを広く深く学ぶためには必要である。要するに「よく遊べ」ということ。

[参考書]瀬谷啓介「DSP C プログラミング入門」技術評論社




                                                          7
4.課題
  下の2題の両方に回答せよ。

課題1 DSKによるボイスチェンジャー
(1) ボイスチェンジャーの C プログラムを書き、これを DSK で実行させて、結果を評価せよ。た
だし、ボイスチェンジャーとは、入力された音声信号を変調する道具を指す。
  ボイスチェンジャーの作り方の手順として、(a)音声信号の入力(AD 変換)、(b)IIR フィルタを
使ったサイン波の生成、(c)(a)と(b)の掛け合わせ、という手順を踏むのが簡単である(IIR フィ
ルタを使ってサイン波を生成するやりかたは、各自調査せよ)                  。
  このように、周波数を変えるアルゴリズム自体は単純なものであるが、DSP/BIOS の使い方など
によって、プログラムはかなり異なったものとなる。課題が一応こなせた諸君は、できるだけ独
自性の高いプログラミングに挑戦せよ。
(2) (1)のアセンブラのソースを見て、DSP らしい最適化や並列処理が施されている場所を指摘せ
よ。もしも、さらなる最適化が可能であれば、これを行え。必要に応じて、オンラインマニュア
ルとして提供されている TMS320C6000 Assembly Language Tools User's Guide、TMS320C6000 CPU
and Instruction Set Reference Guide を参照すること(以下同様)  。



課題2 自由課題
(1) 自分で興味深い課題を作り、C プログラムを書き、これを DSK で実行させて、結果を評価せ
よ。ただし、実時間的な信号処理を伴う課題であること。
(2) (1)のアセンブラのソースを見て、DSP らしい最適化や並列処理が施されている場所を指摘せ
よ。もしも、さらなる最適化が可能であれば、これを行え。

レポートについて
  レポートは読めるものを書くこと
(1) プログラムの処理の概略、設計の方針。
(2) ソースコード(コメントを入れること)
(3) 結果
(4) 考察、問題点
(5) その他のコメント、提案、気づいたこと、または期待した成果が得られなかった場合の問題
分析などを記述すること。
(6) 参考書などのプログラムをもとにして作成するのはかまわないが、その場合、オリジナルの
出典を明らかにし、自分が工夫した点を明記すること。他の学生(昨年度含む)のプログラムを
参照してもよいが、自分独自の改良を施すこと。
  レポートは、2月15日までに事務室宛に提出のこと。なお、所属する専攻名、学生証番号、
氏名などの他に提出日を表紙に入れること。




                                                                          8

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:28
posted:5/28/2012
language:Japanese
pages:8