記事ディレクトリ
詳細情報を取得する方法
1.ヘルプドキュメントの使い方
2.BOOK Windowの使い方と設定方法
MDKの使い方と他のツールの紹介 (3)
MDK5.13 エンジニアリング コードのデバッグ デモンストレーション
エンジニアリングコードの基本構成
MDK5.13 のコンパイル プロセスの紹介とコンパイル済みファイルの説明
詳細情報を取得する方法
★その他のツール
1 コードの閲覧と編集
.UE
ダウンロード アドレス
. Source Insight: 比較的大量のコードを含むプロジェクトに適しています
ダウンロード バージョン 4.0.0126
2 インターフェースツール
.シリアル ポート アシスタントの
ホームページ: http://www.daxia.com/download
sscom
.ネットワーク ポート アシスタント
3 ファイルコンパレータ
Beyond Compare は
無料でダウンロードでき、30 日間の標準 / プロフェッショナル バージョンの試用版をサポートしています。
4 コードのコンパイル
gcc
IAR
放課後の宿題
1 MDK を使用して、チップ STM32F407ZG に基づくプロジェクトを作成し、コードを追加し、コンパイルし、ソフト シミュレーションを通じてデバッグしてください。
コースで説明されている 2 番目の方法を使用して、スタートアップ コードを追加する必要があります。
2 Source Insight、UE、シリアル ポート アシスタント、およびファイル コンパレータをダウンロードしてください。Beyond Compare
Lesson3: cortex-MシリーズCPUのコアを探る
Cortex-M コアのアーキテクチャと命令セットの簡単な説明
Cortex-M 3 兄弟アーキテクチャの概要
cortex-M0 Cortex-M3 Cortex-M4のアーキテクチャ図
Tip1: ハーバード・アーキテクチャーとは
ARMアセンブリ言語の簡単な学習
1ARM アセンブリ言語の基本文法
ARM コンパイラ armasm ユーザ ガイド バージョン 5.06
ラベルは
命令のアドレスです。
2 一般的に使用される組み立て手順の紹介とデモンストレーション
データ転送命令
例: startup_stm32f407xx.s
F:\IOT\PRJ\first_prj\RTE\Device\STM32F407ZGTx\startup_stm32f407xx.s は
import 後に追加 main: MOV R0, #0X123; mov 命令は直接番号 0X123 を操作
IMPORT __main
MOV R0, #0X123 ;mov指令操作直接数0X123
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
最初にコンパイルし、最後までコンパイルする
Build started: Project: first_prj
*** Using Compiler 'V6.19', folder: 'd:\Keil_v5\ARM\ARMCLANG\Bin'
Build target 'Simulator'
".\Objects\first_prj.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:00
デバッグを再度実行します。
リセットをクリックしてリセットを実行すると、プログラム カーソルが変更されたばかりのコードで停止します。
ステップスルーすると、レジスタに 0x123 が書き込まれます。
メモリアクセス命令
LDR/STR命令のデモ
追加したばかりの MOV 命令を削除し、以下を追加します:
LDR R0, =NMI_Handler; ラベル NMI_Handler を介して NMI_Handler を R0 に書き込み、
最初にコンパイルし、コンパイルして渡し、次にリセットし、リセットを実行し、シングルステップ実行を実行します。
LDR の後、0x08000217 にジャンプします。
プログラムフロー制御命令(ジャンプ命令)
BL命令の使用例
LDR R0, =NMI_Handler; 次の命令を追加します:
BLX R0
は単一のステップでコンパイルおよび実行します。
その他の手順 (ユーザー マニュアルを参照してください。F1 を押すと、プログラム コマンドのカーソル位置にあるインデックスが自動的に開きます)
ARM アセンブリ言語のサフィックス
Cortex-M アーキテクチャ CPU におけるアセンブリと C の混合プログラミング
アセンブリ コードでの C 関数の呼び出し
F:\IOT\PRJ\first_prj\RTE\Device\STM32F407ZGTx\startup_stm32f407xx.s 例:
サンプルコード:
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
その中で: IMPORT SystemInit
このファイルをインポートするソース ファイルは次のとおりです。
F:\IOT\PRJ\first_prj\RTE\Device\STM32F407ZGTx\system_stm32f4xx.c
実行。
ここで、R0 の値が 0x080002C9 に更新されます。
ステップを続行し、systeminit 関数にジャンプします。
C コードでアセンブリ関数を呼び出す
tip1: アセンブリ関数の書き方
アセンブリ ステートメントを C コードに直接追加する
埋め込みアセンブリ ステートメント
. インライン アセンブリ ステートメント
ヒント: MDK コメントは中国語で表示されます
MDK のエンコーディングは、chinese2312 に設定されています ([編集] > [構成] > [エディタ] > [エンコーディング])。
Cortex-M アーキテクチャ CPU コアのレジスタとプロセッサ モード
Cortex-M アーキテクチャ CPU コア ストレージ システム
Cortex-M アーキテクチャ CPU コアの割り込みおよび例外処理
Cortex-M アーキテクチャ CPU リセットおよびリセット シーケンス ブック
よく使用されるヘルプ ドキュメントのヒント リスト
ARM Development Toolst
MDK-ARM Primer
uVision ユーザー ガイド
ARM コンパイラ ツールチェーンの紹介 ARM
命令セット ユーザー ガイド
コンパイラ ユーザー ガイドアセンブラ
ユーザー ガイド
リンカ ユーザー ガイド
ライブラリと浮動小数点サポート ガイド
移行と互換性
armar を使用した静的ソフトウェア ライブラリの作成
fromelf イメージ コンバータ
エラーの使用および警告リファレンス ガイド
Debugger Adapter ユーザー ガイド
サポート情報
ライセンス ユーザー ガイド