• R/O
  • HTTP
  • SSH
  • HTTPS

dsp: 提交

TRX-305内蔵DSPのフレームワーク開発リポジトリ。


Commit MetaInfo

修訂2c61cffbb37a86776a0b5de7291ccda6faf94034 (tree)
時間2015-10-04 21:26:28
作者takemasa <suikan@user...>
Commitertakemasa

Log Message

doxygenコメントの追加

Change Summary

差異

--- a/hirado/.settings/language.settings.xml
+++ b/hirado/.settings/language.settings.xml
@@ -5,7 +5,7 @@
55 <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
66 <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
77 <provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
8- <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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
8+ <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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
99 <language-scope id="org.eclipse.cdt.core.gcc"/>
1010 <language-scope id="org.eclipse.cdt.core.g++"/>
1111 </provider>
--- a/hirado/demodulator.h
+++ b/hirado/demodulator.h
@@ -9,9 +9,28 @@
99
1010
1111 #ifndef _MACRO_ONLY
12+
13+ // Following mode macro can be used only the demodulator
14+
15+ /** \brief 受信機はワイドFMモードである */
16+#define radio_mode_WFM 2
17+ /** \brief 受信機はナローFMモードである */
18+#define radio_mode_NFM 4
19+ /** \brief 受信機は振幅変調モードである */
20+#define radio_mode_AM 5
21+ /** \brief 受信機は振幅変調モードの同期復調モードである */
22+#define radio_mode_SAM 6
23+ /** \brief 受信機はLSB復調モードである */
24+#define radio_mode_LSB 7
25+ /** \brief 受信機はUSB復調モードである */
26+#define radio_mode_USB 8
27+ /** \brief 受信機はCW復調モードである */
28+#define radio_mode_CW 9
29+
30+
1231 /**
1332 * \defgroup radioAPI ラジオAPI
14- * \brief 復調器がTRX-305の制御部と情報の授受を行うためのAPI群
33+ * \brief 復調器がSHマイコン/FPGAと情報の授受を行うためのAPI群
1534 * \details
1635 * このモジュールに含まれるAPIは、復調器の中でユーザー復調アルゴリズムが使うために
1736 * 公開されている。制御情報取得用APIはTRX-305からの制御情報を受け取るためのものである。
@@ -24,7 +43,7 @@
2443
2544 /**
2645 * \defgroup getInfo 制御情報取得API
27- * \brief 復調器がTRX-305から受け取る制御情報取得用のAPI
46+ * \brief 復調器がSHマイコン/FPGAから受け取る制御情報取得用のAPI
2847 * \details
2948 * ここに列挙されるAPIは、いずれも復調器内のユーザーアルゴリズムから自由に使ってよい。
3049 *
@@ -49,22 +68,6 @@
4968 */
5069 /*@{*/
5170
52- // Following mode macro can be used only the demodulator
53-
54- /** \brief 受信機はワイドFMモードである */
55-#define radio_mode_WFM 2
56- /** \brief 受信機はナローFMモードである */
57-#define radio_mode_NFM 4
58- /** \brief 受信機は振幅変調モードである */
59-#define radio_mode_AM 5
60- /** \brief 受信機は振幅変調モードの同期復調モードである */
61-#define radio_mode_SAM 6
62- /** \brief 受信機はLSB復調モードである */
63-#define radio_mode_LSB 7
64- /** \brief 受信機はUSB復調モードである */
65-#define radio_mode_USB 8
66- /** \brief 受信機はCW復調モードである */
67-#define radio_mode_CW 9
6871
6972 // These APIs are published for the demodulator programmer
7073 /**
@@ -267,12 +270,50 @@
267270
268271 /**
269272 * \defgroup setStat 状態報告API
273+ * \brief DSPがFPGA/SHマイコンに情報を送るためのAPI群
270274 */
271275 /*@{*/
272276
273-// Set S meter
277+/**
278+ * \def radio_api_set_S_meter
279+ * \brief Sメータ値のセット
280+ * \details
281+ * このAPIはDSPからFPGA/SHマイコンに渡すSメータ値を設定する。値の範囲は
282+ * 15bit符号なし整数である。APIは受け取った値をそのままFPGAに送信する。
283+ */
274284 #define radio_api_set_S_meter(s) radio.smeter = s
275285
286+ /**
287+ * \def radio_api_set_stereo
288+ * \brief FMステレオ受信状態の報告
289+ * \details
290+ * FM復調がモノラルかステレオを報告する。引数は以下のように与える
291+ * \li 0 : モノラル
292+ * \li 非1 : ステレオ
293+ */
294+#define radio_api_set_stereo(s) s ? radio.flags |= (1<<1) : radio.flags &= ~(1<<1)
295+
296+ /**
297+ * \def radio_api_set_voice_squelch
298+ * \brief ボイススケルチ状態の報告
299+ * \details
300+ * 復調器がボイススケルチを持っている場合、その状態を報告する。
301+ * \li 0 : ボイススケルチは開いていない
302+ * \li 1 : ボイススケルチは開いている
303+ */
304+#define radio_api_set_voice_squelch(s) s ? radio.flags |= (1<<2) : radio.flags &= ~(1<<2)
305+
306+/**
307+ * \def radio_api_set_noise_squelch
308+ * \brief ノイズスケルチ状態の報告
309+ * \details
310+ * 復調器がノイズスケルチを持っている場合、その状態を報告する。
311+ * \li 0 : ノイズスケルチは開いていない
312+ * \li 1 : ノイズスケルチは開いている
313+ */
314+#define radio_api_set_noise_squelch(s) s ? radio.flags |= (1<<3) : radio.flags &= ~(1<<3)
315+
316+
276317 /*@}*/
277318 /* end of defgroup setStat */
278319
@@ -281,19 +322,16 @@
281322
282323 /**
283324 * \defgroup callbacks 復調用コールバック関数
325+ * \brief フレームワークが復調ように呼び出すコールバック関数群
284326 * \details
285327 * 復調器のためにフレームワークから呼び出すコールバック関数。復調アルゴリズムは全てこの中に記述する。
286328 *
287329 * 関数は大きく分けて2種類に分けられる。ひとつは初期化関数で \ref init_demodulator() がこれである。
288330 * その他の関数は実際の復調を行う関数である。
289331 */
290- */
332+
291333 /*@{*/
292334
293-/**
294- * \brief 復調アルゴリズム初期化関数
295- * \detail
296- */
297335
298336 /**
299337 * \brief 復調器の初期化
--- a/hirado/framework.h
+++ b/hirado/framework.h
@@ -17,6 +17,29 @@
1717 *
1818 */
1919
20+/**
21+ * \mainpage
22+ * \section section_overview 概要
23+ * このドキュメントは、HiradoフレームワークのAPIについて解説する
24+ *
25+ * HiradoはSDR無線機TRX-305のDSP部の復調器フレームワークである。
26+ *
27+ * プログラマは \ref callbacks の関数群を埋める形で復調器を実装する。
28+ *
29+ * \section section_api API
30+ * コールバックの中からは \ref radioAPI にある無線APIを使って
31+ * 制御用のSHマイコン/FPGAと通信を行う。通信する内容は2種類ある。
32+ * \li 制御用マイコンからの制御命令
33+ * \li DSPからのステータス通知
34+ * \section section_debug デバッグについて
35+ * フレームワークにはデバッグ支援機能があり、デバッグマクロを宣言することで利用できる。
36+ * これらの機能はすべてDSPのuartを利用している。通信速度は115200baud, 8bit, parityなし、
37+ * 1stopbitである。
38+ *
39+ * フレームワークのデバッグ機能については \ref framework.h の解説を参照。
40+ *
41+ *
42+ */
2043 #ifndef _FRAMEWORK_H_
2144 #define _FRAMEWORK_H_
2245
@@ -27,6 +50,11 @@
2750 #include <t_services.h>
2851 #include "demodulator.h"
2952
53+/**
54+ * \defgroup radioFramework フレームワーク内部宣言
55+ * \brief フレームワークの内部で使うオブジェクトの内部宣言。基本的にユーザーは参照しなくていい
56+ */
57+/*@{*/
3058
3159 /*
3260 * デバッグマクロ
@@ -101,10 +129,13 @@
101129 */
102130 #define AF_QUESIZE 80 /* 送受信タスクの間のキューの長さ。8サンプルが最長割り込み周期と仮定してさらにマージンをもたせている */
103131
104-#define WIDE_FM_OVERSAMPE 8 /* AF1サンプルあたりのWide FM サンプル数 */
132+ /** \brief AF1サンプルあたりのWide FM サンプル数 */
133+#define WIDE_FM_OVERSAMPE 8
105134
106-#define WIDE_FM_FLAG 2 /* プライマリ・チャンネルのWIDE FM Modeを表すフラグのマスク */
135+ /** \brief プライマリ・チャンネルのWIDE FM Modeを表すフラグのマスク */
136+#define WIDE_FM_FLAG 2
107137
138+ /** \brief SHマイコン/FPGAから送られてくるコマンドの種類の数 */
108139 #define PARAMDATA_NUM 16
109140
110141
@@ -112,20 +143,27 @@
112143 * 各タスクの優先度の定義
113144 */
114145
115-#define TASK_PRIORITY_AF 5 /* AF DMAタスクの優先度。送信なので優先度高 */
116-#define TASK_PRIORITY_RX_IF 10 /* RX-IF DMA処理タスクの優先度。復調も行う */
117-#define LOGTASK_PRIORITY 12 /* デフォルトの初期優先度を上書きする */
118-#define TASK_PRIORITY_MONITOR 15 /* モニター・タスクの優先度。優先度低 */
146+ /** breif AF DMAタスクの優先度。送信なので優先度高 */
147+#define TASK_PRIORITY_AF 5
148+ /** breif RX-IF DMA処理タスクの優先度。復調も行う */
149+#define TASK_PRIORITY_RX_IF 10
150+ /** breif デフォルトの初期優先度を上書きする */
151+#define LOGTASK_PRIORITY 12
152+ /** breif モニター・タスクの優先度。優先度低 */
153+#define TASK_PRIORITY_MONITOR 15
119154
120155 /*
121156 * ターゲット依存の定義(CPU例外ハンドラの起動方法など)
122157 */
123158
124-
125-#define STACK_SIZE_RX_IF 1024 /* タスクのスタックサイズ */
126-#define STACK_SIZE_AF 1024 /* タスクのスタックサイズ */
127-#define STACK_SIZE_MONITOR 1024 /* タスクのスタックサイズ */
128-#define TASK_PORTID 1 /* 文字入力するシリアルポートID */
159+ /** breif タスクのスタックサイズ */
160+#define STACK_SIZE_RX_IF 1024
161+ /** breif タスクのスタックサイズ */
162+#define STACK_SIZE_AF 1024
163+ /** breif タスクのスタックサイズ */
164+#define STACK_SIZE_MONITOR 1024
165+ /** breif 文字入力するシリアルポートID */
166+#define TASK_PORTID 1
129167
130168
131169
@@ -135,28 +173,65 @@
135173 #ifndef _MACRO_ONLY
136174
137175 /**
138- * \brief フレームワークがラジオとのやりとりに使う変数。
176+ * \brief フレームワークがラジオとのやりとりに使う変数の型。
139177 * \details
140178 * フレームワークはFPGAから送られてきたデータをこの変数の中に格納する。復調アルゴリズムは \ref getInfo を通してこれらの値にアクセスする。
141179 */
142180
143181 // ラジオアルゴリズムとのやりとりに使う変数
144182 extern struct RADIO {
145- unsigned short flags;
146- unsigned short smeter;
147- unsigned short comdata[PARAMDATA_NUM];
183+ unsigned short flags; /**< DSPからFPGA/SHマイコンへ送るステータスフラグ */
184+ unsigned short smeter; /**< DSPからFPGA/SHマイコンへ送るSメータ値 */
185+ unsigned short comdata[PARAMDATA_NUM]; /**< DSPへSHマイコン/FPGAから送るコマンド群 */
148186 } radio;
149187
188+/**
189+ * \brief フレームワークがラジオとのやりとりに使う変数。
190+ */
150191 extern struct RADIO radio;
151192
152-
153-extern void rx_if_task(VP_INT exinf); /* SPORT0 RX DMAバッファの内容を復調するタスク */
154-extern void af_task(VP_INT exinf); /* 復調済みAF信号をSPORT0 TX DMAバッファにコピーするタスク */
155-extern void monitor_task(VP_INT exinf); /* SPORT0 TX DMAバッファにAFデータを書き込むタスク */
156-extern void sport0_rx_int_handler( void ); /* SPORT0 RX DMA割り込みのハンドラ */
157-extern void sport0_tx_int_handler( void ); /* SPORT0 TX DMA割り込みのハンドラ */
158-void init_peripherals(VP_INT p); /* ペリフェラルの初期化関数 */
159-
193+ /**
194+ * \brief SPORT0 RX DMAバッファの内容を復調するタスク
195+ * \param exinf タスクに渡す拡張データ。このタスクには何も渡さなくていい
196+ * \details
197+ * このタスクは \ref sport0_rx_int_handler() 割り込みハンドラからの
198+ * セマフォ・シグナルを受け取って受信処理を行う。
199+ */
200+
201+extern void rx_if_task(VP_INT exinf);
202+
203+ /**
204+ * \brief 復調済みAF信号をSPORT0 TX DMAバッファにコピーするタスク
205+ * \param exinf タスクに渡す拡張データ。このタスクには何も渡さなくていい
206+ * \details
207+ * このタスクは \ref sport0_tx_int_handler() 割り込みハンドラからの
208+ * セマフォ・シグナルを受け取り、タスク間キューからデータを取り出しSPORT処理を行う。
209+ */
210+extern void af_task(VP_INT exinf);
211+
212+ /**
213+ * \brief デバッグ用のデータ収集を行うバックグラウン・タスク
214+ * \param exinf タスクに渡す拡張データ。このタスクには何も渡さなくていい
215+ */
216+extern void monitor_task(VP_INT exinf);
217+
218+ /**
219+ * \brief SPORT0 RX DMA割り込みのハンドラ
220+ */
221+extern void sport0_rx_int_handler( void );
222+
223+ /**
224+ * \brief SPORT0 TX DMA割り込みのハンドラ
225+ */
226+extern void sport0_tx_int_handler( void );
227+
228+ /**
229+ * \brief ペリフェラルの初期化関数
230+ * \param p タスクに渡す拡張データ。このタスクには何も渡さなくていい
231+ */
232+void init_peripherals(VP_INT p);
233+
234+/*@}*/
160235
161236 #endif /* _MACRO_ONLY */
162237
--- a/hirado/hirado.doxyfile
+++ b/hirado/hirado.doxyfile
@@ -32,13 +32,13 @@ DOXYFILE_ENCODING = UTF-8
3232 # title of most generated pages and in a few other places.
3333 # The default value is: My Project.
3434
35-PROJECT_NAME = Hirado
35+PROJECT_NAME = Hirado
3636
3737 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
3838 # could be handy for archiving the generated documentation or if some version
3939 # control system is used.
4040
41-PROJECT_NUMBER = 0.9
41+PROJECT_NUMBER = 0.9.1
4242
4343 # Using the PROJECT_BRIEF tag one can provide an optional one line description
4444 # for a project that appears at the top of each page and should give viewer a
@@ -457,7 +457,7 @@ HIDE_UNDOC_MEMBERS = NO
457457 # no effect if EXTRACT_ALL is enabled.
458458 # The default value is: NO.
459459
460-HIDE_UNDOC_CLASSES = NO
460+HIDE_UNDOC_CLASSES = YES
461461
462462 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
463463 # (class|struct|union) declarations. If set to NO these declarations will be
@@ -794,7 +794,7 @@ EXCLUDE_SYMLINKS = NO
794794 # Note that the wildcards are matched against the file with absolute path, so to
795795 # exclude all test directories for example use the pattern */test/*
796796
797-EXCLUDE_PATTERNS = *.c
797+EXCLUDE_PATTERNS = *.c
798798
799799 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
800800 # (namespaces, classes, functions, etc.) that should be excluded from the
@@ -857,7 +857,7 @@ INPUT_FILTER =
857857 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
858858 # patterns match the file name, INPUT_FILTER is applied.
859859
860-FILTER_PATTERNS = *.h
860+FILTER_PATTERNS = *.h
861861
862862 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
863863 # INPUT_FILTER ) will also be used to filter the input files that are used for
Show on old repository browser