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

フリーソフトや組込開発関係の情報を公開出来たらいいなと

64ビット Mingw-w64 を、32ビット版 MSYS から利用する様にインストールする

MinGW 関係の目次へ戻る

MinGW-w64とは

MinGW-w64 は、Windows用アプリケーションが作成可能な GCC (GNU Compiler Collection) ですが、32ビットのバイナリに加え、64ビットのバイナリも生成可能です。

高級言語としては、C (gcc)、C++ (c++、g++)、FORTRAN (gfortran) が利用可能となります。

以前の記事にてインストールが完了している32ビット版の Mingw/MSYS 環境に、64ビット版のコンパイラー「」使える様に MinGW-w64 を追加インストールします。

尚、この64ビットバイナリを生成可能なコンパイラ自体は、mingw32 への移植なので、32ビット版の Windows でも動作する筈です。

インストーラーのダウンロード

まずは次の公式サイトから、MinGW-w64 の単体版 ( MSYS2 のバンドルされていない版) をダウンロードします。サイトの Downloads から MinGW-w64-builds を選んで、mingw-w64-install.exe をダウンロードします。

mingw-w64.org

MinGW-w64 の64ビット版コンパイラをインストール

インストーラーを起動して Next を押すと、次の様な画面になり、選択肢が出てきます。複数のバージョンをインストールしたい場合、以下の作業を繰り返します。

f:id:minettyo:20210120164945p:plain

各選択肢の意味は次の通りです。

  • Version: コンパイラー (gcc) のバージョンです。
    取り敢えず以下の説明では、6.4.0 を選んだ事になっています。
  • Architecture: 生成されるバイナリが、i686 は32ビット、x86_64 は64ビットです。
    今回は64ビット版をインストールしたいので x86_64 を選びます。
  • Threads: スレッド モデルの APIPOSIX 準拠か、Windows 32か選びます。
    POSIX スレッドを選ぶと、bin の下に WinPthreads 専用の libwinpthread-1.dll が追加される筈???です。
  • Exception: コンパイルしたバイナリに付加する例外ハンドラの形式です。
    i686 では dwarf か sjlj を、x86_64 では seh か sjlj を選べます。
     DWARF: デバッガー等でも使用される、内部で小人さん V4 が働く形式です。
     SEH: Structured Exception Handling の略で、構造化例外処理です。
     SJLJ: Set Jump & Long Jump の昔ながらの C 言語の例外処理形式です。
     処理速度が遅くなります。 
  • Build revision: Mingw-w64 専用にGCCのソースが修正された場合に上がります。

次の画面でインストール先のフォルダを聞かれます。今回は C:\MinGW64 にします。チェックボックスとして問われるスタートメニューのショートカット登録は、DOS 窓が起動されるだけなので、無くても困らないと思います。

最後まで正しく終了すると、C:\MinGW64 に上の選択肢毎にフォルダが分かれてインストールされています。

MSYS の Mintty ターミナルから起動出来る事の確認

前回の記事で作成したタスクバー上のMアイコンをクリックして MinGW32/MSYS のMintty ターミナル ウィンドゥを開きます。下記の通り順番にコマンドを打ってバージョン番号が出れば正しく動作しています。

  • cd /c/MinGW64 ⇒ C: ドライブの MinGW64 に移動します。
  • ls ⇒ 上記で選んだ選択肢毎にディレクトリが出来ている事を確認します。
  • cd x86_64-6.4.0-posix-seh-rt_v5-rev0 ⇒ 選択肢のディレクトリに下ります。
  • cd mingw64/bin ⇒ あと2つディレクトリを下ります。
  • x86_64-w64-mingw32-gcc --version (ハイフンは2つ) ⇒ 表示を確認します。
  • x86_64-w64-mingw32-c++ --version (ハイフンは2つ) ⇒ 表示を確認します。
  • x86_64-w64-mingw32-g++ --version (ハイフンは2つ) ⇒ 表示を確認します。
  • x86_64-w64-mingw32-gfortran --version (ハイフンは2つ) ⇒ 表示を確認します。

MSYS の bash コマンド ターミナルからの使い勝手の向上

あと2手間掛けて、ターミナルの bash コマンドラインからの使い勝手を向上しておきます。

マウントポイントの追加

上記インストール直後の状態では、MinGW-w64 は/c/MinGW64/x86_64-6.4.0-posix-seh-rt_v5-rev0/mingw64 からのアクセスになりますので、MSYS の ルートディレクトリ / に /mingw64 としてマウントします。

C:\MSYS にインストールしてある MSYS の、/etc ディレクトリ (ウィンドゥズの C:\MSYS\etc) に行き、fstab というファイルの最後に次の3行を追加します。32ビット用の3行をコピー & ペーストして書き換えれば良いです。

# Win64_Path Mount_Point
#------------------------------------- -----------
C:/mingw64/x86_64-6.4.0-posix-seh-rt_v5-rev0/mingw64 /mingw64

  • 実際のファイルでは、タブ キャラクターが入ってインデントされています。
  •  「mount」コマンドを打って、正しくマウント出来たか確認します。また、「ls /mingw64/bin」と打って、目的の GCC キットが正しくマウントされたか確認します。

パスの追加

MSYS の PATH 設定に「/mingw64/bin」を追加します。

まずは、システム全体のデフォルト値のパスを確認する為に、/etc/profile (C:\MSYS\etc\profile) の中身を確認します。また、bashコマンドラインで「env | egrep '^PATH=’」と打つと PATH 環境変数の値が確認出来ます。Windows の PATH 環境変数を引き継いで居ます。

個人で色々と設定している方は、お好みに合わせてどうぞ。以下の記述は、まだ何もしていない方向けです。

ホームディレクトリで「ls -a」とコマンドを打って、「.profile」(先頭にドットが付きます) という名前のファイルが有るか確認します。無ければ新しく作ります。

64ビット版のパスを優先する場合、次の1行を書いておきます。

 export PATH=".:/usr/local/bin:/mingw64/bin:/mingw/bin:/bin"

  • 「source .profile」コマンドを打って、上記のファイルを読み込みます。
  • 「env | egrep '^PATH=’」と打って、パスの設定を確認します。
  • 「which gcc」と打って、どのディレクトリの gcc が使われるか確認します。
  • 「gfortran --version」(ハイフンは2つ) と打って正しいバージョンが表示されるか確認します。

 

Windows でも動く、無償の Verilog HDL シミュレーター、Icarus Verilog

MinGW 関係の目次へ戻る

Verilog HDL とは

Verilog HDL はハードウェア記述言語で、論理回路の動作を記述する言語の1つです。論理合成で回路を自動生成する前に、HDL (Hardware Description Language) でシミュレーションを行って動作を検証します。元々は Cadence 社の Verilog-XL という CAD ツール用に開発されたものですが、その後 IEEE 1364 として標準化が行われ、現在に至っています。

HDL として有名な物には他に VHDL が有り、Verilog HDL は主に半導体関係者、VHDL は装置製造業関係者においてシェアが高いと言われています。とは言え、HDL の一番のユーザーは半導体関係者ですから、Verilog HDL が優位性な立場にあります。

無償の HDL シミュレーター、Icarus Verilog

さて、無償の Verilog HDL シミュレーターは幾つか在るのですが、Icarus Verilog という物が有名です。次のサイトが本家になります。

iverilog.icarus.com

Icarus Verilog は、Verilog-XL のインタープリタ型とは違い、コンパイル型のシミュレーターです。HDL ソースからコンパイルしたオブジェクトを実行する事によりシミュレーションが動作します。

コンパイル型の Verilog HDL シミュレーターは、Cadence 社の Incisive (旧 NC-Verilog)、Synopsys 社の VCS、Mentor Graphics 社の ModelSim といった大手 CAD ベンダーの商品も有りますが、非常に高価です。唯一個人で入手可能なのは、Mentor Graphics 社製 ModelSim の FPGA 専用パッケージ辺りです。

Icarus Verilog は、元々は Linux 用に開発されています。

尚、無償の Verilog シミュレーターは Icarus Verilog 以外にも有り、ubuntu Linux では複数の無償で動く Verilog HDL シミュレーターが標準レポジトリからインストール可能です。(但、Windows に移植されているか否かは存じません。)

Windows 用の Icarus Verilog

さて、ここから本題ですが、無償の Verilog HDL シミュレーター Icarus VerilogWindows においても、MinGW を使用して移植が行われています。

本家とは別に次のサイトで MinGW を使った Windows への移植方法が公開されています。

iverilog.fandom.com

尚、最新の Icarus Verilog は Version 1.1 なのですが、Version 0.8 までは、こちらの本家の ftp サイトWindows 版のバイナリが公開されており、MinGW に移植する為の各種パッケージも公開されています。

ftp://ftp.icarus.com/pub/eda/verilog/

インストールすると、かなり本格的な HDL シミュレーションが行えます。

無償の波形ビューワー、GTKwave

論理回路のシミュレーションをした後は、動作波形を見たくなるものです。Icarus Verilog は波形ファイルとして標準の VCD (Value Change Dump) ファイルを出力できます。

VCD ファイル用の有名な無償ビューワーとしては、GTKwave が有ります。

Windows でも動く、無償の GUI ソースコード デバッガー Insight

MinGW 関係の目次へ戻る

Insight とは

Insight とは、旧 Cygnus Solution 社、現 RedHat 社が開発した、GUI ベースのソースコード デバッガーです。有志により Windows 上の GNU 開発環境 MinGW にも移植されている為、Windows 上のネイティブ・アプリケーションとしても動きます。

ここで言うソースコード デバッガーとは、CやC++などの高級プログラミング言語ソースコードに、ブレークポイントを張ってプログラムを途中停止したり、1行ずつシングルステップ実行して動作を確認する機能のことです。

Insight は、GDB (The GNU Project Debugger) と蜜に結合し、GUI 表示はスクリプト言語 Tcl/Tk でおなじみの Tk をベースに開発されたプログラムです。従って、Windows 上で Tk を動かし、その Tk の上で GUI プログラムが動いています。

Insight の特徴として、GDB と蜜に結合している為、ソースコード上の変数の上にカーソルを置いただけで、その時点の変数の値が表示されます。

MinGW 用の Insight バージョン6.3 は、次の SourceForge のサイトからダウンロード可能です。尚、ソースコード デバッガーはアセンブラ プログラムをベースに動作しますので、CPU の種類毎に別のプログラムが必要となります。
尚、ここに置かれているバイナリは32ビットの x86 (i686-pc-mingw) 用で、デバッグ情報の形式は DWARF-2 専用です。他の CPU アーキテクチャ (64ビットの x86_64 含む) 用には、ソースコードをダウンロードして修正やビルドをしなければなりません。

また、GCC バージョン 4.8.1 以降では、DWARF のバージョンは4が標準となっています。MinGW用のコンパイラでは、「-gdwarf-2」指定をしても出力される DWARF ヘッダー情報は4でした。取り敢えず、MinGW のパッケージで利用するには、GCC のバージョン3を追加インストールして使うしか無さそうです。

sourceforge.net

Insight の MinGW へのインストール方法

ファイルの展開と配置

上のサイトより、「mingw-insight-6.3.exe」をダウンロードします。このファイルは自己解凍形式です。クリックしてまずは適当なディレクトリに展開します。インストール済の MinGW にいきなり展開するのは、必要なファイルが消えても困るので避けた方が良いかと思います。

次に、インストール済の C:\MinGW32 の下にディレクトリを作ります。ここでは、MinGW32 用のファイルは ウィンドゥズの C:\MinGW32\usr\local、MSYS の bash コンソール見えには、つまり /mingw/usr/local にインストールする事にします

ウィンドゥズのエクスプローラーを使って前記の展開されたフォルダ insight の下に降り、bin、include 等のフォルダ全てを C:\MinGW32\usr\local から C:\MinGW32\usr\local にコピー (もしくは移動) します。

パスの設定

  1.  タスクバーにピン留め済のMアイコンをクリックして、Mintty ターミナルの bash コンソールを開きます。
  2. 「cd」コマンドを打ってホームディレクトリに行きます。
  3.  ホームディレクトリに作成済の「.profile」ファイルの先頭から2番目 (「.」 の次) に、「/mingw/usr/local/bin」を追加します。
  4. 「source .profile」と打って、修正したファイルを読み込みます。
  5. 「which insifht」と打って、ファイルの所在を確認します。
    /mingw/usr/local/bin/insight.exe と表示されれば大丈夫です。
  6. 「insifht&」 (最後の & はバックグラウンドで起動の意) と打って、次の様なInsight のウィンドウが立ち上がれば正しくインストールされています。

f:id:minettyo:20210123105035p:plain

 Insight の使い方

Insight は MinGW 以外の Linux 環境等でも動きますので、使い方は別カテゴリの記事に記載します。

 

MinGW に標準添付な Mintty 端末エミュレーターの視認性を向上する

MinGW 関係の目次へ戻る

Mintty の視認性、見やすさを向上する設定

前回の記事では、Windows のタスクバーに Mintty のアイコンをピン留めし、MinGW/MSYS 用の端末エミュレーターが瞬時に起動出来る様にしました。

今回の記事では、Mintty 端末エミュレータ―の視認性、見やすさの向上について記載します。尚、記事中の画像は、クリックすると拡大します。

設定ウィンドゥの開き方

まず最初に戸惑うのが、設定ウィンドゥの開き方が分からないという事でしょう。

Mintty では、設定はターミナル・ウィンドゥの上部バーを右クリックした後、「Options...」を選択して開きます。

f:id:minettyo:20210119152411p:plain

フォントの変更

ソフト開発が目的ですから、数字の「ゼロ」と英大文字の「オー」が判別しやすい事は重要です。オススメはずばり、パブリックドメインの DejaVu フォントです。こちらのサイトの Download をクリックして入手します。

ウィンドゥズへのイントール方法は割愛します。

上に記載した方法で開いたオプション・ウィンドゥの Text を選びます。左側のメニューから「Text」を押し、次に「Select...」を押します。フォントの選択ウィンドゥが開きますので、フォント名に「DejaVu Sans Mono」、スタイルは「標準」、サイズは好みに応じて選び、OKを押します。

尚、このフォントは日本語の表示が出来ません。この件はまた別途。

f:id:minettyo:20210119152444p:plain

カーソルの変更

 カーソルは好みの問題もありますが、私は四角いカーソルに慣れているので、それに変更します。

「Options...」からメニュー・ウィンドゥを開き、左メニューの「Looks」を選択し、Cursor を Line から Block に変更します。Blinking にもチェックを入れると点滅します。

f:id:minettyo:20210119152548p:plain

 

以上で、視認性が向上し、プログラミング向きの設定になったかと思います。

MinGW で 標準添付の Mintty 端末エミュレーターを使用する

MinGW 関係の目次へ戻る

通常の起動方法では DOS 窓の中で bash が動く

MinGW/MSYS の起動は、デフォルトでは msys ディレクトリ内に有る msys.bat をダブルクリックして行いますが、この方法では bash がいわゆる Windows 標準のターミナル (いわゆる DOS 窓) 内で動作します。

この状態では vim (vi improved の略で、UNIX 標準添付の vi エディタの機能改善版)  等のスクリーン エディタが使用出来ません。

Mintty 端末エミュレーターの中で bash が動くように設定する

そこで、MSYS に同梱されている VT100 互換の端末エミュレーター (ターミナルエミュレーター) Mintty のウィンドゥ内で bash が動作する様に、以下の作業でタスクバーにアイコンをピン留めします。
Mintty は元々は Cygwin 用に開発された物ですが、MSYS にも移植され標準の端末エミュレータ―として同梱されているのです。尚、Mintty のソースコードは https://mintty.github.io/ からダウンロード可能で、トップページに簡単な解説が在ります。

f:id:minettyo:20210119121520p:plain

まずは mintty を起動してみる

まずは mintty を起動してみましょう。C:\MSYS\msys.bat をダブルクリックして開いた DOS 窓の中で、「mintty」 とコマンドを打ちます。「sh: mintty: command not found」と表示された場合はインストール未了ですので、「mingw-get install mintty」と打ってインストールした後、再度 mintty と打ちます。

mintty を Windows のタスクバーにピン留めする

迅速に起動出来る様に、mintty をタスクバーにピン留めします。タスクバー上のターミナルアイコンを右クリックし、「タスクバーにピン留めする」を選択します。

  1. タスクバー上のターミナルアイコンを右クリックし、「タスクバーにピン留めする」を選択します。
  2. 右クリックから、ターミナルのプロパティを開きます。
    リンク先の最後に「-i /m.ico -」を追加します。最後にスラッシュが有ります。
    上に貼り付けたスクリーンショットを参考にしてください。
  3. 作業フォルダーを空にします。
  4. 以上2点を実施して「適用」を押します。
  5. 下部の「アイコンの変更」を押して、「参照」から C:\MSYS\m.ico を選んで、「開く」を押します。M字のアイコンが出てきたら「OK」を押します。
    もしアイコンが変化しない場合、mintty を閉じてから再度実行します。
  6. 上部の全般タブを開き、名称を Terminal から MSYS MinTTY Terminal に変更します。
  7.  mintty と DOS 窓 (Windows の Terminal) を終了します。

これで、タスクバー上のMアイコンから mintty の中で bash が高速に起動出来る様になりました。



 

プライバシーポリシー、免責事項、著作権

プライバシーポリシー

個人情報の利用目的

「みねっちょのマイコン関係ブログ」 (以下、当サイトと呼びます) では、「お問い合わせフォーム」への記載や、メールによるお問い合わせなどの際に、お名前(ニックネーム)、メールアドレス等の個人情報を御登録いただく場合がございます。
これらの個人情報は、質問に対する回答や必要な情報を電子メール等で御連絡するために利用させて頂くものであり、個人情報は御提供頂く際の目的以外には利用致しません。

個人情報の第三者への開示

当サイトは、個人情報を適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。
・本人の御了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止

御本人からの個人データの開示、訂正、追加、削除、および利用停止のお申し出があった場合には、御本人であることを確認させて頂いた上で、速やかに対応致します。

広告の配信とアクセス解析ツールについて

当サイトは、Amazon.co.jp の商品やサービスへのリンクを訪問者様がクリックした後に購入することにより紹介料を得る、アフィリエイト プログラム「Amazon アソシエイト」の参加者です。この機能はクッキーを使用します。

また当サイトは、Google 社により掲載された広告を訪問者様がクリックすることにより報酬を得る、広告配信プログラム「Google Adsense」の参加者です。この機能はクッキーを使用します。

また当サイトは、Google 社によるアクセス解析ツール「Google アナリティクス」を利用しています。このツールはトラフィックデータの収集のためにクッキーを使用します。トラフィックデータは匿名で収集されており、個人を特定するものではありません。この規約に関して、詳しくはこちらの Google 社のサイトで御確認ください。

これら第三者がコンテンツおよび広告を提供し、訪問者から直接情報を収集し、訪問者のブラウザーにクッキーを設定してこれを認識する場合があります。

これら第三者によりブラウザーに保存されたクッキーによる、広告クリックの履歴、検索やクリックの傾向を反映した広告表示機能、およびアクセス解析の機能はクッキーを無効にすることで情報の収集を拒否出来ますので、お使いのブラウザーの設定を御確認ください。

プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。修正された最新のプライバシーポリシーは常に本ページにて開示致します。

 

免責事項

当サイト内に掲載されたリンクやバナーなどによって他のサイトに移動された場合、移動先のサイトで提供される情報やサービス等については一切の責任を負いません。

当サイトのコンテンツや情報につきましては、可能な限り正確を期すよう努めておりますが、誤情報が入り込んだり、情報が古くなっている場合もあることをお含みおきください。
当サイトに記載された内容の実施や利用によって生じた不利益や損害等については、一切の責任を負いかねますこと、御了承ください。

 

著作権について

当サイトに存在する、文章・画像・動画等の著作物の情報を無断転載することを禁止します。

このブログの目次

当ブログの記事に目次を付けました。記事を書いたら、順次拡張して行きます。

下記のカテゴリーをクリックすると、記事へ直接リンクした目次に飛びます。