2017年7月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Amazonウィジェット

  • miniPC
  • 最近買った本
  • Raspberry Pi
  • クアッドコプター
  • 書籍ランキング

AdSense

  • 広告
無料ブログはココログ

ARM_KEIL

2012年11月27日 (火)

ARMアセンブラで繰り返しループを作る

KEIL開発環境(uVision4)のなかで、ARMアセンブラによる繰り返しループを作成。

ここに添付したソースを動作確認するには、

1.NXPのサイト:LPCZone(http://nxp-lpc.com/)から、サンプルコード(Keil)の
code.bundle.lpc13xx.keil_ というファイルをダウンロードしてきて、

2.この中にある、gpioIntExpというフォルダをコピーして、

3.gpiotest.cのファイルを上書きすると試すことができる。

ソースはこちら。
「LPC1343-AsmTameshi-SoftTimer.c」をダウンロード

4.KEILのシミュレータで動作を見たいときは、

 Flash>ConfigureFlashTools を開いて、

5.Debugタブの一番上にある、UseSimulatorのラジオボタンにチェックをいれる。

6.赤い”d”の虫眼鏡が書いてあるアイコンを押すとSimulatorが起動する。

アセンブラ関数の詳細解説:
最初のMOVでレジスタr4に0x0Aをコピーする。
次のSUBでr4から定数0x01を減算し、r4に入れる。
CMPでr4と0x00を比較し、
BNE命令のところで、r4が0x00と等しくなければloopラベルにジャンプする。

BNE,BEQは分岐命令になっていて、B「Branch」の後に、
条件コードと呼ばれるNEとかEQをくっつけて成り立っている。
NEなら「Branch If Not Equal」。
EQなら「Branch If Equal」を意味する。
条件コードについては、ARMのドキュメントにある、

RealView Compilation Tools アセンブラガイド
Home > NEON と VFP プログラミング > 条件コード

にリストが載っているので参照のこと。

ARMのHPトップから、
Home > Support > Documentation
でドキュメントにたどり着く。

2012年11月22日 (木)

ARM_KEIL便利設定_定義にジャンプする

KEIL uVision4 V4.53.0.0 便利設定 関数や変数の宣言に一発ジャンプする。

VCのように関数の宣言箇所に、右クリックメニューから一発でジャンプする方法がある。
この機能を使うにはコンパイルの前に設定をする必要がある。

1.
Flash⇒Configure Flash Toolsを押すと、
Options for Targetという窓が出てくる。
この窓のOutputタブに切り替える。

2.
Create Executableにチェック

3.
Debug Informationから下に三つ並んでいるチェックボックスを全てチェック。

4.
ソースの中の関数名をセレクトして右クリックすると、
"GoToDefinitionOf 関数名" というメニューが出てくる。
これを選ぶと、その関数の定義されたソースの箇所にジャンプする。

ARM_KEILデバッガ_実行時間の設定

KEIL uVision4 V4.53.0.0 実行時間のシミュレーションの設定

1.
Flash⇒Configure Flash Toolsを押すと、
Options for Targetという窓が出てくる。
Targetタブに切り替える。

2.
Xtal(MHz)を実際にターゲットで使用するクロック周波数にあわせる。
メモ:あってないと実際の実行時間とシミュレータに表示される実行時間が合わない。

ARM_KEILコンパイラ 最適化レベルの設定

KEIL uVision4 V4.53.0.0 コンパイラ最適化レベルの設定

1.
Flash⇒Configure Flash Toolsを押すと、
Options for Targetという窓が出てくる。
この窓のC/C++タブに切り替える。

2.
Language/Code Generationの
Optimizationのプルダウンメニューが最適化レベル。
Level0から3まである。

Optimize for Timeにチェックを入れると
実行時間が最適化される。
実行タイミングが大事なプログラムの場合は、
このオプションを切っておかないと、コンパイルの度に
実行時間が変化してしまう等ややこしくなってしまう。

他にもいろいろチェックボックスがあるが、試したことはない。

ARM_KEILデバッガの設定

KEIL uVision4 V4.53.0.0 デバッガの設定

ターゲット:LPC1343
デバッガ:ULINK Pro

1.
Flash⇒Configure Flash Toolsを押すと、
Options for Targetという窓が出てくる。
この窓のUtilitiesタブに切り替える。

2.
Use Target Driver for Flash Programmingにチェック

3-1.
その横にあるSettingsボタンをクリック

3-2.
Flash Downloadタブの中の、
下のほうにあるAddボタンを押す。

3-3.
LPC11xx/122x/13xx IAP 32k Flashを選ぶ。

3-4.
続けてDebugのタブに切り替え、
Port:のプルダウンメニューをSWにする。

以上でSettingsは完了

4.
Options for Targetの窓に戻って、
Debugタブに切り替え。

5.
タブ一番右上にある、Use:にチェックボックス。
プルダウンメニューからULINKProを選ぶ。
その下の項目についてはいじらない。

メモ:もし、実機がない状態で
   シミュレーションデバッグをしたい場合は、
   UseSimulatorにチェックを入れれば実機なしでデバッグできる。