2413395_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2413395_ja-JP

2413395_ja-JP

EB Tresos生成のRTDドライバをFreeRTOS + MPUで使用する

こんにちは、

当社ではRTD 6.0.0とBMS 0.9.1を使用しています。EB TresosのSDKを使ってドライバーコードを生成します。MPUを使わないCortex M7ポートのFreeRTOSでは問題なく動作します。

今度はMPUを使うFreeRTOSポートに切り替えたいです。これを2つのステップで行いたい。

1) すべてのタスクを特権的に設定しつつMPUを使用する、すなわち各コンテキストスイッチでMPUを再プログラムすること

2) すべてのタスクを非特権にする。つまり、非特権タスクで使われるドライバーで「ユーザーモードのサポートを有効にする」を有効にする必要があります

今のところ、私は1)で苦戦しています。ドライバ機能は安定して動作しません。例えば、SPIは断続的にしか動作しない。MPU領域が正しく動作していないようです。たとえこれが解決したとしても、2)どうやって実装できるのでしょうか?スーパーバイザコールハンドラは、FreeRTOSとRTDによって提供されます。それらを統合するべきでしょうか?

Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU

こんにちは、 @Julián_AragónM
私はFreeRTOSを公式サイトからダウンロードし、Cortex M7とMPUの両方に対応しているポートを使っていました。私の理解が正しければ、NXPが提供するFreeRTOSを使用する必要があるということですね。私はS32DSで設定可能なNXPのFreeRTOSしか見つけられず、EB Tresosは見つかりませんでした。私の質問は以下の通りです:
- 正しいM7+MPUポートが付いている汎用FreeRTOSを使えますか?
- もしなければ、NXPが提供するFreeRTOSでEB Tresosで設定できるものはありますか?

いずれはASIL-D認証済みのOSを使用する必要がある。NXPが提供するFreeRTOSがASIL-D認証を受けていないなら、別のものに切り替える必要があります。

Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU

こんにちは、 @PhilippH さん

まず、FreeRTOS 7.0.0でMPUの初期サポートが追加されましたCD1、これがあなたが使っているパッケージであることを確認できますか?(または最新リリースである0.8.0 CD1)。

1) どのMPUリージョンが正しく動作していないか教えてもらえますか?可能であれば、設定と手順を共有してください。

また、S32K3 FreeRTOSユーザーマニュアルに含まれる推奨事項に従ってください:

  • 「Use mpu」および「Use mpu wrappers v1」オプションを有効にします。
  • RTDのMPU領域との競合を避けるため、最初の設定可能領域を0ではなく9に設定してください。

注記: FreeRTOSをMPUサポートと統合するには、FreeRTOSで使用される必要なメモリセクションを定義するためにRTDリンカーファイルを修正する必要があります。アプリケーションに変更を適用する際は、サンプルファイルを参考にしてください。

2) FreeRTOSConfig.h なのでマージは不要だと思います以下のマクロを宣言します。

/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
standard names. */
#define vPortSVCHandler                             SVC_Handler
#define xPortPendSVHandler                          PendSV_Handler
#define xPortSysTickHandler                         SysTick_Handler

これにより、FreeRTOSのSVC呼び出しが、exceptions.cにあるRTD提供のSVC_Handlerにリダイレクトされます。

よろしくお願いします、
ジュリアン


Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU

こんにちは、 @PhilippH さん

- 正しいM7+MPUポートが付いている汎用FreeRTOSを使えますか?

汎用版FreeRTOSポートを使うこともできますが、S32K3専用の設定については、NXP FreeRTOSパッケージにほとんど提供されている独自のソリューションを実装する必要があります。まずこのポートから始めてみて、問題が解決するかどうか確認してください。

- もしなければ、NXPが提供するFreeRTOSでEB Tresosで設定できるものはありますか?

いいえ、提供されているNXPパッケージは現時点でS32DSのみに対応しています。なぜEB TresosでFreeRTOSが必要なのか教えていただけますか?

通常、EB TresosはAUTOSAR準拠のアプリケーションに使われますが、私たちが提供したFreeRTOSパッケージはお客様評価用であり、オートモーティブ認証(ISO26262)を満たしていないため、生産での使用は推奨されていません。FreeRTOSはオープンソースソフトウェアであり、NXPがセーフティ認証なしでリファレンスソフトとして提供しているため、コードドロップ(CD)品質としてリリースされているのがわかります。

もしセーフティ認証済みOSが必要な場合は、パートナーの方からも他の選択肢を検討できます。

プロジェクトに適したサードパーティRTOS、スタック、IDE、コンパイラなどを選ぶのはお客様次第です。

よろしくお願いします、
ジュリアン

Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU

ご回答ありがとうございました。

NXPが提供するSafeRTOSとPortで動作させることができました。NXPが提供するポートは、SafeRTOSが提供する汎用Cortex M7 + MPUポートで抱えていた問題をすでに解決していました。

EB Tresosの必要性について:最初はS32DSから始めましたが、使用しているICの関係で、当時S32DSには使えなかった最新のBMS SDKが必要でした。Autosarはできるだけ控えめにしたいです。今のところうまくいっていたのは、ドライバ関数を生成し、FreeRTOSから呼び出すことでした。私たちはAutosar RTEを使用しておらず、今後も使う予定はありません。


サードパーティ製OSについて:「簡単な移行で」というのは、SafeRTOSにも同じくらい使いやすいポートが存在するという意味でしょうか?以前SafeRTOSを使っていましたが、AUTOSARドライバではなく、完全に手書きのドライバでした。

Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU

こんにちは、 @PhilippH さん

期待通りに動作していると聞いて安心しました!

FreeRTOを使用する場合、SafeRTOSへの移行は一般的に最も簡単な方法です。なぜなら、両者は同じ機能モデル上で動作し、専用の移行ツールを提供しているからです。残念ながら、NXPはS32K3用のSafeRTOSポートを提供していません。

WHISのページを見ると、S32KxxデバイスはRTDでサポートされており、AUTOSARアプリケーションと非AUTOSARアプリケーションの両方で完全なIPと機能カバレッジを提供しているため、Autosarを使わない選択が可能です。

よろしくお願いします、
ジュリアン

标记 (1)
无评分
版本历史
最后更新:
星期五
更新人: