Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
ハードウェア実験
組み込みシステム入門
第2回
2010年 9月30日
開発手順を学ぶ、慣れる
Hardware Experiments for Embedded Systems on XMOS 2
今日の内容
XK-1 Desktop ToolXK-1 Desktop Tool を使って、2つのサンプルを使って、2つのサンプル
プログラムを実行する。プログラムを実行する。
XK-1XK-1のプログラム開発手順を理解する。のプログラム開発手順を理解する。
ポートの概念を理解する。ポートの概念を理解する。
timertimerの利用を学ぶ。の利用を学ぶ。
Hardware Experiments for Embedded Systems on XMOS 3
Tutorialガイドを表示させる
[Help]→[Tutorials]→[XK-1 Tutorial][Help]→[Tutorials]→[XK-1 Tutorial]
の順にクリックします。の順にクリックします。
画面の右端に、画面の右端に、 TutorialTutorialが表示されます。が表示されます。
Hardware Experiments for Embedded Systems on XMOS 4
前回出したヒント
必要な操作は、必要な操作は、全て画面に表示されています全て画面に表示されています。。
(但し、英語ですが・・・)
ここに書かれた手順通り操作すれば結果が出ます。
Hardware Experiments for Embedded Systems on XMOS 5
実を言えば・・・
今日の課題では、1行もプログラムを入力す今日の課題では、1行もプログラムを入力す
る必要がありません。る必要がありません。
すべて、自動で合成してもらえます。
TutorialTutorialに従って操作しながら、プロジェクに従って操作しながら、プロジェク
トの作り方を学びましょう。トの作り方を学びましょう。
[Illuminate an LED]を選びます。
最初にやることは、(ファイルを格納するため最初にやることは、(ファイルを格納するため
の)の) C/XCC/XCのプロジェクトを作成すること、とのプロジェクトを作成すること、と
書かれています。書かれています。
[File]→[New]→[XC Project][File]→[New]→[XC Project]
とクリックして下さい。とクリックして下さい。
Hardware Experiments for Embedded Systems on XMOS 6
LEDを点灯させるプロジェクト
開いた窓で、開いた窓で、
[Executable]→[XK-1 LED [Executable]→[XK-1 LED Project]Project] を選べ、を選べ、
まず、まず、 PlatformPlatform としてとして [XK-1][XK-1]を選び、次にを選び、次に XK-1 LED XK-1 LED ProjectProject を選びます。を選びます。
最後にプロジェクト名(ここでは、最後にプロジェクト名(ここでは、
Step1)Step1) を入力して、を入力して、 [Finish][Finish] しします。ます。
➢指示に従ってプロジェクト作成の窓を開きます。
Hardware Experiments for Embedded Systems on XMOS 7
xk1-led.xcの生成
画面左の画面左の Project ExplorerProject Explorerに、に、
Step1Step1 と名前をつけたプロジェクトと名前をつけたプロジェクト
が生成されています。が生成されています。
ここの、ここの、 SrcSrcにに xk1-led.xcxk1-led.xcが生成が生成
されました。されました。
tutorialtutorial資料資料 (xk1tut_jp.pdf)(xk1tut_jp.pdf)のの
P3P3~~ P4P4のプログラムです。のプログラムです。
ガイドの次の内容は、「プログラムガイドの次の内容は、「プログラム
コードをじっくり読もう」です。コードをじっくり読もう」です。
Hardware Experiments for Embedded Systems on XMOS 8
ポートとハードウェアへの値出力
out port led = XS1_PORT_4F;out port led = XS1_PORT_4F;
の記述について、の記述について、 tutorialtutorialとと DesktopToolDesktopToolののCheat SheetCheat Sheetの両方で解説があります。の両方で解説があります。portportというのは、ハードウェアへのデータの受け渡しというのは、ハードウェアへのデータの受け渡しを行う(通常は、特殊なレジスタの)場所を指を行う(通常は、特殊なレジスタの)場所を指し、し、 ledledという変数に、という変数に、 LEDLEDが接続されたポートのが接続されたポートのアアドレスドレスを代入しています。を代入しています。outoutなので、出力用だとわかります。なので、出力用だとわかります。ポートのアドレスにデータを書き込むと、ハードウェポートのアドレスにデータを書き込むと、ハードウェアにそのデータが転送されます。アにそのデータが転送されます。1というデータを転送している記述が、次の行です。1というデータを転送している記述が、次の行です。
led <: 0x1;led <: 0x1;
<:<:の右に書かれた値が、左側のポートを経由しての右に書かれた値が、左側のポートを経由してハーハードウェアに出力ドウェアに出力されます。されます。
Hardware Experiments for Embedded Systems on XMOS 9
ビルドの方法
cheat Sheetcheat Sheet では、次のように説明していでは、次のように説明してい
ます。ます。
「実行ファイルを生成するためにプログ
ラムをビルドします。」
プロジェクトを選択し、 (ハンマーの )ボタンをクリックすると、生成されます。
まず、プロジェクト名をクリックし、次にハンマーまず、プロジェクト名をクリックし、次にハンマー
(ビルド)ボタンをクリックします。(ビルド)ボタンをクリックします。
BinariesBinariesに拡張子がに拡張子が .xe.xeのファイルが生成さのファイルが生成さ
れます。れます。
Hardware Experiments for Embedded Systems on XMOS 10
実行の方法
まず、バイナリファイルを選び、まず、バイナリファイルを選び、▶▶ボタンを押ボタンを押
します。します。
Run AsRun Asのポップアップで、のポップアップで、 [XCore [XCore Application]Application] を選んでを選んで [OK][OK] を押します。を押します。
LEDLEDが一つ点灯すればが一つ点灯すれば OKOKです。です。
Hardware Experiments for Embedded Systems on XMOS 11
PORTのアドレスと値
ハードウェアのハードウェアの PortPortアドレスは、回路図から決まり、固アドレスは、回路図から決まり、固
定の値です。定の値です。
このサンプルでは、このサンプルでは、
XS1_PORT_4F
として定義されています。
出力値は、1バイトです。
ポートは1か所ですが、
1バイト=4ビット
分の情報を設定できます。
Hardware Experiments for Embedded Systems on XMOS 12
報告課題(1)
led <: 0x1;led <: 0x1;
の右辺の値をの右辺の値を 0x10x1~~ 0xF0xF まで変まで変
化させ、動作を比較して下さい。化させ、動作を比較して下さい。
動作を文章や写真などで報告して動作を文章や写真などで報告して
下さい。下さい。
(C評価の条件とします。)
Hardware Experiments for Embedded Systems on XMOS 13
LEDの点滅
次の課題に移ります。次の課題に移ります。
TutorialTutorialのの [Flash an LED][Flash an LED] をを
辿ります。辿ります。
[Start working on this task][Start working on this task]をクリックして下さい。をクリックして下さい。
次の課題では、次の課題では、 TimerTimer を使いまを使いま
す。す。
tutorialtutorial資料資料 (xk1tut_jp.pdf)(xk1tut_jp.pdf)のの P4P4~~ P5P5のプログラムです。のプログラムです。
Hardware Experiments for Embedded Systems on XMOS 14
プログラムの生成
開いた窓で、開いた窓で、
[Executable]→[XK-1 [Executable]→[XK-1 LED Project]LED Project] を選べ、を選べ、
まず、まず、 PlatformPlatform としてとして [XK-[XK-1]1] を選び、次にを選び、次に XK-1 XK-1 Flashing LED ProjectFlashing LED Project をを選びます。選びます。
最後にプロジェクト名(ここで最後にプロジェクト名(ここで
は、は、 Step2)Step2) を入力して、を入力して、
[Finish][Finish] します。します。
➢指示に従ってプロジェクト作成の窓を開きます。
Hardware Experiments for Embedded Systems on XMOS 15
ビルドと実行の流れを覚える
最初の課題と同じ手順でビルドし、実行します。最初の課題と同じ手順でビルドし、実行します。
プロジェクト名をクリックし、 [ハンマー ]でビルド
実行ファイル名をクリックし、▶をクリック、Run Asで [XCore Application]を選び、OK
Hardware Experiments for Embedded Systems on XMOS 16
xk1-flashing-led.xc
今回のソースコードには、今回のソースコードには、 timertimerが登場した。が登場した。
二つの「慣用表現」を、覚えてしま二つの「慣用表現」を、覚えてしま
おう。おう。
①①変数変数 ttに現在時刻を記録する。に現在時刻を記録する。
timer tmr;timer tmr; int t;int t; tmr :> t;tmr :> t;
②②一定時間待って次の処理に進む一定時間待って次の処理に進む
t += FLASH_PERIOD;t += FLASH_PERIOD; tmr when timerafter(t) :> void;tmr when timerafter(t) :> void;
Hardware Experiments for Embedded Systems on XMOS 17
報告課題(2)
xk1-flashing-led.xcxk1-flashing-led.xcのコードを修正して、 のコードを修正して、
LEDLEDの点滅の周期を変えて下さい。の点滅の周期を変えて下さい。
1Hzの場合はどうするか。●(1秒間に1回、点いて消える)
2Hzの場合は?●(1秒間に2回、点いて消える)
動作を文章や写真などで報告して下さい。動作を文章や写真などで報告して下さい。
(C評価の条件とします。)
報告課題(1)と(2)の両方が報告され、報告課報告課題(1)と(2)の両方が報告され、報告課
題としての書式を満たしているものを、題としての書式を満たしているものを、 BB評価評価
以上とします。以上とします。
Hardware Experiments for Embedded Systems on XMOS 18
発展課題
4つの4つの LED(Light Emitting Diode;LED(Light Emitting Diode;発光ダイ発光ダイ
オード)が、一つのポートでアクセスされていまオード)が、一つのポートでアクセスされていま
す。す。
ポートに1バイトの値を書き込むと、それによっポートに1バイトの値を書き込むと、それによっ
てて LEDLEDの点灯状態が変化しますの点灯状態が変化します
ハードウェア的に、「ポート」に書き込まれた1バハードウェア的に、「ポート」に書き込まれた1バ
イトの数値が、4本の信号線とどんな関係にあるイトの数値が、4本の信号線とどんな関係にある
か、実験(報告課題1)で観察した結果から推測か、実験(報告課題1)で観察した結果から推測
して、説明しなさい。して、説明しなさい。
(( AA評価以上の評価以上の
条件とします。)条件とします。)
port XS1_PORT_4F
1 byteの値
Hardware Experiments for Embedded Systems on XMOS 19
優れたレポートの条件
「実験の目的」が明記されていること。「実験の目的」が明記されていること。
今日のスライドの2ページに書かれています。
「実験機材」が明記されていること「実験機材」が明記されていること
わかりきった内容でも、記されていることが大切
ソフトウェアの場合は、バージョンも明記する。
ハードウェアの場合は、製造番号も記す。
–ボードの裏を見て下さい。
「実験手順」が記されていること。「実験手順」が記されていること。
わかりきった内容でも、記されていることが大切
●(ただ、「簡単に」で構わない = 簡潔に!、要領よく)
「ソースコード」と「動作結果」が記されていること。「ソースコード」と「動作結果」が記されていること。
ここが中心だが、これだけではダメ。
「考察」において、何がわかったか記されている。「考察」において、何がわかったか記されている。
何をどう考えて、そのプログラムを書いたか!
「感想」があることが望ましい。(五感をフルに活かす)「感想」があることが望ましい。(五感をフルに活かす)
Hardware Experiments for Embedded Systems on XMOS 20
次回の予告
次回は、別のサンプルプログラム(二つ)を実行させ次回は、別のサンプルプログラム(二つ)を実行させ
て、動作させながら、て、動作させながら、 XCXCのプログラム言語の文法のプログラム言語の文法
的な説明を行います。的な説明を行います。
while, select/case, if/elsewhile, select/case, if/else などのなどの XCXCの文法をの文法を
学びます。学びます。
LEDLEDへの出力だけではなく、ボタンの入力を学びまへの出力だけではなく、ボタンの入力を学びま
す。す。
並列プログラミング(マルチスレッド)の書き方を導入並列プログラミング(マルチスレッド)の書き方を導入
します。します。