UJA1169をS32Kマイコンの電源管理チップとして、 またリンク https://nxp.flexnetoperations.com/control/frse/download?element=3892128 からダウンロードした UJA116xA SBC AUTOSAR R21-11 のSBCのドライバコードとして使用しています 。ただし、Wdg_43_uja116xa_TS_T40D2M8I0R0モジュールでコードを使用しているときに次の問題が発生しました。
1、ウォッチドッグモードは 、Wdg_uja116xa_Ip_SetMode インターフェースを介して設定することはできません 。コードを確認したところ、 Wdg_uja116xa_Ip_SetMode が Wdg_uja116xa_Ip_ConfigureWatchdog を呼び出してウォッチドッグ制御レジスタを構成し ていることがわかりました 。ただし、 Wdg_uja116xa_Ip_SetMode が Wdg_uja116xa_Ip_ConfigureWatchdog を呼び出す と 、渡されるパラメーター pWdgConfig は古い構成構造です。 pWdgConfig 構造体は、Wdg_uja116xa_Ip_ConfigureWatchdog の呼び出し後にのみ更新されます 。
これは論理的な欠陥を表していますか?なぜなら、インターフェースの主張された機能は、現状では実現できないからです。 Wdg_uja116xa_Ip_ConfigureWatchdog を呼び出す前に pWdgConfig を更新する行を追加すると、 効果的に機能します。
2、 Wdg_43_uja116xa_SetMode インターフェースはAUTOSAR要件を満たすモードスイッチングを実現できません。調査の結果、このインターフェイスはウォッチドッグ制御レジスタに対して低レベルの操作を実行しません。いくつかのグローバル変数のみを更新します。
このインターフェイスは、事前設定インターフェイスとしてのみ意図されており、SLOWモードとFASTモード間の実際の切り替えはWdg_43_uja116xa_Triggerを介して実装されていますか?私はWdg_43_uja116xa_Trigger関連するグローバル変数を使用していることに気づきました。
その場合、Wdg_43_uja116xa_SetMode直後に Wdg_43_uja116xa_Triggerに電話をかけることはできますか?GPTがWdg_43_uja116xa_Triggerを呼び出すのを待つのではなく、モードの移行をすぐに有効にしたいです。
別の問題は、コメントが Wdg_43_uja116xa_SetMode がOFF、SLOW、およびFASTモードを切り替えることができることを示していることです。ただし、 Wdg_43_uja116xa_SetMode によって呼び出される Wdg_uja116xa_ValidateMode インターフェイスでは 、FASTモードとSLOWモードのみが許可されます。OFF モードをパラメータとして渡すと、 E_NOT_OK が返されます 。この行動の理由を明確にしていただけますか?
3、 Wdg_43_uja116xa_Exts_UpdateWatchdogConfig インターフェースにもいくつかの論理的な問題があるようです。インターフェイスは、 WdgIf_ModeType 型の eDefaultMode パラメーター をインデックスとして使用し、 pModeSettings 配列の構成を Wdg_uja116xa_Ip_ConfigureWatchdog を介してウォッチドッグ レジスタに 書き込みます 。ただし、インデックスと構成の間のマッピングに問題がある可能性があります。
たとえば、 EB によって生成された Wdg_uja116xa_ConfigPredefined では、 WDGIF_SLOW_MODE に対応する値は 0x01U です 。ただし、 Wdg_uja116xa_Ip_ConfigType 型の pModeSettings 配列では 、 Wdg_uja116xa_SlowModeSettings はインデックス 0 に対応します 。
コードの一部では、Wdg_uja116xa_WdgModeToIndex インターフェイスを使用してインデックスを再マップします。このリマップインターフェイスがWdg_43_uja116xa_Exts_UpdateWatchdogConfigで使用されていないのはなぜですか?
4、Wdg_uja116xa_Ip_ConfigureWatchdogインターフェースでは、ウォッチドッグモードが変更された場合にのみSBCがスタンバイモードに設定されます。ただし、データシートと実験結果によると、ウォッチドッグ制御レジスタに異なる周期を書き込むときは、SBCもスタンバイモードに切り替える必要があります。そうしないと、SPI エラーが発生する可能性があります。
したがって、次のコードでは、期間の条件チェックを追加する必要がありますか?
#uja1169
Hi Bai,
どういたしまして、私たちはあなたの疑問を解決するのを手伝うことができてうれしいです。
現在、UJA1169Aソフトウェアのリリースは予定されていません。
BRs, Tomas
こんにちはトーマス
あなたの応答は私の疑問を解決しました、どうもありがとうございました。
私は別の質問があります:私は公式ウェブサイトでこのソフトウェアのアップデートを見なかったので、私は使用可能なUJA1169ソフトウェアの新しいバージョンがあるかどうかを知りたいです。
Hi Bai,
お待ちいただきありがとうございます。SWエンジニアからの完全なフィードバックは以下をご覧ください。
1.回避策は正しいですが、Wdg_uja116xa_Ip_ConfigureWatchdogを呼び出す前に pWdgConfig.ModeControl を更新する必要があります。
2.いいえ、これは事前設定として意図されたものではなく、私たちの側からの見落としです。
ある。イミディエイト モード スイッチの推奨される回避策は、SetMode 関数の最後に Trigger 関数への呼び出しを追加することです。
b.背後にある理由は、ウォッチドッグの実際のオフモードがないからです。これは、Wdgモードが自律モードであり、Sbcモードがスタンバイ/スリープである必要がある特定のシナリオでウォッチドッグがオフになっているだけです。AUTOSARの説明に従って、この関数はWdgモジュールとWdgハードウェアのみを設定し、Sbcハードウェア部分は設定しません。WdgをOFFモードに設定するための推奨される回避策は、WdgモードをAUTONONOUSICに呼び出し、Sbcモードをスリープ/スタンバイに切り替えることです
3. 推奨される回避策は、以下に示すように、関数Wdg_uja116xa_WdgModeToIndexに呼び出しを追加することです。
4. この行で、期間を変更するかどうかのチェックを入れてください。推奨される回避策は、次の画像で確認できます。
ご不明な点がございましたら、お知らせください。
BRs, Tomas
Hi Bai,
ご質問への回答が遅れてしまい申し訳ございません。クリスマス休暇の後、私は仕事に戻り、あなたの質問を私たちのSWエンジニアに転送しました。来週、彼のフィードバックが届き次第、このスレッドを更新します。
ご理解いただきありがとうございます。
BRs, Tomas