非機密扱い | ![]() | ARM DUI0446ZJ | ||
| ||||
ホーム > ARM DS-5でのファイルベースのフラッシュプログラミング > フラッシュプログラミングコンフィギュレーション |
DS-5 でサポートされている各ターゲットプラットフォームのエントリが DS-5 コンフィギュレーションデータベースにあります。フラッシュプログラミングのサポートを追加するには、データベース内のターゲットのプラットフォームエントリで、フラッシュプログラミングメソッドと必要なパラメータの両方が定義されている必要があります。
ターゲットのプラットフォームエントリ情報は、コンフィギュレーションデータベース内の次の 2 つのファイルに保存されます。
project_types.xml - このファイルには、プラットフォームでサポートされているデバッグ操作が記述され、フラッシュコンフィギュレーションファイルへの参照が含まれている場合があります。これは <flash_config>CDB://flash.xml</flash_config>
のようなタグで示されます。
CDB://
タグは、ターゲットのプラットフォームディレクトリへの相対パスを示します。このパスには通常、project_types.xml ファイルが含まれます。ターゲットプラットフォームディレクトリの上の相対パスは、../
を使用して定義できます。例えば、一般的なエントリは <flash_config>CDB://../../../Flash/STM32/flash.xml</flash_config>
のようになります。
相対パスを使用することで、フラッシュコンフィギュレーションファイルを同じチップと同じフラッシュコンフィギュレーションを持つ複数のターゲット間で共有できます。
FDB://
タグは、Jython フラッシュファイル (例で使用されている stm32_setup.py や keil_flash.py など) の場所への相対パスを示します。DS-5 インストールでは、これは通常、<DS-5 インストールフォルダ>\sw\debugger\configdb\Flash です。
フラッシュコンフィギュレーション .xml ファイル。例えば flash.xml などです。この .xml ファイルでは、ターゲット上のフラッシュデバイスについて記述します。これにはマップ先のメモリ領域や、フラッシュプログラミングメソッドに渡す必要のあるパラメータが含まれます。
フラッシュコンフィギュレーションでは、使用するフラッシュプログラミングメソッドを必ず指定する必要がありますが、オプションとしてセットアップスクリプトおよびテアダウンスクリプトを指定することもできます。セットアップスクリプトおよびテアダウンスクリプトは、フラッシュプログラミングに備えてターゲットプラットフォームを準備し、フラッシュプログラミングの完了後にターゲットプラットフォームを再初期化するために使用します。これらのスクリプトはターゲットプラットフォームに固有のものですが、フラッシュプログラミングメソッドは汎用です。
この flash.xml の例は、Keil MCBSTM32E プラットフォームからのものです。この例では、MCBSTM32E に組み込みフラッシュデバイスが 1 つしかないにもかかわらず、2 つのフラッシュデバイスを定義しています。これは、プログラムコード用のメインフラッシュとデバイスコンフィギュレーション用のオプションフラッシュという 2 つのフラッシュセクションが、プログラミング時に別個のデバイスと見なされるためです。
フラッシュメソッドが keil_flash.py
スクリプトに設定されており、そのメソッドのパラメータがその後で定義されていることに注意してください。
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Copyright (C) 2012 ARM Limited.All rights reserved.--> <flash_config xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.arm.com/flash_config" xsi:schemaLocation="http://www.arm.com/flash_config flash_config.xsd"> <devices> <!-- STM32F1xx has 2 flash sections:main flash for program code and option flash for device configuration.These are viewed as separate devices when programming --> <!-- The main flash device --> <device name="MainFlash"> <programming_type type="FILE"> <!-- Use the standard method for running Keil algorithms --> <method language="JYTHON" script="FDB://keil_flash.py" class="KeilFlash" method_config="Main"/> <!-- Target specific script to get target in a suitable state for programming --> <setup script="FDB://stm32_setup.py" method="setup"/> </programming_type> </device> <!-- The option flash device --> <device name="OptionFlash"> <programming_type type="FILE"> <method language="JYTHON" script="FDB://keil_flash.py" class="KeilFlash" method_config="Option"/> <setup script="FDB://stm32_setup.py" method="setup"/> </programming_type> </device> </devices> <method_configs> <!-- Parameters for programming the main flash --> <method_config id="Main"> <params> <!-- Programming algorithm binary to load to target --> <param name="algorithm" type="string" value="FDB://algorithms/STM32F10x_512.FLM"/> <!-- The core in the target to run the algorithm --> <param name="coreName" type="string" value="Cortex-M3"/> <!-- RAM location & size for algorithm code and write buffers --> <param name="ramAddress" type="integer" value="0x20000000"/> <param name="ramSize" type="integer" value="0x10000"/> <!-- Allow timeouts to be disabled --> <param name="disableTimeouts" type="string" value="false"/> <!-- Set to false to skip the verification stage --> <param name="verify" type="string" value="true"/> </params> </method_config> <!-- Parameters for programming the option flash --> <method_config id="Option"> <params> <!-- Programming algorithm binary to load to target --> <param name="algorithm" type="string" value="FDB://algorithms/STM32F10x_OPT.FLM"/> <!-- The core in the target to run the algorithm --> <param name="coreName" type="string" value="Cortex-M3"/> <!-- RAM location & size for algorithm code and write buffers --> <param name="ramAddress" type="integer" value="0x20000000"/> <param name="ramSize" type="integer" value="0x10000"/> <!-- Allow timeouts to be disabled --> <param name="disableTimeouts" type="string" value="false"/> <!-- Set to false to skip the verification stage --> <param name="verify" type="string" value="true"/> </params> </method_config> </method_configs> </flash_config>