OSDN Git Service

Changed some comments.
authorShinichiro Nakamura <shinta.main.jp@gmail.com>
Thu, 9 Aug 2012 17:36:01 +0000 (02:36 +0900)
committerShinichiro Nakamura <shinta.main.jp@gmail.com>
Thu, 9 Aug 2012 17:36:01 +0000 (02:36 +0900)
firm/bare_metal/ChangeLog [new file with mode: 0644]
firm/bare_metal/Makefile
firm/bare_metal/README
firm/bare_metal/main.c

diff --git a/firm/bare_metal/ChangeLog b/firm/bare_metal/ChangeLog
new file mode 100644 (file)
index 0000000..1293418
--- /dev/null
@@ -0,0 +1,16 @@
+2012-07-07 Shinichiro Nakamura <shinta.main.jp@gmail.com>
+
+       * \e$B%*%j%8%J%k$O\e(BVisualDSP++\e$B$r;HMQ$7$F$$$k!#\e(B
+
+       * \e$B;HMQ$7$F$$$k\e(BSPORT\e$B$r\e(BSPORT1\e$B$+$i\e(BSPORT0\e$B$KJQ99$7$?!#\e(B
+
+       * SPORT\e$B$NJQ99$KH<$$\e(BDMA3\e$B$+$i\e(BDMA1\e$B$KJQ99$7$?!#\e(B
+
+       * SPORT\e$B$NJQ99$KH<$$\e(BDMA4\e$B$+$i\e(BDMA2\e$B$KJQ99$7$?!#\e(B
+
+       * MUTE\e$B%T%s$N@)8f$rDI2C$7$?!#\e(B
+
+       * gcc\e$B8~$1$K3d$j9~$_4X?t$N<BAu$r=$@5$7$?!#\e(B
+
+2012-08-10 Shinichiro Nakamura <shinta.main.jp@gmail.com>
+
index c7484b2..23dd611 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Project name (also used for output file name)
 #
-PROJECT = cpuinfo
+PROJECT = bluetank
 
 #
 # Source files and search directories
index 0c50b5a..7680bba 100644 (file)
@@ -1,2 +1,2 @@
 ハードウェア動作確認用のベアメタルなファームウェア。
-
+オリジナルのコードは金子システムさんがウェブ上で公開されていたもの。
index cb9ed9c..67c2399 100644 (file)
@@ -17,8 +17,7 @@
  * ・どなたでも自由に改変して使用することができます。\r
  * ・このソフトウェアは無保証です。このファイルに記載されている情報・コードを\r
  *   使用する場合は、ユーザの責任において行ってください。これらの使用に\r
- *   起因し、ユーザまたは第三者に生じた損害に関し、当社は一切の責任を\r
- *   負いません。\r
+ *   起因し、ユーザまたは第三者に生じた損害に関し、当社は一切の責任を負いません。\r
  */\r
 \r
 #include <cdefBF592-A.h>\r
 #define NUM_SAMPLES     (256)\r
 \r
 /* SPORT RX DMA割り込みのプロトタイプ宣言 */\r
-#if 0\r
-EX_INTERRUPT_HANDLER(s_sport_rx_isr);\r
-#else\r
 void s_sport_rx_isr() __attribute__((interrupt_handler));\r
-#endif\r
 /* オーディオ処理用関数 */\r
-void s_audio_process(const int32_t* p_rxbuf, int32_t* p_txbuf, int32_t count);\r
+void s_audio_process(const int32_t* src, int32_t* des, int32_t count);\r
 \r
 /* TWI(I2C)初期化用関数 */\r
 void s_twi_init(void);\r
@@ -167,31 +162,35 @@ int main(void)
         }\r
     }\r
 \r
-    /* 割り込みハンドラをIVG9に登録 */\r
-#if 0\r
-    register_handler(ik_ivg9, s_sport_rx_isr);\r
-#else\r
+    /*\r
+     * 割り込みハンドラをIVG9に登録\r
+     */\r
     *pEVT9 = s_sport_rx_isr;\r
     asm("ssync;");\r
     asm volatile ("cli %0; bitset (%0, 9); sti %0; csync;": "+d"(iii)); // set IMASK bit\r
     asm("ssync;");\r
     *pSIC_IMASK |= IRQ_DMA1;\r
     asm("ssync;");\r
-#endif\r
 \r
-    /* SPORT RXの設定 */\r
-    /* 外部クロック、外部SYNC、MSB First */\r
-    /* 24ビットデータ、 ステレオ */\r
+    /*\r
+     * SPORT RXの設定\r
+     * 外部クロック、外部SYNC、MSB First\r
+     * 24ビットデータ、 ステレオ\r
+     */\r
     *pSPORT0_RCR1 = RFSR | RCKFE;\r
     *pSPORT0_RCR2 = SLEN(31) | RSFSE;\r
 \r
-    /* SPORT TXの設定 */\r
-    /* 外部クロック、外部SYNC、MSB First */\r
-    /* 24ビットデータ、 ステレオ */\r
+    /*\r
+     * SPORT TXの設定\r
+     * 外部クロック、外部SYNC、MSB First\r
+     * 24ビットデータ、 ステレオ\r
+     */\r
     *pSPORT0_TCR1 = TFSR | TCKFE;\r
     *pSPORT0_TCR2 = SLEN(31) | TSFSE;\r
 \r
-    /* DMA1(SPORT0 RX)の設定 */\r
+    /*\r
+     * DMA1(SPORT0 RX)の設定\r
+     */\r
     *pDMA1_PERIPHERAL_MAP = 0x1000;\r
     *pDMA1_CONFIG = FLOW_AUTO | DI_EN | DI_SEL | DMA2D | WDSIZE_32 | WNR;\r
     *pDMA1_START_ADDR = sf_sport_rxbuf;\r
@@ -200,7 +199,9 @@ int main(void)
     *pDMA1_Y_COUNT = 2;\r
     *pDMA1_Y_MODIFY = sizeof(int32_t);\r
 \r
-    /* DMA2(SPORT0 TX)の設定 */\r
+    /*\r
+     * DMA2(SPORT0 TX)の設定\r
+     */\r
     *pDMA2_PERIPHERAL_MAP = 0x2000;\r
     *pDMA2_CONFIG = FLOW_AUTO | DMA2D | WDSIZE_32;\r
     *pDMA2_START_ADDR = sf_sport_txbuf;\r
@@ -210,13 +211,17 @@ int main(void)
     *pDMA2_Y_MODIFY = sizeof(int32_t);\r
     asm("ssync;");\r
 \r
-    /* DMAを有効 */\r
+    /*\r
+     * DMAを有効\r
+     */\r
     *pDMA1_IRQ_STATUS = DMA_DONE;\r
     *pDMA1_CONFIG |= DMAEN;\r
     *pDMA2_CONFIG |= DMAEN;\r
     asm("ssync;");\r
 \r
-    /* SPORT0を有効 */\r
+    /*\r
+     * SPORT0を有効\r
+     */\r
     *pSPORT0_TCR1 |= TSPEN;\r
     *pSPORT0_RCR1 |= RSPEN;\r
     asm("ssync;");\r
@@ -254,13 +259,20 @@ int main(void)
     return 0;\r
 }\r
 \r
-void s_audio_process(const int32_t* p_rxbuf, int32_t* p_txbuf, int32_t count)\r
+/**\r
+ * @brief オーディオ処理を実行する。\r
+ *\r
+ * @param src 処理元バッファ。\r
+ * @param des 処理後バッファ。\r
+ */\r
+void s_audio_process(const int32_t *src, int32_t *des, int32_t count)\r
 {\r
-    /* 受信バッファのデータを送信バッファにコピー */\r
-    memcpy(p_txbuf, p_rxbuf, count * sizeof(int32_t));\r
+    memcpy(des, src, sizeof(int32_t) * count);\r
 }\r
 \r
-/* TWI(I2C)初期化 */\r
+/**\r
+ * @brief TWI(I2C)を初期化する。\r
+ */\r
 void s_twi_init(void)\r
 {\r
     *pTWI_CONTROL = 0;\r
@@ -273,6 +285,17 @@ void s_twi_init(void)
     asm("ssync;");\r
 }\r
 \r
+/**\r
+ * @brief TWI(I2C)バスに書き込む。\r
+ *\r
+ * @param slave_addr スレーブアドレス。\r
+ * @param rstart スタートコンディション。\r
+ * @param p_data データ。\r
+ * @param write_cnt 書き込むデータバイト数。\r
+ *\r
+ * @retval NO_ERROR エラーなし。\r
+ * @retval TWI_ERROR_NAK エラー。\r
+ */\r
 int32_t s_twi_master_write(uint8_t slave_addr, int32_t rstart, const uint8_t* p_data, int32_t write_cnt)\r
 {\r
     int32_t l_idx;\r
@@ -285,6 +308,7 @@ int32_t s_twi_master_write(uint8_t slave_addr, int32_t rstart, const uint8_t* p_
     *pTWI_INT_STAT = *pTWI_INT_STAT;\r
     *pTWI_MASTER_STAT = BUFWRERR | BUFRDERR | LOSTARB | ANAK | DNAK;\r
     *pTWI_MASTER_ADDR = slave_addr;\r
+\r
     /*\r
      * Send first byte\r
      */\r
@@ -300,7 +324,9 @@ int32_t s_twi_master_write(uint8_t slave_addr, int32_t rstart, const uint8_t* p_
         asm("ssync;");\r
     }\r
 \r
-    /* 転送終了まで待機 */\r
+    /*\r
+     * 転送終了まで待機\r
+     */\r
     while ((*pTWI_INT_STAT & MCOMP) == 0U) {\r
         asm("ssync;");\r
     }\r