Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I2c2 dma dev #7

Open
wants to merge 7 commits into
base: systask
Choose a base branch
from
Open

Conversation

UnknownSP
Copy link

@UnknownSP UnknownSP commented Sep 9, 2018

題名

I2C2の受信をDMAに変更、受信要求リストによって送受信実行を行うように変更

概要

I2C2の受信をDMAで行うように各種コードの追加を行いました。
受信要求を毎フレーム受信要求リストへ追加し、次の送受信を送受信完了コールバックと受信要求リストによって行うように変更いたしました。
また、以前のDMA送受信が終了していなかった場合にwarningメッセージを出すようにしました。

テスト項目と検証が必要な項目

###基本的な部分

  • コードは整形されてるか
  • コードは適切な関数わけされてるか
  • 命名は適切か
  • 定数回で終了が保証されてるか
  • その他に安全ではないことはないか

その他

I2C2による送受信関数を作成したので、I2C1との関数名の区別の為にI2C1の送受信関数の名前を多少変更いたしました。
それに伴ってI2C1を用いていたDD_MD.c DD_AB.c DD_SV.c にI2C1送受信関数名の変更があります。

見て欲しいところ

前回のコミット分も含まれているので、確認していただく箇所が多くなってしまっていますが、受信要求を追加しそれによって送受信を行う点を主に見ていただけるとありがたいです。

Unknown added 6 commits August 19, 2018 16:42
I2C2のデータ送信と受信をDMAによって行うための追加を行いました。
また、I2C2の送信関数を追加し、I2C1と関数名を区別するためにDD_I2C1Send、DD_I2C2Sendと送信関数名に番号を追加し、
それに伴いDD_I2CSendを用いていた関数名の変更を致しました。
前回のDMA送受信が終了していない場合、コールバック関数を用いて判断して次の送受信を行わないようにし、
受信エラー時のメッセージを追加しI2C1とI2C2でエラーメッセージが異なるように変更しました。
前回のI2C2のDMA送受信が終了していなかったした場合にメッセージにwarningを表示するように変更し、メッセージの修正を行いました。
修正コミットで修正した点を実機でテストし、問題が起きた点を修正致しました。
動作が分かりづらかったので、動作に関するコメントを追加致しました。
指摘していただいた、DMA送受信完了フラグと、DMA送受信状態を表す変数が同じ用途で用いられており、
統合が可能であったので統合し、DMA送受信状態を表す変数に関係するものを削除致しました。
I2C2の送受信をDMAに変更致しました。
受信要求を毎フレーム追加し、受信及び送信のコールバックによって受信要求に応じて
送受信を連続的に行うように変更致しました。
@elect-gombe
Copy link
Collaborator

@UnknownSP
検証用のコードを追加してください。
DMAを使うときとそう出ないときはコードが変わり、互換性は保てないはずです。例えばDMA転送に伴う変数の保護など。それなりの注意点をまとめたドキュメントやサンプルを用意してください。
用意できるまでは現状のままの方が良さそうです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants