ArmについてのFAQ

  1. HOME
  2. 製品紹介
  3. Armソリューション
  4. ArmについてのFAQ

ユーザー使用許諾契約についてのFAQ

MDK-Arm uVisionデバッガ & コンパイラについてのFAQ

Q. BINファイルをHEXファイルへ変換する方法はありますか?

A.
下記のURLからSRecordをダウンロードして頂き、srec_cat.exeを実行することで可能となります。
BIN=>HEX変換の場合、オフセットが必要となる場合があります。

GENERAL: MAKING HEX FILES FROM BINARY FILES
http://www.keil.com/support/docs/275.htm

Q. エディタの日本語表示が文字化けします。解決方法はありますか?

A.
フォント設定を変更することで解決する場合があります。
μVisionのメニュー > Edit > Configuration を開き、
“Editor”タブにて、
General Editor Settings: > Encoding : “Japanese Shift-JIS”を選択します。
“Colors & Fonts”タブにて、
Windows – C/C++ Editor Files を選択。
Font – Courier New => MS ゴシック へ切り替え。”OK”で閉じます。

Q. システム要件について

A.
1GHz動作の32,64ビットプロセッサ(推奨 2GHz 64ビットプロセッサ)、RAM 1GB(推奨4GB)、HDD 2GB(推奨5GB)
Windows10, Windows8.1, Windows7
詳細については下記のサイトをご参照願います。
http://www2.keil.com/system-requirements/

Q. 以前のバージョンをダウンロードしたい

A.
以下へアクセスして頂きまして、
https://www.keil.com/download/product/
お手元のPSN及びLICを入力するとダウンロードできます。
※FlexLMのフローティングライセンスの場合は以下のURLをご参照願います。ダウンロード用PSNを掲載しています。
http://www.keil.com/support/docs/3698.htm

Q. LIC(License ID Code)取得時のインフォメーション画面で、新しいPSNを入力してくださいとのメッセージが出る

A.
サポート&メンテナンスにて新しいPSNが発行されていることが考えられます。新しいPSNについてご不明な場合は、弊社窓口までお問い合わせください。

Q. Node-Locked版ライセンスの移動は出来ますか?

A.
ライセンスをアンインストールすることで、3回まで移動出来ます。
※USBドングルライセンスについては、アンインストールする必要はありません。

Q. ライセンスサーバーのリホストについて(Keil フローティングライセンス)

A.
*.FLFファイルの移動は出来ませんので、ライセンスサーバーをリホストされる場合は、弊社窓口までお問い合わせください。

Q. ROM/RAMの配置アドレスを変更したい

A.
スキャッタファイルを編集して、モジュールを特定のメモリ領域に割り当てることが出来ます。
μVisionのメニュー > Project > Options for Target > Linkerタブにて、Use Memory ..のチェックを外し、Scatter FileのEditをクリックして、スキャッタファイルをエディタで編集します。
スキャッタファイルの記述については下記のサイト(スキャッタファイル構文)をご参照願います。
http://infocenter.arm.com/help/topic/com.arm.doc.dui0474kj/pge1362075656353_00003.html

Q. スタック使用量の算出方法について教えてください

A.
スタック使用量については、静的解析と動的解析があります。

静的解析は、Callgraph という機能があります。
http://www.keil.com/support/man/docs/uv4/uv4_dg_adslst.htm

uVisionのメニューから Project > Options for Target を開いて、Listingタブで、Callgraphをチェックします。
ビルドするとプロジェクトフォルダにHTML(*.htm)ファイルが出来ます。ファイルをご確認ください。

動的解析については、以下のマニュアルをご参照ください。
Stack use in C and C++
http://www.keil.com/support/man/docs/armcc/armcc_chr1359124223721.htm

スタック領域に既知の値のコピー(たとえば、0xDEADDEAD)を入力し、最も多くスタックを消費するアプリケーションの実行後、既知の値が書き換えられたサイズを計算します。

Q. デバッグ時に異なるプロジェクトのデバッグ情報を追加する方法はありますか?

A.
LOAD コマンドを使用することで可能です。
以下のマニュアルをご参照ください。

LOAD
http://www.keil.com/support/man/docs/uv4/uv4_cm_load.htm

LOAD %L INCREMENTAL

例)
LOAD flash\Blinky.axf INCREMENTAL <= プロジェクトAの *.axf ファイルを指定します。

INCREMENTAL は、既存のシンボルテーブルにデバッグ情報を追加します。これにより複数アプリケーションのデバッグが可能になります。

Q. 現在有効になっているバージョンの確認方法はありますか?

A. uVisionのメニューから Help > About uVision を選択します。設定されているコンパイラが表示されます。

Q. Armコンパイラ5とArmコンパイラ6を切り替える方法はありますか?

A. uVisionのメニューから Project > Options for Target を選択して、Targetタブの Code Generation にてコンパイラを選択します。

Q. データのリード/ライトをトレースする方法はありますか?

A.

  1. uVisionのメニュー > Project > Options for Target > Debug タブを選択します。
  2. ULINK Pro Cortex Debugger等のSettingsをクリックします。
  3. Traceタブをクリック
  4. Trace Port , Trace Enable , Trace Event を設定します。
  5. Trace Port – Serial Wire Output
  6. Trace Enable – チェック
  7. Trace Event – LSU:Load Store Unit Cycles をチェック
  8. OKでウインドウを閉じて、デバッグセッションへ移行します。
  9. uVisionのメニュー View > Trace Data, Event Counters を選択します。
  10. Trace Data Window でITM – Data Read/Writeを選択します。

以下のマニュアルをご参照ください。
http://www.keil.com/support/man/docs/ulinkpro/ulinkpro_trace_cortex.htm
http://www.keil.com/support/man/docs/ulinkpro/ulinkpro_tr_events.htm

Q. MDK-ArmでArmコンパイラを複数バージョン管理する方法はありますか?

A.
以下は手順となります。

  1. MDK-Armを同一フォルダ(例 : C:\Keil_v5)に古いバージョンからインストールして頂きまして、新しいバージョンをインストールする時にバックアップを作成するにチェックを入れてインストールを行います。(MDK v5.12 以降が対象となります。)
  2. インストール後、Project – Manage – Project Items – Folders/Extensions.にてコンパイラを登録します。

以下のマニュアルをご参照ください。
Manage Arm Compiler Versions
http://www.keil.com/support/man/docs/uv4/uv4_armcompilers.htm

Q. MDK-ArmでGNUコンパイラを使用する方法はありますか?

A.

  1. GNUコンパイラがインストールされていない場合は、GNUコンパイラをダウンロードしてインストールして頂く必要があります。
    https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
  2. Project > Manage > Components, Environment, Books.. を開き、Use GCC をチェックします。

以下のマニュアルをご参照ください。
GNU C Compiler Support
http://www.keil.com/arm/gnu.asp

Q. uVisionにて、main()関数へ遷移する前のステップ実行をする方法はありますか?

A.

  1. uVisionのProject > Options for Target ‘ ‘ を選択して開きます。
  2. “Debug”タブを選択して、”Run to main()”のチェックを外します。”OK”をクリックして閉じます。
  3. Debug Session へ移ります。
  4. “Disassembly”ウインドウをクリック(ウインドウのどこでも良いので左クリック)してから、”Step”実行します。

Arm DS & DS-5についてのFAQ

Q. DS-5のインストールでULINKproのドライバーがインストールされません。どのようにドライバーをインストールしたら良いでしょうか?

A.
DS-5 にはULINKproのドライバが用意されていません。
お手数ですが、都築電気のHPからMDK-Armの評価版をダウンロードしてインストールしてください。
http://tsuzuki.jp/arm/mdk-arm.html
MDK-Armのインストール時に、ULINKproのドライバがインストールされます。

Q.  DS-5のデフォルトで設定されている以外のArmコンパイラ(例えば古いコンパイラバージョン)を使用する方法はありますか?

A.
以前にリリースされたコンパイラバージョンを新しいDS-5へ登録して使用する方法があります。
以下は手順となります。

  1. 以下のURLへアクセスします。
    https://developer.arm.com/products/software-development-tools/compilers/legacy-compiler-releases
  2. ダウンロードしたいArmコンパイラを選択して、インストーラをダウンロードします。(Armのアカウントが必要です。)
  3. ダウンロードしたインストーラを展開して、setup.exeを実行してセットアップします。
    (デフォルトのパスは、C:\Program Files (x86)\ARM_Compiler_5 となっています。)
  4. DS-5を起動します。
  5. DS-5のメニュー > ウィンドウ > 設定 を選択します。
  6. 設定ウィンドウのDS-5 > Toolchains を選択して、”追加”をクリックします。
  7. ツールチェインのパスを選択して(例 : C:\Program Files (x86)\ARM_Compiler_5) “適用” , “OK”をクリックして閉じます。
  8. DS-5のメニュー > プロジェクト > プロパティ を選択します。
  9. C/C++ビルド > Tool chain エディター を選択して、”現在のtoolchain”のプルダウンメニューから使用するコンパイラバージョンを選択して、 “適用” , “OK”をクリックして閉じます。
  10. コンパイラの設定が完了しましたので、プロジェクトのビルドを行います。

以下のマニュアルをご参照ください。
4.13 DS-5 コマンドプロンプトからのコンパイラツールチェーンの登録
http://infocenter.arm.com/help/topic/com.arm.doc.dui0478zj/vvi1409328963940_00020.html

Arm DS & DS-5 & MDK-Arm コンパイラについてのFAQ

Q.  __attribute__((section (“name”)));;を使用するとマップファイルに関数名が出力されません。関数名を出力する方法はありますか?

A.
必要な情報をすべて1つのファイルに収める方法はありません。
“fromelf -s on the axf file”というコマンドを実行できます。

以下のマニュアルをご参照ください。
https://developer.arm.com/docs/100071/latest/fromelf-command-line-options/-text

これにより、シンボルテーブルとバージョン管理テーブルが表示されます。
これで各機能のアドレスがわかり、それをマップファイルで調べることができます。

Q.  Armアーキテクチャベースのプロセッサのレジスタにアクセスする方法はありますか?

A.
名前付きレジスタ変数を使用して、ARMアーキテクチャベースのプロセッサのレジスタにアクセスできます。

4.7.47. 名前付きレジスタ変数
http://infocenter.arm.com/help/topic/com.arm.doc.dui0348bj/CJAHJDBG.html

4.1.5. 名前付きレジスタ変数
http://infocenter.arm.com/help/topic/com.arm.doc.dui0205ij/CHDHCIEE.html

また、CMSIS-CoreにCortex-Mコアレジスタへアクセスする関数が用意されています。

Core Register Access
https://www.keil.com/pack/doc/cmsis/Core/html/group__Core__Register__gr.html

Q.  第三者にイメージファイルを渡します。シンボル情報を知られたくありません。
ELF イメージファイルからデバッグ情報を削除する方法はありますか?

A.
セクション名をデフォルト値に変更したり、シンボルテーブルを削除することができます。
以下のマニュアルをご参照ください。

Options to protect code in image files with fromelf
http://www.keil.com/support/man/docs/armclang_util/armclang_util_pge1362128881736.htm

Q. コンパイラがサポートしているCPUを知る方法はありますか?

A.
Windowsのコマンドプロンプトを開き、ツールチェインのあるフォルダパスへ移動します。
コンパイラバージョンに合わせたコマンドを入力します。

[Armコンパイラ5の場合]
armcc –cpu=list

[Armコンパイラ6の場合(AArch32)]
armclang –target=aarch64-arm-none-eabi -mcpu=list

[Armコンパイラ6の場合(AArch64)]
armclang –target=aarch64-arm-none-eabi -mcpu=list

Q. 関数毎に最適化レベルを変えることはできますか?

A.
ソースコードに#pragma Onum を記述することで可能です。
以下のマニュアルをご参照ください。

10.93 #pragma Onum
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0472lj/chr1359124988971_00007.html

Q. 使用していないセクション(関数等)が削除されてしまいます。削除しない設定はありますか?

A.
Options for Target の “Linker”タブで、–no_remove または、–keep=section_id を指定することで可能です。
以下のマニュアルをご参照ください。

未使用入力セクションの削除を有効または無効
12.118 –remove、–no_remove
http://infocenter.arm.com/help/topic/com.arm.doc.dui0474kj/pge1362075556280_00005.html

未使用セクションの削除で削除されないようにする入力セクションを指定します。
12.79 –keep=section_id
http://infocenter.arm.com/help/topic/com.arm.doc.dui0474kj/pge1362075498955_00009.html

Q. 異なるプロジェクトのシンボルを参照する方法はありますか?

A.
–symdefs のリンカコマンドオプションを使用することで可能です。
以下のマニュアルをご参照ください。
ArmLINK: Create and import a symdefs file
http://www.keil.com/support/docs/4014.htm

Q. 空き領域にパディングデータを挿入する方法はありますか?

A.
スキャッタファイルへ記述する方法があります。
スキャッタファイルの編集は、”Options for Target ..”を開いて、
“Linker”タブをクリックして、”Use Memory Layout from Target Dialog”のチェックを外して、
“Scatter File”の”Edit”にて編集してください。

*.sct ファイル
例)

								; *************************************************************
								; *** Scatter-Loading Description File generated by uVision ***
								; *************************************************************

								LR_IROM1 0x08000000 0x00040000  {    ; load region size_region
								ER_IROM1 0x08000000 0x00040000  {  ; load address = execution address
								*.o (RESET, +First)
								*(InRoot$$Sections)
								.ANY (+RO)
							}
							RW_IRAM1 0x20000000 0x00010000  {  ; RW data
							.ANY (+RW +ZI)
						}
					}
					LR_IROM2 +0 {

					ER_BLANK_REGION +0 FILL 0x12345678 0x0003DE4C  {}
				}
				;===============================================================
			

ER_BLANK_REGION +0 FILL 0x12345678 0x0003DE4C
0x12345678 = 埋込データとなります。00h としたい場合は、0x00000000 としてください。
0x0003DE4C = 埋込サイズとなります。マニュアルで調整が必要です。メモリマップを確認して調整してください。

例)

				;=========================================================================================
				Load Region LR_IROM2 (Base: 0x080021b4, Size: 0x0003de4c, Max: 0xffffffff, ABSOLUTE)

				Execution Region ER_BLANK_REGION (Exec base: 0x080021b4, Load base: 0x080021b4, Size: 0x0003de4c, Max: 0x0003de4c, ABSOLUTE)

				Exec Addr    Load Addr    Size         Type   Attr      Idx    E Section Name        Object

				0x080021b4        -       0x0003de4c   Zero   RW            1    ER_BLANK_REGION.bss  anon$$obj.o
				;==========================================================================================
			

ROM領域 0x08040000 – 0x080021B4 = 0x0003DE4C

以下、URLをご参照ください。
Fill unused sector in flash with random value
http://www.keil.com/forum/60463/”

デバッグアダプタについてのFAQ

Q. ULINK2とULINKProの違いは何ですか?

A.
ULINKProには、ETM機能、ストリーミング・トレースが追加されています。ETM機能とは(コードカバレッジ、エグゼキュート・プロファイル、パフォーマンス・アナライザ)また、200MHzCPUに対応可能。ULINKファミリの「製品の特長一覧表」をご参照下さい。
http://tsuzuki.jp/arm/ice-ulink.html

Q. ULINK2の電源範囲は?

A.
2.7V~5.5Vです。ジャンパーピンをArm側に設定してください。
http://www.keil.com/support/man/docs/ulink2/ulink2_hw_jumpers.htm

Q. ULINKProの電源範囲は?

A.
5V時の動作電圧範囲
・5v Adapter 4.5-5.5v operation
・Isolation Adapter 1.8-5.5v operation
http://www2.keil.com/mdk5/ulink/accessories
3V時の動作電圧範囲
1.2V~3.3Vです。

Q. 低消費電力モード(Stop、Sleep等)でも動作可能か?

A.
動作はしません。パワーダウンの間、ULINKは仕事を中止します。
http://www.keil.com/forum/9405/

Q. コネクタのメーカと型格は何ですか?

A.
10-pin header (Samtec FTSH-105-01) 20-pin header (Samtec FTSH-110-01)
http://www2.keil.com/coresight/coresight-connectors

Q. ULINKデバッガコネクタ部分のピンアサインは?

A.
10-Pin Cortex Debug Connector
20-Pin Cortex Debug + ETM Connector
20-Pin Arm Standard JTAG Connector
38-Pin Arm ETM Mictor Connector
http://www2.keil.com/coresight/coresight-connectors

Q. MDK-Arm version4.70以降のバージョンで使用したULINK2をversion4.70よりも前のバージョンで使用するとULINK2アダプタを認識しません

A.
ULINKのファームウェアが自動アップデートされたことにより、ブートモードの設定が変更されたことが考えられます。UL2_Configure.exeを使用してブートモードをCMSIS-DAPからULINKブートモードへ切り替えてください。
詳細については下記のサイトをご参照願います。
http://www.keil.com/support/man/docs/ulink2/ulink2_boot_mode.htm

Q. ULINKで「SWD Communication Failure」が発生します。別のULINKでは問題ありません。解決策はありますか?

A.
「SWD Communication Failure」とのことですので、ターゲットとULINKの間のSWD通信が成立していないようです。
SWDケーブルを交換することで解決する場合があります。
以下、URLをご参照ください。
http://www.keil.com/support/man/docs/ulink2/ulink2_errors.htm
http://www.keil.com/support/man/docs/ulinkpro/ulinkpro_errors.htm

それでも接続出来ない場合は、以下のTroubleshooting Guide をご参考にして故障内容をご確認頂き、弊社窓口までお問い合わせください。
http://www.keil.com/support/man/docs/ulink2/ulink2_trblshooting.htm
http://www.keil.com/support/man/docs/ulinkpro/ulinkpro_trblguide.htm
http://www.keil.com/support/man/docs/ulinkplus/ulinkplus_trblguide.htm

MDK-Arm ライセンスについてのFAQ

Q. サポート&メンテナンス期間について

A.
ソフトウェア(MDK-Arm)はご購入後、1年間となります。
継続される場合は、再契約することが出来ます。

Q. Floating licenseにてコンパイルしようとしたところ、以下のエラーが表示されコンパイルできません
Error: L9555E: License checkout for feature LIC0 =xxx with version 5.0201601 has been denied by Keil back-end. Error code: 1

A.
同一のLICが複数存在しており、一部は非アクティブであり、一部はアクティブとなっていたためです。
このようなことから、この問題が発生します。

解決するにはArm-UKでの手続きが必要となります。弊社窓口までお問い合わせください。
Armにて、問題のLIC削除後、弊社からLIC削除の連絡をします。その後、新しいLICをリクエストしてください。
http://www.keil.com/support/man/docs/license/license_ful_install.htm

Q. USBドングルライセンスでドングルのドライバーをインストールし、ドングルを挿入してコンパイルしたところ、以下のエラーが発生する。デバイスマネージャーでは、正常に認識しているようである。どのように対策すれば良いでしょうか?
Error: C9555E: Failed to check out a license.MISSING DEVICE (R012(0): DRIVER NOT INSTALLED)

A.
おそらく、Sentinelドライバーのインストールが正常に終了していないことが考えられます。
インストール状況を確認することが出来るアプリケーションがSentinelより提供されています。
Sentinelのアプリケーションについては下記の通りとなります。
Sentinel Advanced Medic
https://sentinelcustomer.gemalto.com/sentineldownloads/
(keyword 検索すると見つかります。)
このアプリケーションをインストールし、実行すると、Sentinelのコンポーネントが正しくセットアップされているか確認出来ます。
Parallel Driver がセットアップされていないと、コンパイルエラーとなるケースがあります。

Sentinel-Protection-Installer-7.6.8 で解決したとの事例があります。(古いバージョンを使用する。)

ドキュメントについてのFAQ

Q. MDKのミドルウェアを使用するにあたり、参考となる資料はありますか?

A.
以下のURLへアクセスします。
Online Manuals for MDK
http://www2.keil.com/mdk5/docs

Arm/Keil Software Packs

  • MDK Middleware Components User’s Guide (latest version)
  • MDK Middleware Components User’s Guide (version 6)

をご確認ください。

Q. MDKのアプリケーションノートはありますか?

A.
以下のURLにアプリケーションノートのリストがあります。
Arm Application Notes
http://www.keil.com/appnotes/list/arm.htm

Armについてのお問い合わせ

お気軽にお問い合わせください。
Arm純正ツール 国内正規販売代理店 株式会社レスターエンベデッドソリューションズ 

販売に関するお問い合わせ

info-arm@restargp.com

技術サポートに関するお問い合わせ

support-arm-tool@restargp.com

販売に関するお電話でのお問い合わせ

平日9:00~17:00

東京03-3502-2534
名古屋052-933-7031
大阪06-6204-7188

お問い合わせ・資料請求

カタログ・資料請求、製品へのお問い合わせはこちらから
ご相談も承っております

電話でのお問い合わせ(平日9:00~17:00)03-3502-2534