Microsoft PowerPoint - dsp12_2006.ppt



Similar documents
1. 業 務 概 要 貨 物 情 報 登 録 済 の 貨 物 に 対 して システムを 介 さずに 行 われた 税 関 手 続 きについて 税 関 が 許 可 承 認 等 を 行 った 旨 を 登 録 する また システムで 行 われた 以 下 の 税 関 手 続 き( 以 下 輸 出 申 告 等

4 参 加 資 格 要 件 本 提 案 への 参 加 予 定 者 は 以 下 の 条 件 を 全 て 満 たすこと 1 地 方 自 治 法 施 行 令 ( 昭 和 22 年 政 令 第 16 号 ) 第 167 条 の4 第 1 項 各 号 の 規 定 に 該 当 しない 者 であること 2 会 社

新 生産管理システム ご提案書 2002年10月15日 ムラテック情報システム株式会社

住み慣れたこの町で最期まで 安心して暮らすために

~ 目 次 ~ 1. 履 修 登 録 のながれ 1 2. 利 用 可 能 な 機 能 について 2 3.Web 履 修 登 録 画 面 へのログイン ログアウト 方 法 3 4. 予 備 登 録 ( 定 員 設 定 科 目 の 履 修 ) (1) 予 備 登 録 5 (2) 予 備 登 録 状 況

パソコンバンクWeb21 操作マニュアル[導入・事前設定編]

新 規 団 体 登 録 ボタンをクリック

文科省様式3-2集計オプションマニュアル


第2回 制度設計専門会合 事務局提出資料

2. ど の 様 な 経 緯 で 発 覚 し た の か ま た 遡 っ た の を 昨 年 4 月 ま で と し た の は 何 故 か 明 ら か に す る こ と 回 答 3 月 17 日 に 実 施 し た ダ イ ヤ 改 正 で 静 岡 車 両 区 の 構 内 運 転 が 静 岡 運

『<みずほ>でんさいネットサービス』操作マニュアル

R4財務対応障害一覧

スライド 1

Microsoft Word - ML_ListManager_10j.doc

伝送通信ソフト(都道府県・市町村版)マニュアル

-2-

ができます 4. 対 象 取 引 の 範 囲 第 1 項 のポイント 付 与 の 具 体 的 な 条 件 対 象 取 引 自 体 の 条 件 は 各 加 盟 店 が 定 めます 5.ポイントサービスの 利 用 終 了 その 他 いかなる 理 由 によっても 付 与 されたポイントを 換 金 すること

目 次. WEB メールへのログイン.... メール 送 信 手 順.... メール 受 信 手 順 アドレス 帳 の 操 作 手 順 フォルダーの 操 作 手 順 メール 発 信 者 登 録 署 名 登 録 手 順 基 本 的 な 設 定

< F2D926E88E6895E977089DB81608E528CFB8CA78C788E4082CC8D71>

Microsoft Word - 全国エリアマネジメントネットワーク規約.docx

る 第 三 者 機 関 情 報 保 護 関 係 認 証 プライバシーマーク ISO27001 ISMS TRUSTe 等 の 写 しを 同 封 のうえ 持 参 又 は 郵 送 とする 但 し 郵 送 による 場 合 は 書 留 郵 便 とし 同 日 同 時 刻 必 着 とする 提 出 場 所 は 上

あいち電子調達共同システム

<はじめに> この 手 順 書 では 社 労 夢 を 用 いてe-Govの 社 会 保 険 様 式 記 入 方 式 の 一 括 申 請 の 手 順 について 説 明 させていただきます ⅰ 氏 名 変 更 届 2ページから ⅱ-1 被 扶 養 者 ( 異 動 ) 届 3ページから ⅱ-2 3 第 号

SoftBank 301Z 取扱説明書

目 次 1. ログイン/ログアウト 1.1 ログインする p ログアウトする p.3 2. 受 講 一 覧 画 面 p.4 3. 授 業 ページの 閲 覧 3.1 授 業 ページへの 遷 移 p 授 業 資 料 を IT s class.からダウンロードする p

Transcription:

第 12 回 信 号 処 理 演 習 割 り 込 み 処 理 プログラミング 教 官 : 小 澤 助 教 授 渡 邉 ( 非 常 勤 講 師 ) 2007/01/25

本 日 の 予 定 ポーリングと 割 り 込 み 割 り 込 み 処 理 の 仕 組 み 割 り 込 み 処 理 による アナログループバックの 作 成 ボイスチェンジャーの 作 成 2

ポーリング (Polling) 目 的 ある 監 視 対 象 X (レジスタや 変 数 など) の 値 が 変 化 したら 教 えてほしい 例 : 電 話 がかかってきたら( 呼 び 出 しの 電 波 が 届 いたら) 教 えてほしい (1) X の 値 が 期 待 する 値 になったかどうか 調 べる (2) もし 期 待 する 値 でないならば (1) に 戻 る while ( X!= 10 ) ; X の 値 が 期 待 する 値 になるまで, 一 定 の 判 断 ルーチンを 繰 り 返 し 実 行 する 処 理 のこと 期 待 値 になるまでの 間,CPU は 他 の 処 理 ができない 3

割 り 込 み (Interrupt) 目 的 ある 監 視 対 象 X (レジスタや 変 数 など) の 値 が 変 化 したら 教 えてほしい 例 : 電 話 がかかってきたら( 呼 び 出 しの 電 波 が 届 いたら) 教 えてほしい (1) 別 の 単 純 な 回 路 A に X を 監 視 させ,CPU には 他 の 処 理 をさせておく (2) 回 路 A は X の 値 に 変 化 があると,CPU に 通 知 する( 割 り 込 み 信 号 を 送 る) (3) 割 り 込 み 信 号 を 受 け 取 った CPU は,それまで 実 行 していた 処 理 を 中 断 し, 割 り 込 みサービスルーチン (ISR) と 呼 ばれる 関 数 を 実 行 する 4

ポーリングによる ALB ( 第 11 回 のプログラム) through_polling.c void main() { while (1) /* Endless loop */ } { xn = McBSP0ReadRdy(); /* input */ yn = xn & 0xFFFE; /* Remove LSB of data */ McBSP0Write(yn); /* output */ } DSK_polling.c short McBSP0ReadRdy() { while ( (*(v_short *)McBSP0_SPCR & 0x2)!= 0x2); return (*(v_short *)McBSP0_DRR); } データが 受 信 されるまで 待 ち 続 ける その 間, 他 の 処 理 を 実 行 することはできない 5

ポーリングの 問 題 点 1つの 監 視 対 象 の 値 を 調 べ 続 けるので, 他 の 仕 事 を することができない 例 えば... メールの 作 成 中 に 電 話 を 受 けることができない ファイルのダウンロード 中 にユーザがそれを 停 止 できない CPU パワーを 無 駄 に 消 費 電 力 を 無 駄 に 消 費 監 視 のような 単 純 な 仕 事 は,CPU のような 高 機 能 な IC ではなく,もっと 単 純 で 低 消 費 電 力 の IC に 任 せるべき 6

割 り 込 み 処 理 による ALB プロジェクト ALB_Intrを 新 規 作 成 以 下 のソースファイル 群 を ti myprojects ALB_Intr に 保 存 せよ DSK_polling.c: 初 期 化,アナログ 入 出 力 用 関 数 DSK_intr.c: 割 り 込 み 処 理 用 関 数 through_led_int.c:main 関 数 vec_reset_int4_14.asm: 割 り 込 みベクタテーブルを 定 義 c6x11dsk.h(dskヘッダファイル) link.cmd (Helloプロジェクトのものと 同 じ) < 参 考 > 教 科 書 3.3 割 り 込 みを 使 うプログラミング p.46 B.1.7 割 り 込 み p.273 7

プロジェクト ALB_Intr プロジェクトには 以 下 のファイルを 登 録 すること C ソースファイル through_led_int.c 割 り 込 みベクタテーブル vec_reset_int4_14.asm C6711 用 ライブラリファイル C: ti c6000 cgtools lib rts6200.lib リンカコマンドファイル link.cmd コンパイル&(エラー 修 正 )&ロード& 実 行 せよ 8

動 作 確 認 同 時 に 複 数 の 処 理 が 実 行 されていることを 確 認 せよ 処 理 1:マイクから 入 力 した 音 声 が,スピーカから 出 力 される 処 理 2:ボード 上 の LED が 点 滅 する 例 えば, 携 帯 電 話 で 通 話 中 にメール 受 信 を 通 知 するよ うなイメージ 9

割 り 込 みの 流 れ (p.274, 図 B.10) ユーザが 許 可 を 与 える 必 要 がある 割 り 込 み 要 因 が 発 生 割 り 込 み 要 因 を CPU 割 り 込 み INT4 ~ 12 に 変 換 INT4 ~ 12 に 対 応 するビットが 1 に ( 記 録 係 ) すべての 割 り 込 みの 許 可 / 不 許 可 フラグ ( 大 元 締 ) 個 別 の 割 り 込 み (INT4~15) の 許 可 / 不 許 可 フラグ マスカブル 割 り 込 みの 許 可 / 不 許 可 フラグ ( 子 元 締 ) 10

割 り 込 み 要 因 (p.276, 表 B.5) 割 り 込 み 要 因 番 号 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 割 り 込 み 要 因 の 説 明 ホストポートのホストからの 割 り 込 み タイマ0 割 り 込 み タイマ1 割 り 込 み EMIF SDRAM タイマ 割 り 込 み 外 部 割 込 みピン4 外 部 割 込 みピン5 外 部 割 込 みピン6 外 部 割 込 みピン7 EDMA (0 ~ 15) 割 り 込 み 予 約 予 約 予 約 McBSP0 送 信 割 り 込 み McBSP0 受 信 割 り 込 み McBSP1 送 信 割 り 込 み McBSP1 受 信 割 り 込 み 一 定 時 間 毎 に 発 生 音 声 が 入 力 されると 発 生 11

割 り 込 み 要 因 を CPU 割 り 込 みに 対 応 づける 割 り 込 み 要 因 番 号 割 り 込 み 要 因 の 説 明 CPU 割 り 込 み 0xD McBSP0 受 信 割 り 込 み INT4 0x1 タイマ0 割 り 込 み INT14 through_led_int.c 内 void main() { : InterSetIER_IMUX(0xD, 4); InterSetIER_IMUX(0x1, 14); : 割 り 込 み 要 因 を CPU 割 り 込 みに 対 応 付 け 12

ALB_Intr の main 関 数 void main() { InitDSK(cach_bk3); /* Initialize DSK, Cashe size: 48 KByte */ IntrClearFR(); /* Clear all pending interrupts */ TimerSetStart(tm_ch0, 37500); /* period = 1 ms */ count = 0; tmp = 0x07000000; *(u_v_int *)IO_PORT = tmp; /* trun off LEDs */ IntrSetIER_IMUX(0xD, 4); /* Assign RINT0 to INT4 and NMIE & IER enable */ IntrSetIER_IMUX(0x1, 14); /* Assign TINT0 to INT14 and NMIE & IER enable */ IntrGEnable(); /* GIE: Global interrupt enable */ } while(1) {} /* Endless loop */ 注 目! 割 り 込 み 要 因 の 対 応 づけ 13

割 り 込 み 要 因 が 発 生 すると 割 り 込 みサービスルーチン(ISR)が 実 行 される through_led_int.c 内 // McBSP0 へデータが 届 くと(INT4), 呼 び 出 される 関 数 interrupt void McBSP0_RX_ISR() { xn = McBSP0Read(); /* input */ yn = xn & 0xFFFE; /* Remove LSB of data */ McBSP0Write(yn); /* output */ } 14

割 り 込 み 要 因 が 発 生 すると through_led_int.c 内 // LEDを 点 滅 させる 関 数 (200msおき) interrupt void Timer0_ISR() { count++; /* count up to 199 */ if (count>=199) { tmp = tmp - 0x01000000; *(u_v_int *)IO_PORT = tmp; count = 0; } } 割 り 込 み INT4, INT14 が 発 生 したときに,どの ISR を 呼 び 出 すのか? その 対 応 関 係 を 定 義 しているのが 割 り 込 みベクタテーブル vec_reset_int4_14.asm 15

.sect "vectors".ref _c_int00 ; C entry point.ref _McBSP0_RX_ISR ; Entry point of McBSP0 RX intr. service routine.ref _Timer0_ISR ; Entry point of Timer0 intr. service routine RESET: ; reset vector: address = 0x00000000 MVKL _c_int00,b0 ; B0: start address of _c_int00 MVKH _c_int00,b0 B B0 ; branch to address pointed by B0 NOP NOP NOP NOP NOP.space 0x20*3 ; Reserve 0x60 bytes INT4: ; INT4 vector: address = 0x00000080 STW A0,*B15--[1] ; push A0 MVKL _McBSP0_RX_ISR,A0 ; A0: start address of _McBSP0_RX_ISR MVKH _McBSP0_RX_ISR,A0 B A0 ; branch to McBSP0 RX intr. service routine LDW *++B15[1],A0 ; pop A0 NOP NOP NOP 2.space 0x20*9 ; Reserve 0x180 bytes INT14: ; INT14 vector: address = 0x000001C0 STW A0,*B15--[1] ; push A0 MVKL _Timer0_ISR,A0 ; A0: start address of _Timer0_ISR MVKH _Timer0_ISR,A0 B A0 ; branch to Timer0 intr. service routine LDW *++B15[1],A0 ; pop A0 NOP NOP NOP 2

本 日 の 課 題 プログラムの 理 解 AD/DAを 行 う 関 数 内 で 信 号 処 理 を 行 わせる 割 り 込 みによるボイスチェンジャープログラムを 作 成 440Hz の 正 弦 波 を 掛 け 合 わせてみよ 100Hz の 正 弦 波 を 掛 け 合 わせてみよ 1000Hz の 正 弦 波 を 掛 け 合 わせてみよ 17

レポート 課 題 C 言 語 の Signal 関 数 について 調 べ,A4 1 枚 にまとめよ.OS を 明 記 すること. 信 号 処 理 テキスト p.124 図 7.1 を 他 者 に 説 明 するつもりで 解 説 せよ(A4,1 枚 ) 時 間 波 形 の 特 徴 変 換 名, 変 換 式 スペクトルの 特 徴 18