ニケ・ボード ソフトウェア設計仕様書
Nike Board Project
ソフトウェア設計仕様書
Rev.1.00 02/04/2010
ニケ・ボード ソフトウェア設計仕様書
更新履歴
版数 リリース日 担当者 説明 備考
ニケ・ボード ソフトウェア設計仕様書
目次
1 概要... 5 1.1 方針... 5 1.2 OSについて ... 5 1.2.1 フリースケール・セミコンダクタ社 MQXの概要... 5 1.3 システムの概略説明... 7 1.3.1 ハードウェア概要... 7 1.3.2 ソフトウェア概要... 7 1.3.3 ブートローダー・ソフトウェア... 7 1.3.4 ユーザー・プログラム・ファームウェア... 8 1.4 ソフトウェア開発対象... 8 1.5 開発環境... 9 1.5.1 CodeWarror開発環境について ... 9 1.6 参考資料... 10 2 ハードウェア構成... 11 2.1 MCU... 11 2.1.1 概略仕様... 12 2.1.2 採用理由... 12 2.2 アナログ部... 13 2.2.1 外部A/Dコンバーター(AD7652) ... 13 2.2.2 外部D/Aコンバーター(AD5546) ... 14 2.2.3 3 軸加速度センサ (MMA7361L / ADXL335)... 14 2.2.4 温度センサ(TMP36) ... 17 2.2.5 PCM(相変化メモリ) ... 17 2.2.6 インターフェイス部... 18 2.2.7 電源部... 18 3 ソフトウェア構成... 19 3.1 ブート・ローダー・ソフトウェア... 20 3.1.1 主な機能... 20ニケ・ボード ソフトウェア設計仕様書 4.2.1 関連ファイル... 36 4.2.2 エフェクト処理... 36 4.2.3 DEFINE定義 ... 39 4.3 ユーザーインターフェイスモジュール... 40 4.4 MFSモジュール ... 41 4.5 センサーモジュール... 42 4.6 シェル・モジュール... 44 4.7 その他... 45 5 フォルダー構成説明 ... 46 5.1 フォルダ構成説明... 46 5.1.1 ニケ・プロジェクト プラットフォーム用 プロジェクトファイル ... 46 5.1.2 ニケ・プロジェクト アプリケーション用 プロジェクトファイル ... 47 5.2 ソースファイルの場所について... 47
ニケ・ボード ソフトウェア設計仕様書
1 概要
本書では、ソフトウェアの設計概要について 説明します。1.1
方針
開発は実質約2 ヶ月と短期であるため、下記の点に重点をおきました。 ドライバは、アプリケーションの負荷がかからない設計。 使用できそうなサンプルを採用するにあたり サンプルの動作をよく理解し、問題の 部分は、改良をすることを基本とします。(決して、そのままわからない状態で 使用 しない。) ソースは、基本OPEN とします。1.2
OSについて
フリースケール・セミコンダクタ社 MQX を採用します。採用の理由として、 サンプルが多いこと 使用ライセンスは、フリーであること USB スタックや、ファイルシステムを持っていること の3点です。Freesacle MQX の概要について説明します。 1.2.1 フリースケール・セミコンダクタ社 MQXの概要 フリースケール・セミコンダクタ社MQX について概要を説明します。 MQX はフリースケール・セミコンダクタ社が提供している OS で、シンプルな構造の OS に なります。また、MQX ライセンスはフリーです。(サポートライセンスは、費用が発生しま すので、ご注意ください。) フリースケール・セミコンダクタ社MQX が提供しているソリューションは、下記です。 Freescale MQX Real-Time TCP/IP Communication Suite (RTCS)データリンクからFTP、Telnet、DHCP、DNS サーバーとクライアントのようなア プリケーション層とSNMP までクライアントにわたる 豊富な スタンダード プロ
ニケ・ボード ソフトウェア設計仕様書
Freescale MQX File System (MFS)
RTCS に含まれるマス・ストレージデバイス(USB またはシリアルプロトコルによ って)、RAM ディスク、または FTP サーバで使用される MS-DOS 対応 FAT ファイ ルシステムを搭載しています。
デスクトップPCファイルシステムの様に、それは長いファイル名、複数のディ スクボリュームとディレクトリ処理もサポートします。それも、HTTP サーバのた めにTrivial Files System(TFS)機能も搭載しています。
Freescale MQX USB Host/Device
Freescale MQX USB Host/Device は、1.1 と 2.0 のスタンダードとロー・スピード (LS:1.5Mb/s)、フル・スピード(FS:12Mb/s)とハイ・スピード(HS:480Mb/s) コミュニケーションに対応しています。
USB スタックは Freescale MQX RTOS と MFS に完全に溶け込んで、いろいろなク ラスドライバーも搭載しています。
Third Party Pre-Integrated Software for Freescale MQX Software Solutions
Third Party Pre-Integrated Software for Freescale MQX Software Solutions は、国際 的なサービスとソリューションを提供することを約束する世界的なパートナー専 門知識のネットワークによってサポートされます。
ソリューションとしては、例えばセキュリティ、インダストリアル プロトコル (CAN、1588、PROFINET その他…)、そして、グラフィックプラグイン。)など Freescale MQX Design and Development Tools Freescale MQX™ Design and
Development Tools
Freescale MQX RTOS Task-Aware Debugging 機能は CodeWarrior と IAR デバッガー に接続可能です。そして、ローコストで、完結した製品品質を改善する強力な組 み込み用 デバッギング環境を提供します。
詳細は、下記のHP を参照してください。
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MQX&parentCode=M CF5225X&fpsp=1&nodeId=0162468rH3YTLC00M95448
ニケ・ボード ソフトウェア設計仕様書
1.3
システムの概略説明
1.3.1 ハードウェア概要 本システムでは、下記のハードウェアブロック図のハードを 提供し、下記の機能を実現し ます。 ADC よりアナログ信号の 16bit 長の量子データを取得する機能 DAC より 16bit 長の量子データをアナログ信号へ変換後出力する PCM メモリへのデータの READ/WRITE 機能 傾きなどを計測する3 軸加速度センサ 温度を計測する温度センサ USB のホスト及びデバイス機能Avnet 製 FPGA ボードと接続する拡張 I/F 2 つの LED 点灯/消灯する機能
2 つの SW を検出する機能
Figure 1 ハードウェア・ブロック図 1.3.2 ソフトウェア概要
ニケ・ボード ソフトウェア設計仕様書 注意事項:ユーザー・プログラム・ファームウェア・アップデート機能で ブートローダー・ ソフトウェアの書換えは、できません。ブートローダー・ソフトウェアの書換えは、JTAG 又はBDM ツールで 行うことになります。 1.3.4 ユーザー・プログラム・ファームウェア ユーザー・プログラム・ファームウェアは、本システムのメインとなるソフトウェアです。 今回はユーザー・プログラム・ファームウェアは、X-FEST 用のデモプログラムを実装しま す。 ブートローダー・ソフトウェアのユーザー・プログラム・ファームウェア・アップデート 機能を使用することで、ユーザー・プログラム・ファームウェアの書換えが行うことがで きます。 ユーザー・プログラム ファームウエアの起動 SW SW=OFF SW=ON 初期設定 ブートローダ・プログラム の起動 電源 ON Figure 2 ブートローダー・フローチャート
1.4
ソフトウェア開発対象
ソフトウェアの開発対象は、下記のモジュールです。 ブートローダーソフトウェア ハードウェア動作テスト(ドライバ、ミドルウェア) X-FEST 用のデモプログラムニケ・ボード ソフトウェア設計仕様書
1.5
開発環境
本開発で使用する開発環境は、以下のツールを使用します。 統合開発環境:CodeWarrior for ColdFire Architectures v7.1
USB マルチリンク for ColdFire 用
1.5.1 CodeWarror開発環境について 本システムでの統合開発環境として CodeWarror ColdFireV2.V3.V4 用を推奨します。 1.5.1.1 CodeWarrorコード制限について CodeWarror ColdFireV2.V3.V4 用無償版とは、128K バイトのコード以内であれば 無償で開 発できます。 本システムのフル機能(USB 等を実装した場合)は、128K バイト以上になり、無償版は、 開発できません。そのため、この無償版で開発する場合、機能を限定し リリース版にする 必要があります。公開するプロジェクト環境は、機能を限定し リリース版を提供する予定 です。そのため その範囲で 開発が物足りなくなった方は 有償版を購入していただければ と思います。 1.5.1.2 CodeWarror ColdFireV2.V3.V4 用の入手方法
下記の「Special Edition: CodeWarrior for Coldfire Architectures 」より入手できます。 http://www.freescale.com/webapp/sps/site/overview.jsp?code=CW_SPECIALEDITIONS&tid =CWH
また、PACTH は、CodeWarrior for ColdFire v7.1.2 Patch ファイルが、必要です。
http://www.freescale.com/lgfiles/devsuites/ColdFire/CWCF_V7_1_2.exe?WT_TYPE=Update s&Patches&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=exe&WT_ASSET=Downloads 環境構築後 プロジェクトファイルをオープンすることをお勧めします。
ニケ・ボード ソフトウェア設計仕様書
1.6
参考資料
MCF52259 ColdFire® Microcontroller DataSheet Rev2 (MCF52259DS.pdf) MCF52259 ColdFire® Integrated Microcontroller Reference Manual Rev2
(MCF52259RM.pdf) M52259EVB SCH(RevD1)
MCF5282 ColdFire® マイクロコントローラ ユーザーズ・マニュアル Rev0 M52259DEMOCOM SCH RevB
M52259DEMOMCU SCH RevB Bootloader Demo Guide DEMOKIT
AD5546/AD5556 DataSheet Rev0(AD5546_5556_JP.pdf) AD7652 DataSheet Rev0(AD7652_JP.pdf)
Freescale MQX™ RTOS Reference Manual Rev0
Freescale MQX™ Real-Time Operating System User’s Guide Rev0 Freescale MQX™ I/O Drivers User's Guide Rev0
Freescale MQX™ MFS™ User’s Guide Rev0 など
ニケ・ボード ソフトウェア設計仕様書
2 ハードウェア構成
下記のハードウェアブロック図が、本システムのハードウェア構成です。 本章では各ブロックの概略について説明します。 Figure 3 ハードウェア・ブロック図2.1
MCU
MCU は、Freescale MCF52258 を搭載します。 Memory Options JTAG GPIO 32Kh z OSC PLL BDM USB OTG UART I2C 4-ch,32-bit Timer 10/100 FEC+DMA UART UART QSPI 8-ch,12bit ADC 4-ch,16-bit Timer RTC CAN 2-ch PIT 512KB Flash 64KB SRAM 256KB Flashニケ・ボード ソフトウェア設計仕様書 2.1.1 概略仕様 イーサネットコントローラ、USB コントローラを搭載したワンチップ・コネクティビティ・ マイコン、イーサネット-USB を始め、様々なインタフェース変換に対応可能 2.1.1.1 特長 CPU コア
最大76 MIPS@80Mhz( Dhrystone 2.1 )+EMAC オンチップ・メモリ 最大64K バイト SRAM 最大512K バイト Flash 主な機能 外部バス(16/8bit) 10/100 イーサネット MAC
PHY 付き USB2.0 フルスピード・ホスト/デバイス/OTG コントローラ CAN 2.0B コントローラ 8 チャネル 12 ビット AD コンバータ タイマ機能 DMA タイマ、汎用タイマ、周期割込みタイマ、PWM タイマ、WDT 多彩なシリアル・インタフェース: 3xUART、QSPI、2xI2C 仕様 電源電圧: 3.3V 単一電源 動作温度範囲: -40 C ~+85 C パッケージ: 144LQFP 2.1.2 採用理由 デバイスの入手性と下記の3 つの機能がある点です。 PHY 付き USB コントローラ 外部バス(16/8bit) 8 チャネル 12 ビット A/D コンバータ 詳細は、下記の資料を参照。
MCF52259DS: MCF52259 ColdFire® Microcontroller DataSheet
MCF52259RM: MCF52259 ColdFire® Integrated Microcontroller Reference Manual http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MCF5225X
ニケ・ボード ソフトウェア設計仕様書
2.2
アナログ部
2.2.1 外部A/Dコンバーター(AD7652)
AD7652
CONTROL LOGIC AND CALIBRATION CIRCUITRY PARALLEL INTERFASE SERIAL PORT CLOCK REF SWITCHED CAP DAC 1 OVDD OGND DATA[15:0] BUSY RD CS SER/PAR OB/2C BYTESWA DVDD DGND REFGND REF REFBUFIN AGND AVDD IN INGND PDREF PDBUF PD RESET CNVST
Figure 5 アナログ・デバイセズ社 A/D コンバータ、AD7652 ブロック図 ■ 主な仕様 ColdFire との接続は、16bit ローカルバス接続です。 パラレルモードで使用します。 アナログ信号を16bit データへ変換する。 サンプリング周波数は、最大500Khz です。 詳細は、下記の資料を参照。 http://www.analog.com/jp/analog-to-digital-converters/ad-converters/ad7652/products/pro
ニケ・ボード ソフトウェア設計仕様書
2.2.2 外部D/Aコンバーター(AD5546)
Figure 6 アナログ・デバイセズ社 A/D コンバータ、AD7652 ブロック図 ■主な仕様 ColdFire との接続は、16bit ローカルバス接続です。 16bit データを アナログ信号へ変換する。 サンプリング周波数は、最大500Khz です。 詳細は、下記の資料を参照してください。 http://www.analog.com/jp/digital-to-analog-converters/da-converters/ad5546/products/pro duct.html 2.2.3 3 軸加速度センサ (MMA7361L / ADXL335) 本ボードには、フリースケール・セミコンダクタ社製、MMA7361L とアナログ・デバイス 社製、ADXL335 の 2 つの 3 軸加速度センサを搭載しており、基板上のチップ・ジャンパー で選択を行います。 MMA7361L を使用する場合: R37、R38、R40 にチップ・ジャンパーを取り付けます。 X-fest 2010 での限定配布基板では、MMA7361L がデフォルトの仕様になっておりま す。
ニケ・ボード ソフトウェア設計仕様書
2.2.3.1 フリースケール社製 3 軸加速度センサ MMA7361L
Figure 7 MMA7361L ブロック図 ■主な仕様
ColdFire とのインターフェイスは、A/D I/F 接続です。 X、Y、Z の 3 軸の加速度を取得する。
g-Select 端子で G レンジを選択できます。(Low=1.5g/High=6g)
詳細は、下記の資料を参照してください。
ニケ・ボード ソフトウェア設計仕様書 2.2.3.2 アナログ・デバイセズ社製 3 軸加速度センサ ADXL335 Figure 8 AD7652 ブロック図 ■主な仕様 ColdFire 内蔵の 12 ビット A/D コンバータを経由してデータをサンプリングします。 X、Y、Z の 3 軸の加速度を取得します。 感度: 1G 詳細は、下記の資料を参照してください。 http://www.analog.com/jp/mems/low-g-accelerometers/adxl335/products/product.htm
ニケ・ボード ソフトウェア設計仕様書 2.2.4 温度センサ(TMP36) Figure 9 TMP36 ブロック図 ■主な仕様 マイコンとのインターフェイスは、A/D I/F 接続です。 温度を取得 詳細は、下記の資料を参照してください。 http://www.analog.com/jp/sensors/analog-temperature-sensors/tmp36/products/product.h tml 2.2.5 PCM(相変化メモリ) 128MBit(16M×8bit)の PCM メモリを接続しています。詳細については、後日アップしま す。
ニケ・ボード ソフトウェア設計仕様書 2.2.6 インターフェイス部 2.2.6.1 USB インターフェイス ■主な仕様 USB ホスト/OTG/デバイス仕様に準拠 FS(12Mbps)PHY 内蔵 2.2.6.2 FPGA拡張インターフェイス ■主な仕様 I2C バスを接続します。 ADC/DAC の外部バス I/F を接続します。 2.2.7 電源部 電源は、3つのルートから供給します。 USB のバスパワーより給電。(5V) FPGA からの電源供給(5V) 外部電源からの電源供給(5V)
ニケ・ボード ソフトウェア設計仕様書
3 ソフトウェア構成
4.1. ソフトウェア メモリマップの説明 本システムのメモリ構成を説明します。 メモリ・マップ 0x0000_0000 0x0000_0000 ベクター・テーブル 0x0000_0418 0x0000_0420 ブート・ローダー・プログラム領域 0x0000_3FFF 0x0000_4000 ユーザー・プログラム領域 0x0007_FFFF 0x0007_FFFF 0x0008_0000 0x1000_0000 0x2000_0000 0x2000_FFFF 0x2001_0000 0x3FFF_FFFF 0x4000_0000 0x4001_FFFF 0x4002_0000FLASH MEMORY
SRAM MEMORY
SYSTEM MEMORY
ニケ・ボード ソフトウェア設計仕様書 ■ベクター・テーブル メモリ領域:0x00000000~0x00000400 リセット時、割り込み処理関数、CPU の割り込みのベクター・アドレスを配置します。 リセット時は、ブート・ローダーのスタートアドレスを指定します。 それ以外の割り込みは、0x00004008 にしています。ユーザープログラムの割り込み ハンドラを 0x00004008 に配置するか、0x00004008 にユーザープログラムの割り込 みハンドラにジャンプする処理を追加してください。 ■CPU 情報 メモリ領域:0x00000400~0x00000420 CPU の情報を格納する領域です。 ■ブート・プログラム メモリ領域:0x00000420~0x00003FFF の領域に配置します。 ブートから、ユーザー・プログラムを立ち上げる時、0x00004000 にジャンプします。 0x00004000 にユーザー・プログラムのスタートアドレスへジャンプする処理を追加 してください。 ■ユーザー・プログラム メモリ領域:0x00004000~0x000’7FFFF の領域に配置します。 ユーザー・プログラムは、本ボードのメインプログラムです。
3.1
ブート・ローダー・ソフトウェア
本ソフトウェアは、リセット時、最初に起動するソフトウェアです。 ボード出荷時には、ボードに書かれているソフトウェアです。 BDM/JTAG ツール上で 書換えが可能です。 3.1.1 主な機能 本ソフトウェアは、マイコンリセット後に起動するプログラムです。 主な機能は 2つです。 ユーザー・プログラムのアップデートを行う機能 ユーザー・プログラムを起動する機能 3.1.2 各機能説明 各機能のソフトウェアの動きを説明します。ニケ・ボード ソフトウェア設計仕様書 3.1.2.1 ユーザー・プログラムのアップデートを行う機能 ユーザー・プログラムのメモリ領域を 新しいファームに書き換える機能です。 このモードは、 リセット時に SW2 が押されている時に、起動します。 PC からみると本デバイスは、USB メモリデバイスとして認識されます。その後、新しいフ ァームをそのドライブにCOPY することで ファーム書換えが完了します。 ■手順 1. PC と本ボードを USB で接続し、本ボードを給電します。 2. リセット時に SW2 が押されていることで ユーザー・プログラムのアップデート機能 が起動します。(手順としては、RESET SW+SW2 を押した後、RESET SW をはなす。) 緑色の2 つの LED が点灯していることを確認する。 PC 上で 本ボードが USB メモリのリムーバル・ディスクとして認識されていることを確認 する。 3. リムーバル・ディスクへ新しいファームをコピーする。 4. コピーが完了したあと RESET SW を押す。 ■ファームウェアファイル ユーザー・プログラムのファイル形式は、S19 ファイルです。(統合開発環境で 作成 できます。) モトローラタイプのHEX ファイルです。 3.1.2.2 ユーザー・プログラムを起動する機能 リセット時は、0x00004000 へジャンプします。また、割り込み時は、0x00004008 へジャ ンプします。 3.1.3 参考資料
ニケ・ボード ソフトウェア設計仕様書 ニケ・ボード プラットフォーム構造として下記のブロックに分かれる。 ソフトウェアの概略を ブロック図として 下記に記載します。 3.2.1 ソフトウェア構成 そして、入力したアナログ信号の適当な間隔で データを区切り、PCM メモリである内部ド ライブか、又はUSB メモリに保存する。データは、常に古いデータを破棄し、新しいデー タを保存する。 X-FEST に提示するデモソフトウェアは、オーディオ信号を入力し、エフェクトした信号を 出力する機能を有している。 この章では、ニケ・ボード用のBSP プラットフォームと X-FEST 2010 で使用されたデモソ フトウェアについて記載します。 ニケ・ボードのユーザー・プログラムについて説明します。
3.2
ユーザー・プログラムの構成
次の章より このブロックについて説明します。 ユーザー・アプリケーションFreescale MQX USB Host/Device Freescale MQX Shell System
Freescale MQX File System (MFS) Platform Support Package(PSP) Board Support Package(BSP)
ニケ・ボード ソフトウェア設計仕様書 3.2.1.1 システムブロック図 アプリケーション部分 ミドルウエア MFSモジュール SW/LEDモジュール 信号処理モジュール USBモジュール ADCドライ
バ DACドライバ UARTドライバAPI PCMドライバ USBドライバAPI LED/SW関数API タイマドライバAPI
Shellモジュール Shell API関数 MFS API関数 USB処理 タスク USB Callback Attach/Dettach イベント 設定/登録 CALLBACK 関数 エフェクト 処理API 信号処理 API関数 Shellモジュール Shell処理 タスク SW/ LED 処理タスク File System処理モジュール file system 処理タスク 信号処理 タスク Sensor ドライバAPI センサ処理モジュール センサー 処理タスク ・チャンネルのAD値読み出し(read) ・設定/登録(Open) ・Signalへ Effct/Bank 切り替えイベント センサーのA/D値 ・LED 点灯/消灯 ・SW信号 ・ADC入力開始/停 止 ・ADCデータ サンプリング周波数 ・DACデータ ・シリアル送受信 ・Attach時 設定/登録/削除 ・信号入力イベント ・LED点灯/点滅/消灯 イベント通知 ・再生/録音イベント ・REC/PLAY/STOPイベント ・REC/PLAYデータ ・REC/PLAYデータ file system 処理API関数 ・REC/PLAYイベント通知 ・REC/PLAYデータ ・出力信号データ ・DAC出力開始 ・DAC出力停止 ・アナログ データ
ニケ・ボード ソフトウェア設計仕様書
3.2.2 ニケ・ボードBoard Support Package(BSP)
BSP は、IO ドライバ層が 該当します。本章では、ドライバの動きについて説明します。 下記が、ニケ・ボード プラットフォームで使用するドライバ類です。 ADC AD7652 ドライバ(※1.) DAC AD5546 ドライバ(※1.) PCM メモリドライバ(※1.) センサードライバ(加速度センサ/温度センサ)(※1.) USB デバイス/HOST ドライバ UART ドライバ GPIO 関数モジュール(LED/SW 検出用)(※1.) ※1.新規に作成したドライバです。 3.2.2.1 A/Dコンバータ: AD7652 ドライバ ■概要
本ドライバは、ADC のデータを取得するドライバです。AD7652 と MCU との接続は、ロー カルバス接続です。バス幅は16bit になります。(Mini-FlexBus アドレス: 0x80000000) DMA0、DMA タイマ 0 を制御し DMA0 の割り込みを使用します。DMA0 のサイクル・スチー ル・モードを使用し、DMA タイマ 0 の外部要求のタイミングで ローカルバスより 16bit デ ータのADC データを 受信用バッファメモリに転送します。 DMA0 割り込みは、音データ 6msのデータサイズが、転送できた時、DMA 割り込みが 発 生する構成です。 受信用バッファメモリのサイズは、音データ 6ms の時間データです。また、この時間は、 変更可能です。 また、アプリケーションからCALLBACK 関数を登録できます。DMA 割り込み発生タイミン グで、CALLBACK 関数が 呼ばれます。 ■格納先フォルダー < \mqx\source\io\ADI\AD7652> ■ADC 受信用バッファメモリ ADC 受信用バッファサイズは、6msの音データサイズが、格納できる容量を確保してます。 [6msの音データサイズの算出式] データサイズ = サンプリング周波数 * 0.006(6ms)* 2 バイト
ニケ・ボード ソフトウェア設計仕様書
■ドライバAPI 関数処理説明 1. 初期化関数処理
AD7652 のリセット処理と POWER DOWN 解除処理を行います。 初期時は、ADC の取得停止状態です。 サンプリング周波数は、50Khz です。 2. WRITE 関数処理 このドライバでは、この関数は、使用しません。 3. READ 関数処理 音データを取得できます。 1 回の READ で取得できる音データは、6msの音データサイズ固定です。 6ms の音データサイズは、サンプリング周波数によってサイズが変わります。 [6ms の音データサイズの算出式] データサイズ = サンプリング周波数 * 0.006(6ms)* 2 バイト 4. IOCTL 関数処理 ドライバへの設定を行います。 IO_IOCTL_AD7652_START ADC の取得開始を行います。 IO_IOCTL_AD7652_STOP ADC の取得停止を行います。 IO_IOCTL_AD7652_SET_CALLBACK
ADC ドライバが ADC 取得タイミングを通知する時に CALL する CALLBACK 関数を設定で きます。 IO_IOCTL_AD7652_SET_BPS ADC ドライバのサンプリング周波数を設定できます。設定値の単位は、hz です。 IO_IOCTL_AD7652_GET_BPS ADC ドライバのサンプリング周波数を取得できます。設定値の単位は、hz です。
ニケ・ボード ソフトウェア設計仕様書
3.2.2.2 D/Aコンバータ: AD5546 ドライバ ■概要
本ドライバは、アナログ16bit データを DAC へ転送するドライバです。 AD5546 と MCU との接続は、ローカルバス接続です。バス幅は、16bit です。 (Mini-FlexBus アドレス: 0x80000010)
DMA1、DMA タイマ 1 を制御し DMA1 の割り込みを使用します。DMA1 のサイクル・スチー ル・モードを使用し、DMA タイマ 1 の外部要求のタイミングで ローカルバスよりアナログ 16bit データを DAC へ転送します。 DMA1 割り込みは、音データ 6msのデータサイズが、転送できた時、DMA1 割り込みが 発 生する構成です。 送信用バッファメモリのサイズは、音データ 6msの時間データです。また、この時間は、 変更可能です。 ■格納先フォルダー <\mqx\source\io\ADI\AD5546> ■DAC 受信用バッファメモリ DAC 送信用バッファサイズは、6ms の音データサイズが格納できる容量。 [6ms 音データサイズの算出式] データサイズ = サンプリング周波数 * 0.006(6ms)* 2 バイト ■サンプリング周期 サンプリング周波数は、10Khz (@100us) ~250Khz(@4us)を想定しています。 サンプリング周波数は変更可能です。 ■ドライバAPI 関数処理説明 初期化関数処理
AD5546 のリセット処理と POWER DOWN 処理を行います。 初期時は、DAC の取得停止状態です。 サンプリング周波数は、50Khz です。 WRITE 関数処理 音データを格納します。1 回の WRITE できる音データは、6ms の音データサイズ固定で す。 6ms の音データサイズは、サンプリング周波数によってサイズが変わります。下記が、
ニケ・ボード ソフトウェア設計仕様書 このドライバでは、未使用の関数です。 IOCTL 関数処理 ドライバへの設定を行います。 IO_IOCTL_AD5546_START DAC の取得開始を行います。 IO_IOCTL_AD5546_STOP DAC の取得停止を行います。 IO_IOCTL_AD5546_SET_BPS DAC ドライバのサンプリング周波数を設定できます。 設定値は、hz 単位です。 IO_IOCTL_AD5546_GET_BPS DAC ドライバのサンプリング周波数を取得できます。 設定値は、hz 単位です。
ニケ・ボード ソフトウェア設計仕様書
3.2.2.3 PCMメモリ ドライバ ■概要
Nyumonyx SPI 128Mbit PCM メモリとシリアル通信を行うドライバです。I/F は、SPI です。 SPI のシリアルクロックは、20Mhz です。 ■格納先フォルダー < \mqx\source\io\nymonix\P5Q_spi> ■転送データレート WRITE 時は、約 160K バイト/Sec READ 時は、約 400K バイト/Sec ■ドライバAPI 関数処理説明 1. 初期化関数処理 QSPI の初期設定を行う。 2. WRITE 関数処理 PCM メモリへデータを書きます。 3. READ 関数処理 PCM メモリから、データを読みます。 4. IOCTL 関数処理 ドライバへの設定を行います。 IO_IOCTL_QSPI_BLOCK_SET_MEM PCM メモリへデータを書きます。 IO_IOCTL_QSPI_BLOCK_GET_MEM PCM メモリから、データを読みます。
ニケ・ボード ソフトウェア設計仕様書
3.2.2.4 センサードライバ ■概要
センサードライバは、以下の機能を有します。
1. 3 軸センサー (ADXL335, MMA7361L)と温度センサー(TMP36)の ADC デバイスの設定と ADC 値を取得。
2. 3 軸センサー(ADXL335, MMA7361L)と温度センサー(TMP36)の GPIO の制御。
センサードライバの機能の1 つである ADC は、 Freescale MQX の IO ドライバの ADC ドラ イバを参考にしています。詳細は、下記の資料 MQX I/O ドライバ ユーザーガイドの 「Chapter 8 ADC Driver」を参照ください。
http://www.freescale.com/files/32bit/doc/user_guide/MQXIOUG.pdf?fsrch=1
3 軸センサー (ADXL335, MMA7361L)の self-test ピンと g-select と 0-gdetect ピンの制御 を行います。
■格納先フォルダー <\mqx\source\io\sensor>
■ドライバAPI 関数処理説明
3 軸センサー (ADXL335, MMA7361L)と温度センサー(TMP36)の ADC デバイスの設定と ADC 値の取得を行います。
3 軸センサー (ADXL335, MMA7361L)と温度センサー(TMP36)の GPIO の制御を行います。 本ドライバは、Freescale MQX の IO ドライバの ADC ドライバの API を参考にしています。 そのAPI の中で、センサーの GPIO の制御を行います。
センサーデバイス Open 関数処理
MQX I/O ドライバ ユーザーガイドの ADC ドライバ 8.5.1 Opening ADC Device に準拠しま す。
ニケ・ボード ソフトウェア設計仕様書
f = fopen("sensor:", (const char*)&adc_init);
各定義は、 /mqx/io/sensor/sensor.h に定義されています。 初期化後のADC は、停止状態です。
センサーデバイスの各機能は、表1 のとおりに設定します。
なお、ADX335 と MMA7361L の GPIO 設定処理は、共通化しています。 Table 1 ニケ・ボードに搭載されている各種センサ センサー名 説明 備考 ADXL335 設定値 ピン名称 状態 (0 or 1) 説明 self-test 0 セルフテスト機能 OFF ・g-Rabge は 1g 固定 ・MMA7361L の g-select と 0g-Detect は回路上共 通で接続されている。処 理は、MMA7361L を参考 のこと 。 (ソフトウエアを共通化 のため) MMA7361L 設定値 ピン名称 状態 (0 or 1) 説明 self-test 出力:0 セルフテスト機能 OFF g-select 出力:0 g-Range 1.5g 0g-Detect 入力 0g 検出機能ですが、今回は使用 しません TMP36 特になし センサーADC チャンネル ファイル Open センサードライバーがopen されて、初期化された後に、ADC チャンネル・ドライバー・フ ァイルとして開くことができます。Open の方法は、「sensor: <チャンネル_数>」です。 一方、初期化記録はADC チャンネルを初期化するというオープンコールしてときに記憶さ れます。指定するチャンネルのADC のパラメータによって、チャンネルおよび ADC の状態 が決定されます。 オープンでできるファイル数は、10 ファイルまでです。
ニケ・ボード ソフトウェア設計仕様書
SENSOR_ADC_SOURCE_AN1, /* physical ADC channel */
ADC_CHANNEL_START_NOW, /* one sequence is sampled after fopen */ 10, /* number of samples in one run sequence */ 100000, /* time offset from trigger point in us */ 500000, /* period in us (=500ms) */
0x10000, /* scale range of result (not used now) */ 10, /* circular buffer size (sample count) */ SENSOR_ADC_TRIGGER_2, /* logical trigger ID that starts this ADC channel */
NULL /* pointer to event */ }
fopen("sensor:1",(const char*)& sensor_adc_channel_param1);
各定義は、 /mqx/io/sensor/sensor.h に定義されています。
本センサで扱うADC のチャンネルパラメータは、/demo/ x_f_gab_demo/ sensor_adc_list.c に記載しています。 センサーデバイス Close 関数処理 ADC チャンネルドライバーファイルおよび デバイスドライバの Close。 WRITE 関数処理 本ドライバでは、使用しないため、空の処理です。 READ 関数処理 指定するADC チャンネルドライバーファイルの ADC 値を取得します。 <read 例> SENSOR_ADC_RESULT_STRUCT sensor_adc; SENSOR_ADC_VALUE_TYPE adc;
ニケ・ボード ソフトウェア設計仕様書 3 つめの引数は、NULL で固定が望ましいです。(処理上無視します) <使用例> ioctl("sensor:1", IOCTL_SENSOR_ADC_RUN_CHANNEL, NULL ); IOCTL_SENSOR_ADC_FIRE_TRIGGER
指定されたADC チャンネルドライバーファイルの ADC 計測を開始します。ADC チャンネル を複数個、指定することが可能です。ADC チャンネルドライバーファイルの ADC チャンネ ルが複数でない場合にも、使用が可能です。この場合、有効なトリガー(チャンネル)のみ処 理されて、計測が開始します。該当しない場合は、無視されます。
指定するパラメータが0 の場合は、IOCTL_SENSOR_ADC_RUN_CHANNELと同じです。
<使用例>
const SENSOR_ADC_INIT_CHANNEL_STRUCT sensor_adc_channel_param1 = {
SENSOR_ADC_SOURCE_AN1 | SENSOR_ADC_SOURCE_AN2, /* physical ADC channel */
ADC_CHANNEL_START_NOW, /* one sequence is sampled after fopen */ 10, /* number of samples in one run sequence */ 100000, /* time offset from trigger point in us */ 500000, /* period in us (=500ms) */
0x10000, /* scale range of result (not used now) */ 10, /* circular buffer size (sample count) */
SENSOR_ADC_TRIGGER_1 | SENSOR_ADC_TRIGGER_2, /* logical trigger ID that starts this
ADC channel, 2*/
NULL /* pointer to event */ }
※赤字は、複数のチャンネルを指定した場合の設定方法です。
fopen("sensor:1",(const char*)& sensor_adc_channel_param1);
ニケ・ボード ソフトウェア設計仕様書 IOCTL_SENSOR_ADC_STOP_CHANNEL 指定されたADC チャンネルドライバーファイルの測定を停止します。 3 つめの引数は、NULL で固定が望ましいです。(処理上無視します) <使用例> ioctl("sensor:1", IOCTL_SENSOR_ADC_STOP_CHANNEL, NULL ); IOCTL_SENSOR_ADC_STOP_CHANNELS
ADC チャンネルドライバーファイルの ADC の計測を停止します。ADC チャンネルを複数個、 指定するこができます。ADC チャンネルドライバーファイルの ADC チャンネルが複数でな い場合にも、使用が可能です。この場合、有効なトリガーのみ処理されて、停止します。 該当しない場合は、無視されます。 指定するパラメータが0 の場合は、IOCTL_SENSOR_ADC_STOP_CHANNELと同じです。 <使用例> ioctl("sensor:1", IOCTL_SENSOR_ADC_STOP_CHANNELS, (SENSOR_ADC_TRIGGER_1 | SENSOR_ADC_TRIGGER_2) ); IOCTL_SENSOR_ADC_PAUSE_CHANNEL ADC チャンネルドライバーファイルの ADC 計測を一時停止します。 <使用例> ioctl("sensor:1",
ニケ・ボード ソフトウェア設計仕様書 でない場合にも、使用が可能です。この場合、有効なトリガーのみ処理されて、停止しま す。該当しない場合は、無視されます。 指定するパラメータが0 の場合は、IOCTL_SENSOR_ADC_PAUSE_CHANNEL と同じで す。 <使用例> ioctl("sensor:1", IOCTL_SENSOR_ADC_STOP_CHANNELS, (SENSOR_ADC_TRIGGER_1 | SENSOR_ADC_TRIGGER_2) ); IOCTL_SENSOR_ADC_RESUME_CHANNEL
ADC チャンネルドライバーファイルの ADC 計測の PAUSE を行ったあとに Call されると計 測が再開します。3 つめの引数は、NULL で固定が望ましいです。(処理上無視します) <使用例> ioctl("sensor:1", IOCTL_SENSOR_ADC_RESUME_CHANNEL, NULL ); IOCTL_SENSOR_ADC_RESUME_CHANNELS
ADC チャンネルドライバーファイルの ADC 計測の PAUSE を行ったあとに Call されると計 測が再開します。ADC チャンネルを複数個、指定するこが可能です。ADC チャンネルドラ イバーファイルのADC チャンネルが複数でない場合にも、使用が可能です。この場合、有 効なトリガーのみ処理されて、停止します。該当しない場合は、無視されます。 指定するパラメータが0 の場合は、IOCTL_SENSOR_ADC_RESUME_CHANNELと同じ です。 <使用例> ioctl("sensor:1", IOCTL_SENSOR_ADC_RESUME_CHANNELS, (SENSOR_ADC_TRIGGER_1 | SENSOR_ADC_TRIGGER_2) );
ニケ・ボード ソフトウェア設計仕様書 1. g-select 2. 0g-Detect 3. self-test IOCTL_SENSOR_PORT_SET 指定するポートを出力に設定し、High 出力させます。 IOCTL_SENSOR_PORT_CLR 指定するポートを出力に設定し、Low 出力させます。 IOCTL_SENSOR_PORT_IN 指定するポートを入力に設定します。 IOCTL_SENSOR_GET_PORT 指定するポートの入力/出力状態と ポートのデータを取得します。 3.2.3 ミドルウェア 本ソフトウェアで使用しているミドルウェアは、下記の3 つです。 Freescale MQX File System (略 MFS)
Freescale MQX Shell System Freescale MQX USB Host/Device
詳細は、下記のドキュメントを参照してください。
Freescale MQX™ Real-Time Operating System User’s Guide Rev0 Freescale MQX™ I/O Drivers User's Guide Rev0
ニケ・ボード ソフトウェア設計仕様書
4 デモアプリケーション説明
本章では、デモプログラムについて説明します。 ■デモプログラム機能 ギターエフェクト 録音ファイル4.1
デモアプリケーション
DEFINE定義
デモアプリケーションで定義されているdefine の中でユーザーが変更可能なものについて 説明します。 DEFINE 定義 説明 定義しているファイル名 NIKE_TESTMODE 工場出荷テストモード 有効/無 効設定 [有効:1/無効:0] \demo\x_f_gab_demo\NIKE_demo.hDEMOCFG_ENABLE_USB_HOST USB HOST 機能 有効/無効設 定 [有効:1/無効:0]
\demo\x_f_gab_demo\NIKE_demo.h
DEMOCFG_ENABLE_USB_DEVICE USB DEVICE 機能 有効/無効 設定 [有効:1/無効:0]
\demo\x_f_gab_demo\NIKE_demo.h
DEMOCFG_ENABLE_SERIAL_SHELL SERIAL SHELL 機能 有効/無 効設定 [有効:1/無効:0] \demo\x_f_gab_demo\NIKE_demo.h NIKE_DEMO_EFFECT(※1) エフェクトデモ 有効設定 (有効時 define 定義) \demo\x_f_gab_demo\Signal_Task.c NIKE_DEMO_REC(※1) 録音/再生機能 有効設定 (有効時 define 定義) \demo\x_f_gab_demo\Signal_Task.c ※1.NIKE_DEMO_EFFECT、NIKE_DEMO_REC は、どちらかを選択してください。
4.2
信号処理モジュール
ADC の取得したデータを 信号処理や、録音/再生処理を行い、DAC へ転送する処理を行う モジュールです。 4.2.1 関連ファイル <\demo\x_f_gab_demo\ Signal_Task.c> 4.2.2 エフェクト処理ニケ・ボード ソフトウェア設計仕様書 y[n] ← x[n] * α
-P ≤ y[n] ≤ P
y[n] > P
y[n]
y[n] ← P y[n] ← - Py[n] < -P
[論理式] y[n]=α*((0 > x[n])) ? ((x[n] < -P)) ? : x[n]) : ((x[n] > P) ? P: x[n])) [波形イメージ]ニケ・ボード ソフトウェア設計仕様書
[フローチャート]
[論理式]
y[n] =α * ((((0 > x[n]) ? (-1 * x[n]) : x[n] > P) ? P: ((0 > x[n]) ? (x[n] * -1) : x[n]))
ニケ・ボード ソフトウェア設計仕様書 ■エコー効果 音の遅延と音の遅延情報のフィードバックすることで より効果的なエコー効果を実現し ます。 [論理ブロック図] [論理式] y[n] = x[n] + α * y[n-d] 4.2.3 DEFINE定義 信号処理モジュールで定義されているdefine の中でユーザーが変更可能なものについて説 明します。 DEFINE 定義 説明 EFFECT_DISTORTION_GAIN_INIT_VAL ディストーションのゲインの初期値。元の音声にこの値をか け 10 で割った値が出力されます。設定可能な範囲は 10~ 32767 です。 EFFECT_DISTORTION_RANGE_INIT_VAL ディストーションのレンジの初期値。増幅した音声を歪ませ る範囲を指定します。 設定可能な範囲は0~32767 です。 EFFECT_FUZZ_GAIN_INIT_VAL ファズのゲインの初期値。元の音声にこの値をかけ 10 で割 った値が出力されます。設定可能な範囲は10~32767 です。 EFFECT_FUZZ_RANGE_INIT_VAL ファズのレンジの初期値。増幅した音声を歪ませる範囲を指
ニケ・ボード ソフトウェア設計仕様書 ■イベント通知関数概要 下記が本タスクにイベントを通知する関数です。 SignalEvent_Set_StartSignal:アナログ信号取得、出力の開始を通知する関数 SignalEvent_Set_EndSignal:アナログ信号取得、出力の停止を通知する関数 SignalEvent_Change_Effect_Bank:エフェクトのタイプ(エコーやディストンシ ョンなど)を切り替える関数 SignalEvent_Set_RECODE_PLAY:再生動作を通知する関数 SignalEvent_Set_RECODE_PLAY_3AXIS:加速度センサーより 再生動作を通知 する時の関数 SignalEvent_Set_RECODE_REC:録音動作 開始を 通知する関数 SignalEvent_Set_RECODE_REC_STOP:録音動作 停止を 通知する関数
4.3
ユーザーインターフェイスモジュール
LED の表示と SW 検出を行う処理モジュールです。LED の表示と SW 検出を 100msごと に検出を行う。 ■関連ファイル <\demo\x_f_gab_demo\Switch_Task.c> ■SW 検出 SW2,SW3 の OFF/ON/ON 長押しを検出し、それそれを処理します。本ソフトウェアでは、 録音/再生デモの操作を実装しています。本 SW 検出で 下記の動作ステータスを処理してい ます。 OFF:SW が押されていない状態です。 ON:OFF 状態から SW が押された状態です。 ON 長押し中:SW が長く押されている時間を計測している状態です。 ON 長押し確定:SW が長く押されたことを 確定した状態です。 ON 長押し中に OFF:SW が長く押されている時間を計測している状態で SW が OFF になった状態です。 ON 長押し確定後 OFF:SW の長押しが確定した状態で SW を OFF にする状態です。 ※長押し確定時間は、OFF 状態から SW が押された状態から、1~2 秒後としています。 ■ 各 SW2/SW3 の機能 SW2 の機能 OFF ステータス:機能なしニケ・ボード ソフトウェア設計仕様書 OFF ステータス:機能なし ON ステータス:再生 ON 長押し確定ステータス:機能なし ON 長押し確定後 OFF ステータス:機能なし ■LED 表示処理 各LED(LED2/3)の点灯/点滅/消灯処理イベントを用意します。 また、LED2、LED 3 は消灯のとき、LED2 と 3 を交互に点灯する機能を実装しています。 点滅仕様は 500ms点灯、500ms消灯の繰り返しを実装しています。 ■イベント通知関数概要 下記が本タスクにイベントを通知する関数です。 SwitchEvent_Set_LED1_OFF: LED2 の消灯イベント SwitchEvent_Set_LED1_FLASH:LED2 の点滅イベント SwitchEvent_Set_LED1_ON:LED2 の点灯イベント SwitchEvent_Set_LED2_OFF:LED3 の消灯イベント SwitchEvent_Set_LED2_FLASH:LED3 の点滅イベント SwitchEvent_Set_LED2_ON:LED3 の点灯イベント
4.4
MFSモジュール
PCM メモリを MFS ファイルシステムと接続しており、MFS ファイルシステムへの保存、読 み出しの管理を行います。主に、録音/再生機能の ファイル、ファイルサイズの管理を行い ます。記録するファイル名は、「voice.wav」です。 ■関連ファイル <\demo\x_f_gab_demo\mfs_Task.c> ■イベント通知関数概要 下記が本タスクにイベントを通知する関数です。 MfsControlEvent_Set_SetOpen:録音用 ファイル OPEN 要求ニケ・ボード ソフトウェア設計仕様書
4.5
センサーモジュール
加速度センサー/温度センサーの ADC 値の取得および加速度センサの検地処理を行います。 以下の流れに沿って、処理を行っています。 1. センサータスク起動後、センサードライバへ 3 軸加速度センサーと温度センサーの ADC チャンネルパラメータを登録します。 2. 200ms 毎に X, Y, Z 軸と温度センサーの ADC 値(12bit)を計測します。(ドライバに依存 します。) 3. 200ms 毎に各軸の ADC 値の変化量を計測します。 4. 各状態に応じた処理を行います。 5. 200msec 間タスクを Wait させます。 6. 200msec 経過したら、1)から処理を開始します。 本デモアプリケーションでは、センサドライバをクローズしません。 ■関連ファイル < \demo\x_f_gab_demo\Sensor_Task.c> < \demo\x_f_gab_demo\Sensor_Task.h> ■ADC チャンネルパラメータ 本デモアプリケーションで、使用するADC チャンネルのパラメータのリストは、下記のフ ァイルに定義しています。/demo/ x_f_gab_demo/ sensor_adc_list.c
センサータスク起動後にドライバへ登録する際に、このリストを使用しています。登録後、 すぐにADC を計測するようにしています。計測する間隔は、200msec 毎となります。
各パラメータの詳細は、MQX I/O ドライバ ユーザーガイドの「Chapter 8 ADC Driver」を 参照ください。
ニケ・ボード ソフトウェア設計仕様書 ■状態と状態遷移 センサでは、以下の状態を定義して、制御しています。 状態名 説明および処理 SENSOR_ST_INIT 初期状態 タスク起動後の初期処理のあとに必ず移行する状態。 加速度センサーの3 軸の静止判定処理 ・3 軸すべて静止していると NORMAL 状態へ移行します。 SENSOR_ST_NORMAL ある条件(変化量が一定以上の場合など)により、信号処理へイベントを 通知します。 信号処理へイベントを通知したら、WAIT 状態へ移行します。 図 1 センサーモジュール 状態遷移図 ■3 軸加速度センサの軸の移動検出の仕組み
ADC の計測間隔は、200msec のため 200msec 毎に ADC 取得を試みます。 1. 200ms 毎の各軸の ADC の変化量から 一番大きい変化量がある軸を選択 2. 1.の軸の変化量がある一定以上の場合、信号処理モジュールへイベントを通知します。 ■Define 定義 センサモジュール内で定義している中でユーザーが変更可能なものについて説明します 定義名 説明 SENSOR_ENABLE_EASY_DEMO 簡易デモ用オプション SENSOR_S T_INIT SENSOR_ST_N ORMAL NORMAL SENSOR_S T_WAIT 信号処理 モジュールへイベント通知 500msec 経過
ニケ・ボード ソフトウェア設計仕様書
4.6
シェル・モジュール
コマンドは、ファイルシステム用コマンドと デバッグ用コマンドを搭載します。 ■関連ファイル < \demo\x_f_gab_demo\NIKE_demo_Shell_Commands.h> < \demo\x_f_gab_demo\NIKE_demo_Shell_Commands.c> < \demo\x_f_gab_demo\Command_Lists.c > < \demo\x_f_gab_demo\sensor_Shell_Commands.c> < \demo\x_f_gab_demo\Signal_Shell_Commands.c> ■デバッグコマンド一覧 コ マ ン ド名 コマンド書式 機能内容 関数 備考 db db<SP>[アドレス]<CR> メモリダンプ機能(8bit データ) Shell_mem_dump_byte dw dw<SP>[アドレス]<CR> メモリダンプ機能(16bit データ) Shell_mem_dump_word dd dd<SP>[アドレス]<CR> メモリダンプ機能(32bit データ) Shell_mem_dump_dword rb rb <SP>[アドレス]<CR> メモリ READ 機能(8bit データ) Shell_mem_read_byte rw rw <SP>[アドレス]<CR> メモリREAD 機能(16bit データ) Shell_mem_read_word rd rd <SP>[アドレス]<CR> メモリREAD 機能(32bit データ) Shell_mem_read_dword wb wb <SP>[アドレス]<SP>[デー タ]<CR> メモリWRITE 機能(8bit データ) Shell_mem_write_byte ww ww <SP>[アドレス]<SP>[デー タ]<CR> メモリWRITE 機能(16bit データ) Shell_mem_write_word wd wd <SP>[アドレス]<SP>[デー タ]<CR> メモリWRITE 機能(32bit データ) Shell_mem_write_dword pdb pdb<SP>[アドレス]<CR> PCM メ モ リ ダ ン プ 機 能 (8bit データ) Shell_PCM_mem_read_dump pwr pwr<SP>[ アド レス]<SP>[デ ー PCM メモリ WRITE 機能 Shell_PCM_baw_writeニケ・ボード ソフトウェア設計仕様書 ※<SP>は、スペース、< CR >は。キャリッジ・リターンを示します。 ■ファイルシステム一覧 下記が 今回実装する予定のファイルシステムコマンドです。MS-DOS のコマンドと互換が あります。 コ マ ン ド名 コマンド書式 機能内容 関数 備考 cd cd<SP>〔directory〕<CR> 現在のディレクトリを表示した り, 変更 Shell_cd
copy copy<SP>〔source〕<SP>〔dest〕<CR> ファイルのコピー Shell_copy dir dir<SP>〔filespec〕<SP>〔attr〕<CR> ディレクトリ中のファイルとサ ブディレクトリを一覧表示 Shell_dir format format<SP>〔drive:〕<SP>〔volume label〕<CR> ディスクの初期化 Shell_format
mkdir mkdir<SP>〔directory〕<CR> ディレクトリを作成 Shell_mkdir rmdir rmdir<SP>〔directory〕<CR> ディレクトリを削除 Shell_rmdir del del<SP>〔file〕<CR> ファイル(複数可)を削除 Shell_del ※<SP>は、スペース、< CR >は。キャリッジ・リターンを示します。 ■その他 コ マ ン ド 名 コマンド書式 機能内容 関数 備考
help help<SP>〔command〕<CR> コマンド書式リスト Shell_help ? ? <CR> コマンドリスト Shell_command_list ※<SP>は、スペース、< CR >は。キャリッジ・リターンを示します。
4.7
その他
ニケ・ボード ソフトウェア設計仕様書
5 フォルダー構成説明
[nike_fot MQX 3.3] | +---<config> :ニケ・プロジェクト プラットフォーム用 プロジェクトファイル +-+-<demo> :ニケ・プロジェクト アプリケーション プロジェクトファイル一式(デモ用) +---<lib> :共有ヘッダー/MQX オブジェクトファイル +---<mfs> :MQX ミドルウエア ファイルシステム 一式 +-+-<mpx> :BSP/PSP プログラム ソースファイル +---<rtcs> :MQX ミドルウエア RTCS プログラムファイル +---<shell> :MQX ミドルウエア SHELL プログラムファイル +---<usb> :MQX ミドルウエア SHELL プログラムファイル5.1
フォルダ構成説明
5.1.1 ニケ・プロジェクト プラットフォーム用 プロジェクトファイル 開発プラットフォーム用 CodeWarrior プロジェクトファイルは、 <\config\common\nike_ADI_mcf52259\build_libs.mcp>にあります。 開発プラットフォームとは、アプリケーション以外の下記のモジュールを示します。 BSP PSP RTCS スタック MFS ファイルシステムスタック SHELL モジュール USB スタック また、各モジュールのCodeWarrior プロジェクトファイルは、下記のあります。 ■BSP BSP の CodeWarrior プロジェクトファイルは、 <\mqx\build\codewarrior\bsp_nike_mcf52259.mcp>にあります。 ■PSP PSP の CodeWarrior プロジェクトファイルは、 <\mqx\build\codewarrior\psp_nike_mcf52259.mcp>にあります。ニケ・ボード ソフトウェア設計仕様書 ■MFS ファイルシステムスタック MFS ファイルシステムスタックの CodeWarrior プロジェクトファイルは、下記のフォルダ にあります。 <\mfs\build\codewarrior\mfs_nike_mcf52259.mcp> ■RTCS スタック <\rtcs\build\codewarrior\rtcs_nike_mcf52259.mcp> ■SHELL モジュール <\shell\build\codewarrior\shell_nike_mcf52259.mcp> ■USB スタック <\usb\device\build\codewarrior\usb_ddk_nike_mcf52259.mcp> <\usb\host\build\codewarrior\usb_hdk_nike_mcf52259.mcp> 5.1.2 ニケ・プロジェクト アプリケーション用 プロジェクトファイル <\demo\x_f_gab_demo\codewarrior\x_f_gab_ADI_mcf52259.mcp>
5.2
ソースファイルの場所について
■アプリケーション ソースファイル <\demo\x_f_gab_demo> <\demo\x_f_gab_demo\dsp_library> ■ニケボード用 専用ドライバについて 外部ADC/DAC ドライバ ソースファイルは、<\mpx\source\io\ADI>にあります。 センサ ドライバ ソースファイルは、<\mpx\source\io\sensor>にあります。 そして、初期起動時のファイルは、<\mpx\source\bsp\m52259demo>にあります。ニケ・ボード ソフトウェア設計仕様書 ■SHELL モジュール ソースプログラムファイル <\shell\source> ■USB スタック ソースプログラムファイル <\usb\device\source> <\usb\host\source>