1

Autosar OS をマイクロコントローラーに移植するアカデミー プロジェクトを行っています。Autosar、Arctic Core、Arctic Studio に関する論文や情報を読んだ後、いくつか質問があります。

  1. 以前は FreeRTOS をマイクロコントローラーに移植していましたが、それは非常に簡単です。FreeRTOS の *.h および *.c ファイルをいくつか含め、FreeRTOS 関数を使用してチップ上にアプリケーションをビルドしました。Autosar と同じようにできますか? 可能であれば、どのファイルを main.c に含める必要がありますか?
  2. 2 番目の質問です。FreeRTOS では、xcreatetask() 関数 (これは FreeRTOS 関数です) を使用してタスクの優先度を設定するだけで済みます。次に、vstarttaskschedule() 関数を適用してタスクをキューで実行しますが、これらの種類の関数は表示されませんオートサーOS。autosar のどの関数が、私が言った関数と同じ機能を持っているか教えてもらえますか?
  3. Texas Instrument チップをプログラムするとき、チップ用に構築するメイン プログラムを含むメイン関数が常に存在します。ただし、北極コアの例には主要な機能はありません。チップはメイン関数なしでどのようにプログラムを実行できますか? これらの質問に答えてください!
4

3 に答える 3

3

3, ARTIC コアのメイン関数が表示されない: AUTOSAR ではスタートアップ コードが定義されていません。main 関数は自分で書く必要があります。AUTOSAR OS のカーネルは ECUM モジュールから初期化されます。OS を起動するには、ECUM モジュールが必要です。また、スケジュール テーブルを開始するには、BSWM モジュールが必要です。RTE を開始するには、BSWM でルールを作成する必要があります。これにより、スケジュール テーブルが開始されます。メイン関数を呼び出す必要があることから、スタートアップ コード (RAM/レジスタ/etc の初期化) をハンドコーディングする必要があります。メイン関数はハンドコーディングされます。main 関数から EcuM_init を呼び出します。これでOSが起動します。2, タスクの優先度とアクティベーションを設定する関数が見つからない: AUTOSAR は動的なタスクの優先度をサポートしていません。構成ですべての優先順位を設定する必要があります。タスクを実行するには、ActivateTask() を使用できます。起動時にタスクを開始する簡単な方法の 1 つは、1 つのタスクにパラメーター OsTaskAutostart を設定することです。パラメータ OsTaskAutostart を設定したタスクは、カーネルが初期化されるとすぐに呼び出されます。

于 2015-04-23T14:29:06.357 に答える