Arm 用の S32DS で動作していた古いドライバ モデルには、ベア メタル実装をサポートするタイマー遅延用の API がありました。新しいリアルタイム・ドライバ モデルでは、同等のものが見つかりません。これを実行しようとするとエラーが発生します。添付のスクリーンショットを参照してください。
それを行う方法はありますか?
プロジェクトの詳細:
MCU: 144ピン構成のS32K148
システムOS: ベアメタル
RTD バージョン: 3.0.0
ドライバー構成: 低レベル (非 Autosar)。スクリーンショットを参照してください。
こんにちは@danielmartynek
更新ありがとうございます。これは私が発見したものと一致しています。いくつかフォローアップがあります:
1.SO、リアルタイム・ドライバには OSIf_TimeDelay() に相当するものはないのでしょうか?ドライバー API の他の部分にも同様のギャップが見られ、既存のコードの移植がやや困難になっています。
2. これらの API はすべての MCAL 実装で統一されていますか?言い換えれば、MCAL 準拠を主張する別のベンダーのハードウェアと MCAL 実装を使用する場合、これらすべての API がそのドライバ実装で利用できると期待できますか?(これを逆に読むこともできます。MCAL 準拠を主張する別のベンダーから NXP に移行する場合、NXP ドライバが他のベンダーのドライバが提供するすべての API を提供すると期待できますか?)
よろしくお願いいたします。
ドゥルガー・チョードリー
こんにちは、 @durga_choudhuryさん、
OsIf.hを参照してください。以下の機能があります:
OsIf_Init()、
OsIf_GetCounter()、
OsIf_MicrosToTicks()、
OsIf_GetElapsed()、
BR、ダニエル
こんにちは@durga_choudhuryさん、
1.
いいえ、そのような関数はありません。個々のドライバは OsIf API を使用します。たとえば、次のようになります。
2.
RTD には以下が含まれます。
MCAL の最上位層 (AUTOSAR) のみがポータブルです。
たとえば、Adc_Init()。
しかし、OsIf_GetElapsed() は AUTOSAR API ではなく、NXP 固有のものです。
よろしくお願いいたします。
ダニエル