<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
- <provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1049722321251258839" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
+ <provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="1103004093754622070" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
#ifndef _MACRO_ONLY
+
+ // Following mode macro can be used only the demodulator
+
+ /** \brief 受信機はワイドFMモードである */
+#define radio_mode_WFM 2
+ /** \brief 受信機はナローFMモードである */
+#define radio_mode_NFM 4
+ /** \brief 受信機は振幅変調モードである */
+#define radio_mode_AM 5
+ /** \brief 受信機は振幅変調モードの同期復調モードである */
+#define radio_mode_SAM 6
+ /** \brief 受信機はLSB復調モードである */
+#define radio_mode_LSB 7
+ /** \brief 受信機はUSB復調モードである */
+#define radio_mode_USB 8
+ /** \brief 受信機はCW復調モードである */
+#define radio_mode_CW 9
+
+
/**
* \defgroup radioAPI ラジオAPI
- * \brief 復調器がTRX-305の制御部と情報の授受を行うためのAPI群
+ * \brief 復調器がSHマイコン/FPGAと情報の授受を行うためのAPI群
* \details
* このモジュールに含まれるAPIは、復調器の中でユーザー復調アルゴリズムが使うために
* 公開されている。制御情報取得用APIはTRX-305からの制御情報を受け取るためのものである。
/**
* \defgroup getInfo 制御情報取得API
- * \brief 復調器がTRX-305から受け取る制御情報取得用のAPI
+ * \brief 復調器がSHマイコン/FPGAから受け取る制御情報取得用のAPI
* \details
* ここに列挙されるAPIは、いずれも復調器内のユーザーアルゴリズムから自由に使ってよい。
*
*/
/*@{*/
- // Following mode macro can be used only the demodulator
-
- /** \brief 受信機はワイドFMモードである */
-#define radio_mode_WFM 2
- /** \brief 受信機はナローFMモードである */
-#define radio_mode_NFM 4
- /** \brief 受信機は振幅変調モードである */
-#define radio_mode_AM 5
- /** \brief 受信機は振幅変調モードの同期復調モードである */
-#define radio_mode_SAM 6
- /** \brief 受信機はLSB復調モードである */
-#define radio_mode_LSB 7
- /** \brief 受信機はUSB復調モードである */
-#define radio_mode_USB 8
- /** \brief 受信機はCW復調モードである */
-#define radio_mode_CW 9
// These APIs are published for the demodulator programmer
/**
/**
* \defgroup setStat 状態報告API
+ * \brief DSPがFPGA/SHマイコンに情報を送るためのAPI群
*/
/*@{*/
-// Set S meter
+/**
+ * \def radio_api_set_S_meter
+ * \brief Sメータ値のセット
+ * \details
+ * このAPIはDSPからFPGA/SHマイコンに渡すSメータ値を設定する。値の範囲は
+ * 15bit符号なし整数である。APIは受け取った値をそのままFPGAに送信する。
+ */
#define radio_api_set_S_meter(s) radio.smeter = s
+ /**
+ * \def radio_api_set_stereo
+ * \brief FMステレオ受信状態の報告
+ * \details
+ * FM復調がモノラルかステレオを報告する。引数は以下のように与える
+ * \li 0 : モノラル
+ * \li 非1 : ステレオ
+ */
+#define radio_api_set_stereo(s) s ? radio.flags |= (1<<1) : radio.flags &= ~(1<<1)
+
+ /**
+ * \def radio_api_set_voice_squelch
+ * \brief ボイススケルチ状態の報告
+ * \details
+ * 復調器がボイススケルチを持っている場合、その状態を報告する。
+ * \li 0 : ボイススケルチは開いていない
+ * \li 1 : ボイススケルチは開いている
+ */
+#define radio_api_set_voice_squelch(s) s ? radio.flags |= (1<<2) : radio.flags &= ~(1<<2)
+
+/**
+ * \def radio_api_set_noise_squelch
+ * \brief ノイズスケルチ状態の報告
+ * \details
+ * 復調器がノイズスケルチを持っている場合、その状態を報告する。
+ * \li 0 : ノイズスケルチは開いていない
+ * \li 1 : ノイズスケルチは開いている
+ */
+#define radio_api_set_noise_squelch(s) s ? radio.flags |= (1<<3) : radio.flags &= ~(1<<3)
+
+
/*@}*/
/* end of defgroup setStat */
/**
* \defgroup callbacks 復調用コールバック関数
+ * \brief フレームワークが復調ように呼び出すコールバック関数群
* \details
* 復調器のためにフレームワークから呼び出すコールバック関数。復調アルゴリズムは全てこの中に記述する。
*
* 関数は大きく分けて2種類に分けられる。ひとつは初期化関数で \ref init_demodulator() がこれである。
* その他の関数は実際の復調を行う関数である。
*/
- */
+
/*@{*/
-/**
- * \brief 復調アルゴリズム初期化関数
- * \detail
- */
/**
* \brief 復調器の初期化
*
*/
+/**
+ * \mainpage
+ * \section section_overview 概要
+ * このドキュメントは、HiradoフレームワークのAPIについて解説する
+ *
+ * HiradoはSDR無線機TRX-305のDSP部の復調器フレームワークである。
+ *
+ * プログラマは \ref callbacks の関数群を埋める形で復調器を実装する。
+ *
+ * \section section_api API
+ * コールバックの中からは \ref radioAPI にある無線APIを使って
+ * 制御用のSHマイコン/FPGAと通信を行う。通信する内容は2種類ある。
+ * \li 制御用マイコンからの制御命令
+ * \li DSPからのステータス通知
+ * \section section_debug デバッグについて
+ * フレームワークにはデバッグ支援機能があり、デバッグマクロを宣言することで利用できる。
+ * これらの機能はすべてDSPのuartを利用している。通信速度は115200baud, 8bit, parityなし、
+ * 1stopbitである。
+ *
+ * フレームワークのデバッグ機能については \ref framework.h の解説を参照。
+ *
+ *
+ */
#ifndef _FRAMEWORK_H_
#define _FRAMEWORK_H_
#include <t_services.h>
#include "demodulator.h"
+/**
+ * \defgroup radioFramework フレームワーク内部宣言
+ * \brief フレームワークの内部で使うオブジェクトの内部宣言。基本的にユーザーは参照しなくていい
+ */
+/*@{*/
/*
* デバッグマクロ
*/
#define AF_QUESIZE 80 /* 送受信タスクの間のキューの長さ。8サンプルが最長割り込み周期と仮定してさらにマージンをもたせている */
-#define WIDE_FM_OVERSAMPE 8 /* AF1サンプルあたりのWide FM サンプル数 */
+ /** \brief AF1サンプルあたりのWide FM サンプル数 */
+#define WIDE_FM_OVERSAMPE 8
-#define WIDE_FM_FLAG 2 /* プライマリ・チャンネルのWIDE FM Modeを表すフラグのマスク */
+ /** \brief プライマリ・チャンネルのWIDE FM Modeを表すフラグのマスク */
+#define WIDE_FM_FLAG 2
+ /** \brief SHマイコン/FPGAから送られてくるコマンドの種類の数 */
#define PARAMDATA_NUM 16
* 各タスクの優先度の定義
*/
-#define TASK_PRIORITY_AF 5 /* AF DMAタスクの優先度。送信なので優先度高 */
-#define TASK_PRIORITY_RX_IF 10 /* RX-IF DMA処理タスクの優先度。復調も行う */
-#define LOGTASK_PRIORITY 12 /* デフォルトの初期優先度を上書きする */
-#define TASK_PRIORITY_MONITOR 15 /* モニター・タスクの優先度。優先度低 */
+ /** breif AF DMAタスクの優先度。送信なので優先度高 */
+#define TASK_PRIORITY_AF 5
+ /** breif RX-IF DMA処理タスクの優先度。復調も行う */
+#define TASK_PRIORITY_RX_IF 10
+ /** breif デフォルトの初期優先度を上書きする */
+#define LOGTASK_PRIORITY 12
+ /** breif モニター・タスクの優先度。優先度低 */
+#define TASK_PRIORITY_MONITOR 15
/*
* ターゲット依存の定義(CPU例外ハンドラの起動方法など)
*/
-
-#define STACK_SIZE_RX_IF 1024 /* タスクのスタックサイズ */
-#define STACK_SIZE_AF 1024 /* タスクのスタックサイズ */
-#define STACK_SIZE_MONITOR 1024 /* タスクのスタックサイズ */
-#define TASK_PORTID 1 /* 文字入力するシリアルポートID */
+ /** breif タスクのスタックサイズ */
+#define STACK_SIZE_RX_IF 1024
+ /** breif タスクのスタックサイズ */
+#define STACK_SIZE_AF 1024
+ /** breif タスクのスタックサイズ */
+#define STACK_SIZE_MONITOR 1024
+ /** breif 文字入力するシリアルポートID */
+#define TASK_PORTID 1
#ifndef _MACRO_ONLY
/**
- * \brief フレームワークがラジオとのやりとりに使う変数。
+ * \brief ã\83\95ã\83¬ã\83¼ã\83 ã\83¯ã\83¼ã\82¯ã\81\8cã\83©ã\82¸ã\82ªã\81¨ã\81®ã\82\84ã\82\8aã\81¨ã\82\8aã\81«ä½¿ã\81\86å¤\89æ\95°ã\81®å\9e\8bã\80\82
* \details
* フレームワークはFPGAから送られてきたデータをこの変数の中に格納する。復調アルゴリズムは \ref getInfo を通してこれらの値にアクセスする。
*/
// ラジオアルゴリズムとのやりとりに使う変数
extern struct RADIO {
- unsigned short flags;
- unsigned short smeter;
- unsigned short comdata[PARAMDATA_NUM];
+ unsigned short flags; /**< DSPからFPGA/SHマイコンへ送るステータスフラグ */
+ unsigned short smeter; /**< DSPからFPGA/SHマイコンへ送るSメータ値 */
+ unsigned short comdata[PARAMDATA_NUM]; /**< DSPへSHマイコン/FPGAから送るコマンド群 */
} radio;
+/**
+ * \brief フレームワークがラジオとのやりとりに使う変数。
+ */
extern struct RADIO radio;
-
-extern void rx_if_task(VP_INT exinf); /* SPORT0 RX DMAバッファの内容を復調するタスク */
-extern void af_task(VP_INT exinf); /* 復調済みAF信号をSPORT0 TX DMAバッファにコピーするタスク */
-extern void monitor_task(VP_INT exinf); /* SPORT0 TX DMAバッファにAFデータを書き込むタスク */
-extern void sport0_rx_int_handler( void ); /* SPORT0 RX DMA割り込みのハンドラ */
-extern void sport0_tx_int_handler( void ); /* SPORT0 TX DMA割り込みのハンドラ */
-void init_peripherals(VP_INT p); /* ペリフェラルの初期化関数 */
-
+ /**
+ * \brief SPORT0 RX DMAバッファの内容を復調するタスク
+ * \param exinf タスクに渡す拡張データ。このタスクには何も渡さなくていい
+ * \details
+ * このタスクは \ref sport0_rx_int_handler() 割り込みハンドラからの
+ * セマフォ・シグナルを受け取って受信処理を行う。
+ */
+
+extern void rx_if_task(VP_INT exinf);
+
+ /**
+ * \brief 復調済みAF信号をSPORT0 TX DMAバッファにコピーするタスク
+ * \param exinf タスクに渡す拡張データ。このタスクには何も渡さなくていい
+ * \details
+ * このタスクは \ref sport0_tx_int_handler() 割り込みハンドラからの
+ * セマフォ・シグナルを受け取り、タスク間キューからデータを取り出しSPORT処理を行う。
+ */
+extern void af_task(VP_INT exinf);
+
+ /**
+ * \brief デバッグ用のデータ収集を行うバックグラウン・タスク
+ * \param exinf タスクに渡す拡張データ。このタスクには何も渡さなくていい
+ */
+extern void monitor_task(VP_INT exinf);
+
+ /**
+ * \brief SPORT0 RX DMA割り込みのハンドラ
+ */
+extern void sport0_rx_int_handler( void );
+
+ /**
+ * \brief SPORT0 TX DMA割り込みのハンドラ
+ */
+extern void sport0_tx_int_handler( void );
+
+ /**
+ * \brief ペリフェラルの初期化関数
+ * \param p タスクに渡す拡張データ。このタスクには何も渡さなくていい
+ */
+void init_peripherals(VP_INT p);
+
+/*@}*/
#endif /* _MACRO_ONLY */
# title of most generated pages and in a few other places.
# The default value is: My Project.
-PROJECT_NAME = Hirado
+PROJECT_NAME = Hirado
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 0.9
+PROJECT_NUMBER = 0.9.1
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# no effect if EXTRACT_ALL is enabled.
# The default value is: NO.
-HIDE_UNDOC_CLASSES = NO
+HIDE_UNDOC_CLASSES = YES
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
# (class|struct|union) declarations. If set to NO these declarations will be
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/*
-EXCLUDE_PATTERNS = *.c
+EXCLUDE_PATTERNS = *.c
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
# patterns match the file name, INPUT_FILTER is applied.
-FILTER_PATTERNS = *.h
+FILTER_PATTERNS = *.h
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER ) will also be used to filter the input files that are used for