2014年9月29日月曜日

【Quartz】数式

数式は大体はC言語と一緒です。

------------------------------------------------------------
a = 1 + 2 * 3 / 4        #四則演算
b = (1 + 2) * 3           #( )付き演算
c++                         #インクリメント、デクリメント
a = 1 << 2                #ビットシフト
b = a & 0x00000001   #ビット論理演算
c = "moji" + "retsu"  #文字列連結
------------------------------------------------------------

ビットの論理演算は数値に対してのみ有効で、結果は16進に
なります。文字列の連結は便利そうなので入れておきます。
文字列と文字列意外の連結は…どうしようかなあ。文字列として
返す様にしようかな。

2014年9月26日金曜日

【Cubieboard2】コンパイル備忘録 その2

Buildrootのmakeができたら、これをSDカードにます。4GBぐらいあれば
いいみたいですが、8GBのものを使いました(実際、イメージはそんなに
大きくないので、2GBとかでもいけるかもしれません)。

■書き込み用のスクリプトを起動

# sudo ./board/cubietech/cubieboard/mkcubiecard.sh output/images/ /dev/sdd

Buildrootのフォルダ直下で、上記を実行。最後の/dev/sddの部分は環境に
ことなります。mountされてるとエラーになる可能性があるので、あらかじめ
umountしておきます。

mount時、/dev/sdd1とかなってますが、引数師弟の場合は/dev/sddとします。
これを実行すると、SDカードにすべて書き込んでくれます♪。

■起動!

microSDカードをCubieboard2に挿入して起動!。シリアルポートで動作確認
できますよ~。ちなみにシリアルポート接続はFTDIのUSB接続タイプのを使って
ますが、Cubieboad2のシリアルポート(USB1/2ポートのすぐ後ろくらいにある
4pinヘッダのコネクタ)には

GND...黒
VCC...×
RX...緑
TX....白

の様に接続。VCCに赤のラインをつなぐと動きませんので、ここはNCです。

■シリアルコンソール

Ubuntuの場合、「Serial port terminal(シリアルポート端末)」と言うソフトがあるので、
ソフトウェアセンターでインストールできます。ただし、これを普通に動作させると
「許可がありません」とか言われるので、コンソール(端末)から

# sudo gtkterm &

でOK。シリアルポートはボーレートが115200、8bit、stop:1bit、パリティーなし、で
動作してます。

やってみたら意外と簡単でした♪。Buildrootすげー。



2014年9月21日日曜日

【Cubieboard2】コンパイル備忘録 その1

Cubieboard2を買ってほったらかしになっていたので、それ様のBootイメージを
作ってみようかと思います。

公式サイトではYocto使う様に書かれてたり、Debianイメージが配布されていたり
するんですが、ウチの非力なPCではYoctoのコンパイルには時間がかかりすぎるし
Debianは色々入りすぎてる感じ…。ってことで 割とお手軽そうなBuildrootを選択。

■Tool Chain

Ubuntuの場合はapt-getで取れます。


# apt-get install gcc-arm-linux-gnueabihf

 
■U-Boot

gitで取ってきます。

# git clone https://github.com/linux-sunxi/u-boot-sunxi.git

取ってきたらu-boot-sunxi/に入って、まずはConfigを作ります。

# make CROSS_COMPILE=arm-linux-gnueabihf- Cubieboard2_config 

U-Boot本体を作ります。

# make CROSS_COMPILE=arm-linux-gnueabihf-

■ツール類

gitで以下の2つを取ってきます。

# git clone git://github.com/linux-sunxi/sunxi-tools.git
# git clone git://github.com/linux-sunxi/sunxi-boards.git

sunxi-tools/に入って、ツールをまず作ります。

# make fex2bin

sunxi-boards/sys_config/a20に入ります。ここに目的のcubieboard2.fexファイルが
あります。これはボードのハード設定諸々を記述したもので、これをコンパイルしてbin
ファイルにした後、U-bootからKernelに引き渡す様です。

# ../../../sunxi-tools/fex2bin cubieboard2.fex script.bin

生成されたscript.binが目的のファイルです。

※Buildrootを取ってくると、上記も一緒に入っててAutoでコンパイルしてくれてました。
 なので、Buildroot使う場合は必要ないです。

■Buildroot

gitでも取れますが、今回は

  http://buildroot.uclibc.org/download.html

からtar.gzファイルを取ってきて展開。

# tar  zxvf  buildroot-2014.08.tar.gz

buildroot-2014.08/に入ってコンパイル。まずはconfig作ってから本体のmake。

# make cubieboard2_defconfig 
# make

今日はここまで♪。



2014年9月1日月曜日

【Quartz】変数について

コメントには"#"を使います

------------------------------------------------------------

#コメント

a = 123 #コメントは文の後ろでも可

#複数行コメント書きたいときは
#各行の先頭に"#"が必要です

------------------------------------------------------------
変数はCっぽい感じにしますが、型宣言による初期化は必要としない
ことにします。

------------------------------------------------------------
a = 123             #整数
b = "mojiretsu"  #文字列
c = 0.123          #浮動小数点
d = 0x123         #Hex値
e = [00112233]  #データ列
------------------------------------------------------------

変数の型は代入する値で決まります。言い換えれば、代入する
毎に型が決定されます。演算による型の変更は…まだ考えて
ません(^^;。

Hex値は内部でunsigned longで扱われます。データ列はHex値の
"0x"を省いた16進値を連続で書き込むと、そのデータがバッファに
記述されるようにします。MAX値は16byteまでです。通信フレーム
とか扱ってると、連続値入力したいときが良くあるので、この型を
設けます。

ポインタはどうしようかなあ…。複雑になるからとりあえず止めとくか。