みねっちょのマイコン関係ブログ

組込開発系フリーソフトやハードの情報発信ブログ

ARM シミュレータ内蔵 GDB の使い方

GDB 内蔵の ARM CPU 用シミュレータを TUI モードで使用してベアメタル用ソースコードのデバッグを行う手順を紹介します。C/C++ ソースとアセンブリやレジスタを同時に表示出来ます。本 GDB を WSL でビルドする手順は別記事で紹介しています。

ARM シミュレータ内蔵 GDB のビルド手順

GDB にはターゲット CPU 用のシミュレータが内蔵可能です。ホスト上でクロスコンパイルしたバイナリを GDB 単体で実行可能です。WSL の Ubuntu-20.04 上で GDB 10.2 を ARM 用内蔵シミュレータ付きでビルドする手順を紹介します。

WSL の起動時デフォルト ユーザ変更

WSL

WSL で起動時ユーザの変更が必要な理由と手順を解説します。Linux を tar から wsl.exe でインポートした場合には wsl.conf を変更します。MSストアからの場合にはコマンドが付属します。対応レジストリも紹介します。

WSL 上 ArchLinux の Windows Terminal への登録

WSL

別記事にて WSL 上に Windows の標準コマンドのみを使用してインストールした ArchLinux を、マイクロソフト 製の 新しい Windows Terminal から利用可能にする手順を紹介します。尚、起動時デフォルトユーザの設定は事前に済ませておくべきです。(別記事参…

WSL 上 ArchLinux の post install を行う

別記事で WSL にインストール済の ArchLinux の post install 処理手順です。sudo ユーザの追加、カーネルのアップデート禁止処理、リポジトリの更新を行います。操作は新 Windows Terminal 上の PowerShell から WSL を起動して行います。

WSL に ArchLinux を標準コマンドでインストールする

WSL への Linux ディストリビューションの追加は簡単です。ArchLinux を Ubuntu と PowerShell の標準コマンドだけで追加する手順を紹介します。公式シグネチャの有るパッケージのみを使用し、ArchWSL や wsldl は使用しません。

40年以上前の Emacs エディタのマニュアルが秀逸

Emacs エディタは今から40年以上前の1978年に、メインフレーム用の OS である Multics 上で開発されたものです。1979年に発行された Emacs のユーザーズ マニュアルが秀逸で、現在でも Linux の bash を Emacs モードで使用している人にはキーバインドを知る…

WSL の VSCode で 複数 C/C++ の make と GUI デバッグをする

WSL

VSCode には GDB の GUI 表示機能や、自作した Makefile の 実行機能が有ります。C/C++ 用デバッグ拡張機能と Makefile 拡張機能のインストール、及び複数ファイルのビルドから GUI でのシングルステップ実行によるソースコードデバッグまでの手順を紹介しま…

WSL の Verilator で トレース波形をダンプする

Verilator は サイクルベース方式で高速な無償の Verilog HDL シミュレータです。本記事では、WSL 上 Ubuntu-20.04 の標準パッケージだけを使用して、GUI でシミュレーション波形を観測する手順を紹介します。Ubuntu-20.04 標準パッケージ版と最新版の差異も…

無償な Verilog シミュレータ Verilator のテストベンチを SystemC で作る

Verilator は Verilog HDL をサイクルベース方式で高速に動かす無償のシミュレータです。但、最上位モジュールは C++ または SystemC で記述する必用があります。本記事では、最上位のテストベンチを SystemC で記述する方法を、Verilog HDL の記述と1対1に…

WSL にインストール可能な Linux ディストリビューション

Windows 10 の WSL (1 と 2) には、実は様々な Linux ディストリビューションを無償でインストール可能です。wsldl プロジェクトにより汎用化インストーラが用意されています。Arch Linux、CentOS、Fedra、RHEL 等は有名な物は既に対応済です。

VSCode のターミナル内 bash のキーバインドを Emacs に戻す

VSCode のターミナルで WSL を起動すると、bash の Emacs モードのキーバインドが上書きされて VSCode のキーバインドになっています。これを VSCode の機能で再度上書きし、Emacs モードに戻す方法を紹介します。

WSL に VSCode をインストールする

WSL 上 Linux への VSCode エディタのインストールは、Windows 側と WSL 側の両方での作業が必要です。Windows 側で拡張プログラムをインストール後、WSL 側でサーバプログラムをインストールすれば、VSCode を Linux 用のソースコードデバッガとして利用可…

Debian や Ubuntu に VSCode を最短手順でインストールする

Debian や Ubuntu に VSCode (Visual Studio Code) エディタをインストールする最短の手順を紹介します。apt リポジトリの書き換えは、自動で行われます。この方法で、Raspberry Pi の Raspbian にもインストール可能です。

WSL で /tmp を RAM に配置する

WSL の /tmp ディレクトリを RAM に配置する方法を紹介します。/tmp には、コンパイルの中間ファイル等が展開される為、/tmp を RAM に配置するとビルド時間を短縮可能です。また、スクラッチの頻度を下げられるので、SSD の寿命を延ばせます。

Linux のコマンドラインのカーソル移動は emacs です

Linux の コマンドライン bash のキーバインドは、デフォルトで emacs モードです。活用すると、指をキーボードの「ホームポジション」から離さずに済むので、コマンド文字入力の時間を短縮出来ます。使用頻度の高いキーバインドを紹介します。

CPU コアを含む Verilog シミュレーションでダンプすべき信号

最終更新:2021-04-23 本記事では、CPU コアを含む RTL を Verilog HDL 等で論理シミュレーションする場合の、ダンプすべき信号について解説します。論理シミュレーションに使用する ROM コードは、C 言語もしくはアセンブリ言語で作成する事を想定していま…

ARM Cortex-M0 コアを無償な Verilog シミュレータで動かす

ARM 社より評価用として無償でクリック スルー契約によりダウンロード可能な Cortex-M0 CPU コア単体の難読化 Verilog HDL を、WSL 上の無償な Icarus Verilog シミュレータで動かす手順を紹介します。ROM コードは WSL 上標準パッケージの GNU クロスコンパ…

ARM Cortex-M のベアメタル用 C 言語ブートストラップを WSL で作る

ARM

ARM Cortex-M シリーズ用のブートシーケンスは、従来の ARM コアとは異なります。スタックポインタの設定、リセット、割込、例外の各アドレスはベクタ テーブル方式となります。また Thumb ステートで起動する為には、ベクタ アドレスに1を足しておかねばな…

WSL で 無償の Verilog な サイクルベースシミュレータ Verilator を使う

Verilator は、Verilog HDL をサイクルベースで論理シミュレーションする無償の設計ツールです。一般的なイベント ドリブン方式と比べ高速ですが、特有の制約事項もあります。Verilog と C++ 記述のテストベンチの具体例を WSL 上で実行して解説し、結果を I…

MS Clarity に .../render2?id=GTM-... が記録されるのを防ぐ

Microsoft Clarity にログが残っている、「.../render2?id=GTM-...」への URL アクセスとは何か、また Clarity への記録を防止策を調べた備忘録です。残念ながら解決には至って居ません。

はてなブログで登録すべきサイトマップは sitemap_index.xml と feed だ

はてなブログで Google Search Console を使用する場合の設定について、ファイルは自サイトの物を全て目視確認、資料は全て Google とはてなの公式のみ参照して確認しました。 結果、「sitemap_index.xml」と「feed」を送信して成功しました。

C 言語のポインタとは何か - アセンブラのロード/ストア命令との1対1対応

ポインタはハードウェアのレジスタ操作には必須の概念です。ポインタのデータ型と ARM のアセンブラとの1対1な対応を説明し、WSL 上 ubuntu 標準パッケージのクロスコンパイラで具体例を示します。(アセンブラ:アセンブリ言語≒機械語)

WSL から WSL2 への移行でX サーバの設定変更が必要になる

WSL1 と WSL2 での X Window サーバー (X Server) の設定の違いについてまとめました。WSL1 から WSL2 への移行では設定変更が必要になります。記事後半に VcXsrv での設定の仕方を記載しています。

WSL2 用に C: ドライブ直下やデスクトップ上にショートカットを作る

WSL

WSL2 のファイルシステムは、仮想化された ext4 フォーマットの単一ファイルです。ネットワークとしてアクセスが必要で、Windows 側とのファイル受け渡しが面倒なので、C: ドライブ直下やデスクトップ上に Sandbox を作ります。

WSL から WSL2 への変換手順

WSL

WSL1から2への変換備忘録。Windows Update で WSL のバージョンが自動で上がる訳では無い。実質的には PowerShell で次の1行を実行するだけ。事前のカーネルパッチは必須。

Linux (UNIX) の ls コマンドの -F オプションの表示記号について調べてみた

ファイル表示コマンド ls に -F オプションを付けると、表示名の最後に、ディレクトリは「/」、シンボリックリンクは「@」、実行可能は「*」、ソケットは「=」、FIFOは「|」の記号が付きます。

RISC-V 関係の目次:

クリックでリンク先の記事に飛びます。 WSL 標準パッケージで RISC-V 32ビット版 RV32E のコンパイルをする // 【ブログトップへ戻る】

WSL 標準パッケージで RISC-V 32ビット版 RV32E のコンパイルをする

WSL 上で Ubuntu 標準パッケージを使った RISC-V 32ビット用のOS無しベアメタル向けコンパイル手順:

WSL に標準添付の ARM 用クロスコンパイラで OS 無しベアメタルのビルドをする

WSL 上 Ubuntu 標準パッケージの ARM 用クロスコンパイラを使って OS 無しベアメタルのビルド手順を解説します。ヘキサファイル (インテル HEX、 MOT) 、素のバイナリ、 Verilog 用 ROM ファイルも出力します。