2025-01-01から1年間の記事一覧
最終更新日:2026-02-10 「3.1 プロジェクトの作成」で選択するテンプレート名称について補足を追加 Eclipse Embedded CDTを使ってArm製CPUのアセンブリ言語開発環境を構築した記録です。デバッグプローブにはSEGGER製J-Linkを使い、PCのOSはWindows11です。…
本章ではメカトロ制御に使うCPUで逆アセンブルリストのアセンブリ言語の読み方に関し「命令の構文」、「ニーモニック」、「オペランド」、「読み方のコツ」、「アセンブリ言語の読み方例」について書きます。
本章ではSTマイクロエレクトロニクス製の統合開発環境STM32CubeIDEを設定し、動作の確認に使用するプログラム「LED2」をマイコン開発ボードNUCLEO-H503RBへダウンロードする手順を書きます。これは「3 動作の確認 その2」の準備になります。 ここで行う手順…
本項では前項で説明した動作確認用プログラムLED2をArm製Cortex-M33で実行し、例外受付によるCPUの動作を確認します。統合開発環境は引き続きSTマイクロエレクトロニクス製STM32CubeIDEを使います。 確認する動作 前処理:リセットを除いた例外要求が受け付…
本項では動作の確認に使用するプログラムLED2を説明します。第2章で使用したプログラムLED1と同じくターゲットのCPUはArm製Cortex-M33で、プログラム全体をアセンブリ言語で記述して簡単な構造にしています。 動作もプログラムLED1と同じくマイコン開発ボー…
動作の確認に使用するハードとソフトは「2 動作の確認 その1」と同じで、市販されているSTマイクロエレクトロニクスのマイコン開発ボードNUCLEO-H503RBとSTマイクロエレクトロニクスの統合開発環境STM32CubeIDE、パソコン、USBケーブルを使います。ハードと…
本章では「2 動作の確認 その1」に引き続き「1 構造と動作」に書いたCPUの動作の一部を例として用いたCPUのArm製Cortex-M33を使って確認します。動作確認に使うプログラムをLED2に変え、他はその1の時と同じです。 プログラムLED2を使って確認する動作(カッ…
本章ではSTマイクロエレクトロニクス製の統合開発環境STM32CubeIDEを設定し、動作の確認に使用するプログラム「LED1」をマイコン開発ボードNUCLEO-H503RBへダウンロードする手順を書きます。これは「2 動作の確認 その1」の準備になります。 ここで行う手順…
本項では「2.2 動作確認用プログラムLED1の説明」で説明した動作確認用プログラムLED1をArm製Cortex-M33で実行し、CPUが条件成立により分岐する動作を確認します。前項までと同じく、マイコン開発ボードのSTマイクロエレクトロニクス製NUCLEO-H503RBと統合開…
本項では「2.2 動作確認用プログラムLED1の説明」で説明した動作確認用プログラムLED1をArm製Cortex-M33で実行し、CPUがサブルーチンを呼ぶ動作とサブルーチンから戻る動作を確認します。前項までと同じく、マイコン開発ボードのSTマイクロエレクトロニクス…
本項では「2.2 動作確認用プログラムLED1の説明」で説明した動作確認用プログラムLED1をArm製Cortex-M33で実行し、CPUが命令の読み出し順を変更する動作を確認します。前項までと同じく、マイコン開発ボードのSTマイクロエレクトロニクス製NUCLEO-H503RBと統…
本項では「2.2 動作確認用プログラムLED1の説明」で説明した動作確認用プログラムLED1をArm製Cortex-M33で実行し、CPUが命令を順番に読み出す動作を確認します。前項と同じく、マイコン開発ボードのSTマイクロエレクトロニクス製NUCLEO-H503RBと統合開発環境…
本項では前項で説明した動作確認用プログラムLED1をArm製Cortex-M33で実行し、リセット解除直後のプログラムカウンターの値を確認します。統合開発環境はSTマイクロエレクトロニクス製STM32CubeIDEを使います。 確認する動作 リセットが解除された直後のプロ…
本項では動作の確認に使用するプログラムLED1を説明します。ターゲットのCPUはArm製Cortex-M33で、プログラム全体をアセンブリ言語で記述して簡単な構造にしています。 動作はマイコン開発ボード:NUCLEO-H503RBのLD2を1秒周期で点滅(0.5秒点灯、0.5秒消灯…
本項では動作の確認に使用するハードとソフトについて記載しています。 動作の確認には市販されているSTマイクロエレクトロニクスのマイコン開発ボードNUCLEO-H503RBを使い、プログラムを実行させます。このボードはARM製のCPU:Cortex-M33を内蔵したSTマイ…
本章では「1 構造と動作」に書いたCPUの動作の一部を例として用いたCPUのArm製Cortex-M33を使って確認します。 アセンブリ言語で作成したプログラムLED1を使ってCPUを動かしながらデバッガーを用いて下記の動作を確認します。 プログラムLED1を使って確認す…
電子情報通信学会.知識ベース 6群(コンピュータ- 基礎理論とハードウェア)- 4編(コンピュータアーキテクチャ(I)標準的)2章 データ形式.Ver.1.2019.5.30,7p. 電子情報通信学会.知識ベース 6群(コンピュータ- 基礎理論とハードウェア)- 4編(コン…
本項ではメカトロ制御に使うCPUのキャッシュに関し「キャッシュによる高速化」、「読み出す時のキャッシュの動作」、「書き込む時のキャッシュの動作」について記載しています。
本項ではメカトロ制御に使うCPUが扱う割り込みに関し「割り込み要求の流れ」、「割り込みの受付判断」、「多重割り込み」について記載しています。
本項ではメカトロ制御に使うCPUが扱う例外に関し「例外の種類」、「ベクターテーブル」、「前処理と後処理」について記載しています。
本項ではメカトロ制御に使うCPUのスタックについて記載しています。 一般にスタックはLIFO(Last In First Out)構造を持つバッファーのことですが、ここで取り上げるのはLIFO構造のバッファーでCPUに例外事象が発生したときにレジスタの値を一時的に退避す…
本項ではメカトロ制御に使うCPUの命令パイプラインに関し「パイプラインの動作」と「パイプラインの乱れ」について記載しています。
本項ではメカトロ制御に使うCPUで命令の読み出し順の制御である「命令を順番に読み出す仕組み」と「命令の読み出し順変更の動作」について記載しています。
本項ではメカトロ制御に使うCPUが扱うエンディアンについて記載しています。 エンディアンは1つの値を表すのに複数の単位ブロックを一塊として使うときに、一塊の中での単位ブロックの並び順を指すと思います。ここでは下記の2つについて書きます。 バイト単…
本項ではメカトロ制御に使うCPUが扱えるデータタイプについて記載しています。 データタイプ(データ型)はデータの扱い方を規定する形式のことで、CPUが扱えるデータタイプに下記があります。 符号なし整数 符号付き整数 浮動小数点数 それぞれに有効なビッ…
本項ではメカトロ制御に使うCPUが持っているレジスタについて記載しています。 レジスタにはプログラムの中で使うデータやアドレスを一時的に保管しておく複数の汎用レジスタとCPUの動作を制御/表示する複数の制御レジスタがあります。 内容 1.3.1 汎用レジ…
本項ではメカトロ制御に使うCPUのブロック図について記載しています。 前項に記載したようにCPUは命令を読み出して処理します。その一連の動作は下表の5つのフェーズに分けることができます[1]。 5つのフェーズと動作 フェーズ名 動作 命令フェッチ 命令をCP…
メカトロ制御に使うCPUの構造と動作の最初の本項では、CPUの機能と命令を概念的にまとめます。 まず、CPUの機能は大きく2つあると考えています。 命令を順番に読み出す 読み出した命令を処理する CPUと他のロジック回路の大きな違いに動作をプログラムで変更…
本章ではメカトロ制御に使うCPUの構造と動作について次の11項目を記載します。 CPUの機能と命令(概念)、CPUのブロック図、レジスタ、データタイプ、エンディアン、命令の読み出し順制御、命令パイプライン、スタック、例外、割り込み、キャッシュ
初めに 本記事では、メカトロ制御で使うCPUの主な構造と動作について書いています。対象のメカトロ制御で使うCPUとは、小規模で、処理能力は高くなく、機器組み込み用といったCPUです。一方、パソコン用とか、画像を扱う機器用のCPUは本記事の対象外です。 …