2016-11-08 6 views
0

私のコードが読み出されないようにしたいのですが、STM32にはこれを行うための機能がインターネット上にあります。しかし、私はいくつかのサンプルコードを見つけることに失敗し、また、私はそれを使用する方法を理解していない?STM32L0保護のサンプルコードを読み込みますか?

  • 私のメインコードを呼び出す前に、冒頭に読み出し保護機能READ_PROTECTION()を配置する必要がありますか?または
  • メインコードを呼び出した後に最後に配置する必要がありますか?

このコード例は、私にとって本当に役に立ちます。

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

+1

[このSTアプリケーションノート](http://www.st.com/content/ccc/resource/technical/document/application_note/89/12/c5/e2/0d/0e/45/7f/DM00186528) pdf/files/DM00186528.pdf/jcr:content/translations/ja.DM00186528.pdf)には、必要なものすべてが記載されています。 – LPs

+0

こんにちは@LPs、保護レベル0/1/2を読んで、私が必要とするものによく合っているようですが、_FLASH_OB_RDPConfig(OB_RDP_Level_1); _のような機能を内蔵しています。この機能を使用するために。 – bienle

+0

したがって、すぐに使用できるソリューションを探しています。あなたは簡単に勝つのが好きです...;)あなたはスキルを向上させ、その機能の使い方を理解し、あなた自身で何かを書くようにしてください。問題が発生した場合は、ご質問を投稿することができます。 – LPs

答えて

1

STM32フラッシュメモリは、2つのメモリ領域で構成されています。最初の書き込み読み出し保護、2番目の読み出し保護。参考までにthisを参照してください。適切なメモリ領域にコードをロードし、適切なオプションバイトを設定する適切なリンカスクリプトを書くだけです。これを行う方法here。また、リンカファイルを含める方法は、hereを参照してください。

EDT:Hereclive1ポストを参照してください)あなたのポストで述べた機能を使用してコードから直接バイトのオプションを設定する方法の一例であるそれらの機能は、(参照のためthisを参照)MBEDライブラリの一部であるように見えます。このコードは、mainの関数で実行する必要があります。 Hereは、コントローラコードからのオプションバイトプログラミングに関するいくつかの有益な情報です。

+0

こんにちは@nopasara、私はあなたが上で提供したリンクをすばやく見ていましたが、私はリンカのスクリプトの基本的な知識が十分ではないので、理解しにくいです。 インターネットで検索しましたが、_FLASH_OB_RDPConfig(OB_RDP_Level_1); _のような保護レベル0/1/2を読み取るためにSTM32に組み込まれている機能がいくつかあります。この関数は私が必要とするものを十分に満たしていると思われますが、残念ながらそれらを使用する方法の例はありません。 – bienle

1

コードが変更される可能性があるため、コードに追加する必要はありません。また、セクタを非可読にすると誤算する可能性があります。コードをフラッシュした後、ST Link utilityを使用して、フラッシュメモリの特定のセクションを選択し、コードに読み出し保護を設定することができます。

+0

OPはSTM32 ST-Link Utilityを使って、どのようにそれを行うことができますか? –

+0

ST Linkユーティリティは、さまざまな保護を設定するためのGUIを提供します。 STリンクユーティリティでは、フラッシュメモリの各セクタを選択し、異なる保護を割り当てることができます。セクター1と同様:保護なし、セクター2:レベル1保護など –

1

コードによる読み出し保護を有効または無効にすることができます。 しかし、代わりにこれを行うには、ソフトウェア "stm32 Flash loader"または "ST Link utility"を使用することをお勧めします。 チュートリアルhereを参照してください。 読み出し保護を無効にするには、一括消去フラッシュを使用します。

関連する問題