(別室)Cygwinのページ
※このページはあくまで個人的な趣味によって書かれており、著者は全ての内容について、いかなる責任も負いません。
Cygwinは,Unix系のソフトウェアが動作する環境を、Windows上に構築するアプリケーションです。
※Cygwinのダウンロードサイト:
※http://www.cygwin.com/
※注1)Cygwinはフリーソフトです。
Cygwinを使ってみる
●簡単な基本操作
Unixを使った事がある人なら、操作は同じなので説明は不要だと思います。
CygwinでC言語のプログラムを作ってみる
1.エディタでC言語のプログラムを書く
2.cygwinで、作成したC言語のプログラムを、コンパイル/リンクする
3.作成したプログラムを実行する
プログラムソース(C言語)
GDBでC言語のプログラムをデバッグする
1.エディタでC言語のプログラムを書く
2.cygwinで、作成したC言語のプログラムを、コンパイル/リンクする
3.作成したプログラムを実行する
4.GDBでよく使うコマンド(一部のみ抜粋)
プログラムソース(C言語)
CygwinでFORTRANのプログラムを作ってみる
プログラムソース(FORTRAN) ※改行コードはHPで表示できるように変換してある
データベース(PostgreSQL)を使ってみる
●インストール
※(写真)PostgreSQLがインストールされていれば、cygwinから、「pg_ctl --version」と入力すると、
●簡単な基本操作
基本的な操作は、他のデータベース(RDB)を使った経験があれば、おそらく、大差なく使う事ができると思います。
プログラムソース(C言語)
Cygwinを使ったTOPPERS/JSP環境
ただいま、準備中!!
●インストール
●基本操作
PICの開発環境について
※この項目の内容は、「Cygwin」と関係ないものも含んでいます。
1.フリーのCコンパイラー
(1)HI−TECH PICC Lite
※http://www.htsoft.com/よりダウンロードし、画面の指示にしたがってインストールする。
※注)現在は、マイクロチップ社により回収され、最新のMPLABをインストールすると、デフォルトでは
(2)SDCC:Small Device C Compiler
※http://sdcc.sourceforge.net/よりダウンロードし、画面の指示にしたがってインストールする。
(3)gputils:GNU PIC Utilities
※http://gputils.sourceforge.net/よりダウンロードし、画面の指示にしたがってインストールする。
Gnuのクロス開発環境(gcc)について
UNIX(Cygwin)上で、下記のコマンドを使って開発するフリーでコマンドラインベースの開発ツールです。
1.H8/3664の開発環境について
「(別室)H−8で遊ぼう」
のページを参照
2.SH−2(SH7144F/SH7125F/その他)の開発環境について
(1)Gnuのクロス開発環境の設定
・Cygwin上でのGnu環境の作成方法については、解説しているサイトが多いので、詳細は割愛しますが、
(2)コンパイル・リンク、及びマイコンへの書き込み
・プログラム、及びmakefile等を用意し、makeして、作成されたMOTファイルをマイコンに書き込む。
SH7144F Cygwin用 gcc開発環境サンプル
3.ARMの開発環境について
(1)Gnuのクロス開発環境の設定
・上記、「2.SH−2の開発環境について」を参照
4.V850Eの開発環境について
(1)Gnuのクロス開発環境の設定
H8/OSについて
1.H8/3664の開発環境について
(1)Gnuのクロス開発環境を設定する
・上記「Gnuのクロス開発環境(gcc)について」を参照
(2)H8/OSに必要なファイルをダウンロードする
・
「みついわ氏」のHPより、必要なファイルをダウンロードする
※「(別室)リアルタイムOSで遊ぼう 」
のページを参照
(3)H8/OSを使ったコンパイル
・マニュアルの手順の通りに、コンパイルする
※「(別室)リアルタイムOSで遊ぼう 」
のページを参照
上記、サンプルプログラム ※「(別室)リアルタイムOSで遊ぼう 」のページより抜粋
AVRの開発環境
WinAVR(Gcc)を使ってみる
●WinAVRで、AVR-CPUのC言語のプログラムを作成する
プログラムは次のサイトよりダウンロードするといいと思います:
※http://sourceforge.net/projects/winavr/
ダウンロードしたプログラムを実行すると、WinAVRがインストールされます。
(1)Windowsの「スタート」ボタンから、「すべてのプログラム」 => 「WinAVR」 => 「MFile(WinAVR)」
上記でMakefileを保存したディレクトリーに、main.cのファイル名でプログラムを作成、保存する。
AT90S2313 WinAVR用 コンパイルテスト用サンプルプログラム
(1)Windowsから、「コマンドプロンプト」を開き、上記でMakefileを保存したディレクトリーに移動する。
n:(Makefileを保存したディスクのドライブ名)を指定する
4.(2)で作成されたHEXファイルを、各種ライターの手順に従ってAVR−CPUに書き込む。
MSP430の開発環境
Mspgcc(Gcc)を使ってみる
●Mspgccで、MSP430のC言語のプログラムを作成する
プログラムは次のサイトよりダウンロードするといいと思います:
※http://mspgcc.sourceforge.net/
ダウンロードしたプログラムを実行すると、Mspgccがインストールされます。
(1)使用するMPUに合わせて、makefileを作成する
上記で作成したフォルダーにC言語でプログラムを作成し、保存する。
Windowsのコマンドプロンプト上で、「make」コマンドを実行するだけで、実行ファイルが作成される。
サンプルプログラム MSP430F4270用
※「(別室)おまけのページ」
より抜粋
MSP430をJTAGでパソコンにつなぎ、作成されたプログラムをマイコンに書き込む。
Unix系OS上では、フリーの開発ツールが、多く提供されている事もあって、CPUの開発でも
使われる事が多いように思います。
GNUやCygwinの詳細は割愛しますが、多くの研究者が説明しているサイトがあるので、Unixを使った事がない人でも、読んでみれば
わかると思います。
私は過去に、仕事でUnix(サンマイクロシステムズのSolaris)を使っていたのですが、業務とはいえ、机の上にWindows系パソコンと、
Unixマシーンの2台のコンピュータとモニタを置くのは、デスクのスペースを圧迫して邪魔でした。
WindowsXP上で、Unixの
ウインドーが開くというのは、なかなか便利な事です。
※注2)デフォルトインストール(50Mバイト程度)では、下記で使用している、「viエディター」、「cc」、「gcc」、「gdb」等のコマンドは使えません。
フルインストールの場合、全ての機能が使用できますが、2.5Gバイト程度のディスク容量が必要なので、ディスクに余裕がない人は、
デフォルトインストールした後で、必要な機能を追加インストールしてもいいと思います。
Cygwinのウインドーイメージ(DOSのコマンドプロンプトのようなイメージです)
初めての人でも、下記のコマンドくらいを知っていれば、簡単な操作はできると思います。
Unixでは、大文字と小文字は、別の文字として区別されますが、基本的にコマンドは小文字で入力します。
ただし、CygwinのフォルダーはWindowsと共有しているので、下記のコマンドなど全く知らなくても、ファイル操作は、ファイル操作は、
Windowsの「エクスプローラ」や「エディタ」でも行なうことができます。
但し、エディタでファイル保存する時の指定で、改行コードを、\r\n(0D0A)でなく、\n(0A)を選択します。
Windowsエディタの指定
1.ディレクトリー操作
pwd ;現在のディレクトリーを表示する
ls ;ディレクトリー内にあるファイルやサブディレクトリーを表示する
ls -al ;ディレクトリーにあるファイルやサブディレクトリーを、全て表示する
cd .. ;ディレクトリーを一つ上がる
cd (ディレクトリー名) ;ディレクトリーを移動する
mkdir (ディレクトリー名) ;ディレクトリーを作る
rmdir (ディレクトリー名) ;ディレクトリーを削除する
※但し、プロテクションコード(「ls -al」で表示される「drwxrwx...」の事)
で保護されているディレクトリーを削除する場合は、「chmod」コマンドで
プロテクションコードの変更が必要。また、ディレクトリーが空である事。
2.ファイル操作
cp (ファイル名1) (ファイル名2) ;ファイル名1をファイル名2にコピーする
mv (ファイル名1) (ファイル名2) ;ファイル名1をファイル名2に移動する
mv (ファイル名1) (ディレクトリー名);ファイル名1をディレクトリーに移動する
rm (ファイル名1) ;ファイルを削除する
※但し、プロテクションコード(「ls -al」で表示される「drwxrwx...」の事)
で保護されているファイルを削除する場合は、「chmod」コマンドで
プロテクションコードの変更が必要。
cat (ファイル名1) ;ファイル名1の内容を表示する
3.エディタ
Windowsで使っているテキストエディタが使えますが、Unixの「viエディタ」を使うなら、デフォルトのインストールのままでは
使えないので、簡単な設定が必要になります。
設定方法は、詳細に解説しているサイトがあるので、参考にするといいと思います。
冒頭でも書いた通り、Windowsのテキストエディタを使うなら、ファイルを保存する時の指定で、改行コードを、
\r\n(0D0A)ではなく、\n(0A)を選択して保存します。
使っているエディタに、このような変換機能がなければ、Cygwinのdos2unixコマンドでコードを変換する事も可能です。
Cygwinのコマンドで改行コードを変更する例
@fileコマンドで、ファイルの属性を確認する
Ados2unixコマンドで、改行コードを変換する
Bfileコマンドで、属性が変更された事を確認する
4.その他の操作
ps ;動いているプロセスを表示する
logout ;終了する
ディレクトリーを作る例(目隠しをしたのは、デフォルトのシェルではコンピュータ名やユーザーIDが表示されてしまうため)
Cygwinで簡単なプログラムを動かしてみました。
通常、開発では、コンパイルやリンクに、いろいろな条件やライブラリーを必要とする事が多いので、makeファイル
(コンパイルやリンクに必要な情報を記述したプロシージャー)を使用するのですが、C言語の標準ライブラリーしか
使わないのなら、このようにコマンドを一つ一つ入力してコンパイル/リンクしたほうが簡単です。
例えば、WindowsXPのテキストエディタで、下記のプログラムを作成し、デフォルトディレクトリー
※通常は、C:\cygwin\home\(WindowsXPでログインしているユーザーID)に、任意のファイル名で保存する
サンプルプログラム(test.c)
#include < stdio.h>
int main(void)
{
printf("\n test");
}
下記のコマンドを入力する
cc test.c
上記のコンパイル/リンクが成功すると、出力ファイル名を指定していない場合、「a.exe」という
実行ファイルが作成されるので、
cygwinのウインドーから、下記のコマンドを入力すると、作成したプログラムが実行されます。
a.exe
上記の操作を実行したところ
GDBを使って、C言語のプログラムをデバッグしてみました。
GDBは、とても使いやすいとは思えませんが、UNIXではよく知られています。
WindowsXPのテキストエディタで、下記のプログラムを作成する。
サンプルプログラム(work.c)
#include < stdio.h>
int main(void)
{
int i;
i = 0;
while(1){
printf("\n %8.8d",i);
i++;
}
}
下記のコマンドを入力する
gcc -g work.c
上記のコンパイル/リンクが成功すると、出力ファイル名を指定していない場合、
「a.exe」という実行ファイルが作成される。
cygwinのウインドーから、下記のコマンドを入力すると、作成したプログラムのデバッグが開始される。
gdb a.exe
list ;プログラムソースを表示する
break (行番号や関数名等) ;ブレークポイントを設定する
run ;プログラムを実行する
c または cont ;継続する
watch (変数名) ;変数の書き込みを追跡する
quit ;GDBを抜ける
上記の操作を実行したところ
Cygwinで簡単なFORTRANのプログラムを作ってみました。
コンパイルは’f77’または、’g77’で行ないます。
簡単なコンパイル、実行イメージ
PostgreSQLは、カリフォルニア大学バークレー校で開発されたPostgreをもとに、世界中のプログラマーによって開発されている
フリーソフトです。
主にUnix系のWebサーバと連携されて使われる事が多く、大規模なデータベースを構築する事が可能で、しかも機能的にも
優れているので、使われる事も多くなった気がします。
ここでは、CPUの開発という、このページの本来の主旨から大きく外れてしまうので、簡単にしか触れませんが、Cygwinのアプリ
ケーションとしては、一般的に使われているものです。
「cygwin」のインストーラーで、「Database」の選択肢の中にある、PostgreSQLに最新バージョン(私がインストールした
時点では7.4.5)を指定して、インストールします。
PostgreSQLを使うには、いろいろと設定する事があるのですが、設定方法を紹介している日本語サイトは多くあるので、
参考にするといいと思います。
PostgreSQLのバージョンが表示される。
通常は、C言語等のプログラムに組み込んで作って使うほうが、普通の使い方です。
1.データベースの初期化
下記のコマンドを入力する
export CYGWIN=server
cygserver-config
initdb -D (データベースを作成するディレクトリー)
データベースの初期化イメージ
2.データベースの起動
下記のコマンドを入力する
export CYGWIN=server
cygserver-config
postmaster -i -D (データベースを作成したディレクトリー) &
データベースの起動イメージ
3.データベースの作成
下記のコマンドを入力する
createdb (データベース名)
データベースの作成イメージ
4.SQL文によるデータベースの検索イメージ(プロンプトから)
下記のコマンドを入力する
psql (データベース名) : データベースを使用する
※このコマンドを入力すると、プロンプトが (データベース名)=# に変わり
SQL文の入力が可能になる
\q :SQLプロンプトを抜ける
データベースの検索イメージ
5.テーブルを作る
SQLプロンプトから、下記のコマンドを入力する
create table (テーブル名) { テーブル定義 };
テーブルを作っているイメージ
6.作成したテーブルにデータを代入する
SQLプロンプトから、下記のコマンドを入力する
insert into (テーブル名) values { データ };
データを入力しているイメージ
7.SELECT文で作成したデータを確認する
SQLプロンプトから、下記のコマンドを入力する
select * from (テーブル名);
データを確認しているイメージ
8.C言語で、データを検索するアプリケーションを作る
適当なディレクトリーで、下記のプログラムをコンパイル/リンクする
gcc -o work.exe work.c -I /usr/inlude/postgresql/server -lpq
プログラムを実行すると、検索した結果が表示される
./work
C言語のプログラムでデータを検索しているイメージ
9.データの更新・削除を行なう
SQLプロンプトから、下記のコマンドを入力する
(1)データの更新
update (テーブル名) set { データ } where { 更新条件 } ;
(2)データの削除
delete from (テーブル名) where { 削除条件 } ;
データを更新・削除しているイメージ
※1)TOPPERS/JSPは、「μITRON4.0仕様」 に準拠したリアルタイムカーネルです。
※2)TOPPERS/JSPについては、
「(別室)リアルタイムOSで遊ぼう」
のページで紹介しています。
※3)この章では、「もなみソフトウエア」の「PizzaFactory」を使わない方法を説明していますが、
「PizzaFactory」は、簡単で使いやすく無償でダウンロードできるので、そちらを使う方がお勧めです。
1.クロスコンパイラー環境のインストール
下記の「Gnuのクロス開発環境(gcc)について」の項を参照
2.TOPPERS/JSPのインストール
1.サンプルプログラムをビルドする
2.マイコンに書き込む
(1)SH−2の場合
(2)V850の場合
・インストールするとMPLABからそのまま使用できるので、使い方が簡単です。
・製品版を購入しないと、使用できるPICマイコンが16F84等、ごく一部のマイコンに限定されます。
そのまま使用できます。無償評価版でも、ほとんどのPICマイコン(PIC10,12,16)に対応しています。
・一般的なPICマイコンがほとんどカバーされているフリーのCコンパイラーです。
・Cygwinを使って環境を構築してもいいのですが、Windows版(SDCC−win32)があるので、そちらを使った方が
簡単だと思います。
・コンパイルすると、ASMファイルが作成されるので、これを、下記のgputils(GNU PIC Utilities)や、MPLAB、MPASM等で
アセンブル・リンクして、HEXファイルを作成します。
・上記、「SDCC」等と組み合わせて使用できるフリーのアセンブラ、及びリンカです。
SDCC+gputilsの使用例(WindowsXPのコマンドプロンプトで実行した場合)
多くのCPUに対応しているので、CPUの開発では一般的に使われています。
通常は、Makefile(コンパイルやリンク等の手順を書いたファイル)を作って使用するので、個々のコマンドを打つ事は
あまりないと思います。
●よく使われるコマンド
・(プロセッサ名)−elf−as ; アセンブラ
・(プロセッサ名)−elf−gcc ; コンパイラ
・(プロセッサ名)−elf−ld ; リンカ
・(プロセッサ名)−elf−objcopy ; フォーマット変換ツール(HEX形式、S形式、バイナリ形式等の変換を行う)
●一般的に用意するファイル(最低限)
・Makefile(デフォルトは、ファイル名:Makefileで拡張子なし)
・C言語のプログラムソース(拡張子 .c .h)
・スタートアップルーチン(拡張子 .s) ・・・・・・プロセッサの起動時の動作を定義する
・リンカスクリプト(拡張子 .def) ・・・・・・プログラムやデータのメモリーへのアロケーション情報を定義する
※SH−2については、
「(別室)SH−2で遊ぼう」
、
「(別室)おまけのページ」
で紹介しています。
Gnu環境はソース形式で提供されるために環境の構築が必要となり、時間と手間がかかる作業になります。
・
「Interface誌」2006年7月号
では、Gnuツールのバイナリー形式も用意されていますので、正規の方法ではないのですが、
このファイル(sh-tools.tar.gz)を解凍して、フォルダーごとCygwinの「/usr/local」にコピーするだけでも設定は完了します。
手間をかけたくない人には、こちらの方がお勧めです。
「/usr/local」の下に、Windowsのエクスプローラー等で「sh-tools」をコピーするだけでもよい
下記は、簡単なサンプルです。 ※「Interface誌」のサンプルに簡単な修正をしただけです。
Cygwinの適当なフォルダーにコピーし、main.cという名前でC言語のプログラムを作成してmakeし、エラーが無ければ
main.motファイルが作成されます。
これをFDT等のライターでSH−2マイコンに書き込めばよい。
コンパイルイメージ(main.cのファイル名でプログラムを作成し、makeコマンドを実行する)
※ARMについては、
「(別室)おまけのページ」
で紹介しています。
・
「日本の組み込み情報」
のページでは、「GNUwing」としてバイナリーも用意されているので、手間をかけたくない人にはお勧めです。
※Cygwinの /usr/localにフォルダー毎コピーするだけです。(上記、SH−2を参照)
※V850Eについては、
「(別室)おまけのページ」
で紹介しています。
・上記、「2.SH−2の開発環境について」を参照
・手間をかけたくない人は、「インターフェース誌 2007年12月号」の付録に、バイナリー形式のものが
が付いているので、これを解凍して、フォルダーごとCygwinの /usr/localにコピーする方がお勧めです。
「test1.c」のコンパイルイメージ 作成された「test.mot」をマイコンに書き込む ※「(別室)リアルタイムOSで遊ぼう 」のページより抜粋
WinAVRを使って、AVR-CPUのプログラムを、C言語で作成する事ができます。
WinAVR、gcc、avr-gcc等の詳細は、説明しているサイトが多いので、参考にするといいと思います。
ここでは、基本操作のみを取り上げています。
なお、WinAVRは、AVRのgcc開発環境をWindowsパソコン上で使うためのツールで、Cygwinとは関係がありません。
1. WinAVRをインストールする
2.Makefile(コンパイルするための条件が書かれたバッチファイル)を作成する
を実行する。
(2)「mfile」画面が立ち上がるので、「Makefile」 => 「MCU Type」 で、使用するCPUを選択する。
AT90S2313を選択したイメージ
(3)「mfile」画面から、「File」 => 「Save As」で、プログラムを開発するディレクトリーに、このMakefileを保存する。
3.C言語でプログラムを開発する
4.プログラムをコンパイルする
cd *****(Makefileを保存したディスクのディレクトリー名)を指定する
(2)「コマンドプロンプト」から、「make」と入力すると、コンパイルが実行される。
make
コンパイルエラーがなければ、HEXファイルが作成される。
実行イメージ
5.AVRにプログラムを書き込む
AVRに書き込む方法はいろいろあるのですが、この方法が最も簡単だと思います。
Mspgccは、MSP430のフリーの開発環境(Gcc)です。
Gccの詳細については、上記で説明してきた通りなので、ここでは、基本操作のみを取り上げています。
なお、Mspgccは、Windowsパソコンのコマンドプロンプト上での使用が可能で、Cygwinと直接関係は
ありません。
1. Mspgccをインストールする
2.Makefile(コンパイルするための条件が書かれたバッチファイル)を作成する
Mspgccをインストールすると、大量のサンプルが「Examples」のフォルダーに作成されるので、これを適当なフォルダ
(フォルダ名に日本語や空白を含まない事)にコピーして、該当箇所を修正すると簡単だと思います。
3.C言語でプログラムを開発する
4.Makeを実行する
実行イメージ
sample.lzh
5.MSP430にプログラムを書き込む
書き込みには、gdb(デバッガ)を使ってもいいし、
MSPFET
を使ってもいいと思います。
MSPFETは、操作が簡単(「SETUPボタン」を押して簡単な設定を行なっておけば、MPUを選択し、実行ファイルを開いて、
「Autoボタン」を押すだけで書き込みできます)なので、お勧めのツールです。
MSPFETは簡単に使用できるツールです
ボタンを押すとPICのページへ飛びます
ボタンを押すとメニューのページへ飛びます
問い合わせ先(代表者)E_MAIL BYP03364@nifty.ne.jp
※ウイルス感染防止のため、容量の大きなもの、添付ファイルのあるもの、テキスト形式以外のメールは
全て削除されます。
また、個々の質問については、お答えできません。