1630873_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1630873_ja-JP

1630873_ja-JP

S32K-フラッシュドライバイメージの作成方法。

「Flashドライバ」とは

(以下の内容は、Klaus EmmertのFLASH Bootloader User Manual Version 2.7からの抜粋です)

「フラッシュ・ドライバ(実体はフラッシュ・アルゴリズム)は、フラッシュ関数を実行するためのハードウェア依存コードです。通常、フラッシュ・メモリのプログラミングをフラッシュから行うことはできません。そこで、フラッシュ・ドライバをRAMにダウンロードして実行することで、アプリケーションのプログラミングが可能になります。フラッシュ・アルゴリズムをRAMにダウンロードする利点は、プライマリ・ブートローダを再プログラムすることなくフラッシュ・アルゴリズムを更新できることです。ダウンロードが完了すると、アルゴリズムはRAMからクリアされ、アプリケーションの実行中にフラッシュ関数が誤って呼び出されるのを防ぎます。

特別なケースでは、フラッシュ・アルゴリズムはフラッシュ・メモリに保持されており、必要に応じてRAMにコピーされます。もちろん、この構成を使用した場合、フラッシュ・アルゴリズムの変更は不可能になります。さらに、これらの関数が誤って呼び出されることで、フラッシュ・メモリが意図せず消去される危険性があります。これを緩和するための対策としては、例えばXORなどの処理により、対応するプログラム・コードを暗号化することが考えられます」


デモについて

- ソフトウェアは「S32 Design Studio for S32 Platform V3.4」を使用しており、SDKは「RTM 4.0.3」です。

- S32K142-EVBを基にしたハードウェア

- 2つのデモが提供されています。1つは「フラッシュ・ドライバ」の作成用、もう1つはフラッシュ・ドライバのイメージのテスト用です。

    ·「Flash_Driver_Source_Project」:このルーチンはドライバ・イメージの作成に使用されます。

    ·「Flash_Driver_Source_Project_Test」:このルーチンはフラッシュ・ドライバ・イメージのテストに使用されます。

 

·フラッシュ・ドライバのイメージ作成のプロセス

1. 新規プロジェクトを作成し、フラッシュ・コンポーネントを追加します。

      提供されたデモを参照し、main.cファイルを修正します。

Senlent_0-1681178869405.png

注1 main.cで関数インデックステーブルを定義

2. リンク・ファイルを修正します。

Senlent_1-1681178869440.png

注2 修正後のS32K142_32_flash.ldファイル

Senlent_2-1681178869446.png


注3 修正後のS32K142_32_flash.ldファイル

3. フラッシュの操作に必要な関数に「attribute」コマンドを追加します。

Senlent_3-1681178869590.png


注4 関数に「attribute」をこのように追加

Senlent_4-1681178869619.png


      関数内で別の関数を参照している場合は、参照先の関数にも「attribute」を追加する必要があります。

4. プロジェクトをコンパイルし、xx.map ファイルを確認して、割り当てられたアドレス空間が正しいかどうかを確認してください。

Senlent_5-1681178869676.png


注5 Flash_Driver_Source_Project.mapを確認してください

5. フラッシュ・ドライバを作成します。

Senlent_6-1681178869728.png


注6 フラッシュ・イメージを作成

Senlent_7-1681178869783.png


注7 画像フォーマットを選択

Senlent_8-1681178869825.png


注8 フラッシュ・ドライバ・イメージを作成

      「xx.s19」ファイルを新規作成し、0x1fffe000~0x1ffffffffの範囲のデータをこのファイルにコピーします。

Senlent_9-1681178869900.png


注9 必要に応じてリンクの順序を変更

      一部の関数が別のファイルに分散している場合は、リンクの順序を変えることで、関数アドレスの割り当てを変更できます。


フラッシュドライバイメージをテストするプロセス

1. フラッシュ・コンポーネントを追加せずに、新しいプロジェクトを作成します。

新しいプロジェクトを作成する必要がありますが、Flash コンポーネントを追加する必要はありません。

2. 前に示したのと同様にリンク・ファイルを修正します。

3. 提供されたデモを参照し、main.cファイルを修正します。

4. プロジェクトをコンパイルし、.mapファイルをチェックして、割り当てられた配列の位置のアドレス空間が正しいかどうかを確認します。

Senlent_10-1681178869941.png


10 Function_TABLEがすでに正しい場所に配置されていることを確認してください

5.デバッグセクションに入り、準備したフラッシュドライバーイメージをインポートします。

Senlent_11-1681178870007.png


注12 フラッシュ・モジュールを操作する前にフラッシュ・ドライバ・イメージをインポート

6. フラッシュ・ドライバが正常に動作するかどうかをテストします。

Senlent_12-1681178870042.png


注13 テスト結果を確認してください

こうして、フラッシュ・ドライバ・イメージの作成方法とテスト方法がわかりました。この方法は、フラッシュ操作に関連する関数の作成に限らず、他の関数にも同じように適用できます。ただし、そのようなシナリオを必要とするアプリケーションはほとんどありません。

回答: S32K-フラッシュ ドライバー イメージの作成方法。

こんにちは。ご指定の方法で設定しましたが、生成されたマップファイルのアドレスが間違っています。リンクファイルのコンパイル順序を変更するにはどうすればよいですか?

binZhang01_0-1720078509141.png


Re: S32K-フラッシュドライバーイメージの作成方法。

新しいRTD 3.0.0に対応したS32K3XX用の更新版はありますか?

Tags (1)
No ratings
Version history
Last update:
‎01-05-2026 01:02 AM
Updated by: