新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

2009-01-01から1年間の記事一覧

scheme と microblaze

microblaze に scheme(もどき)を移植した。C++ でつくったのででかい、、、なぜか errno (じつは__errno()という関数。なぞ)で迷ったり、YY_INPUT (パーサーは yacc の力を借りている)でおかしかったりしたが、なんとか動いた。 組み込みで使うなら yacc …

SP605 & Blanca

SP605 と Blanca を並べてみた。並べたからといってどうなるわけではない。 これは本当に並べただけ。SP605 に電源を供給したかったのだが AT 用の電源はちゃんとボードと接続しオンにならないと電力を供給してくれない。ので Blanca をつなげただけ。SP605 …

logiCRAFT2 & Russellville

Russellville という congatec の IVI 評価ボード(Intel Atom と Xilinx のチップが載っている)と logiCARFT2 をつなげてみた。つなげたといってどうなるわけではない。

SP605 到着

Spartan6 の評価ボードが到着した。サイズがでかい。 ニューホライズン(英語の教科書じゃない)@シンガポールから FedEx で到着。物が税関を通るときになぜだかうちに電話がかかってきて、箱の中身はなんだとかなり問いただされていた。税関の人に FPGA を…

bionic の string.h

bionic の libc は strcoll strxfrm の宣言がないのでエラーになる。仕方が無いので、とりあえず宣言だけ書く。必要ならあとでソースを書けばよかろう。たぶん必要ない。ん?こんどは div_t ldiv_t div ldiv。そして bmlen、、、bionic っていっぱい足りない…

#include <...> for ...

c++/4.1.1/bits/char_traits.h の中身の一部につぎの記述を発見 #include <cstring> // For memmove, memset, memchr世の中には私と同じ発想の人がいるんだね。驚いた。これの意図は は memmove, memset, memchr の解決のためにinclude するんだよと。つまりもし、あ</cstring>…

vim が余計な

vim が行挿入時に余計な文字を勝手に挿入する。例えばCなら // // <- 勝手に挿入される。 これを抑制したい。 autocmd FileType * set formatoptions-=ro とするらしい。

木のロボットアーム

これはすごい。木でしかも手動で動かすというところがかっこいい。で検索すると、木の歯車がみつかった。 http://www.geocities.jp/ki_no_haguruma/ オー全部手作りか。すごいな。

本格的に android 移植

さぁがんばるか。まずは単純に make とうってみる。 うぎゃーエラーだ。 Makefile.config などに machine 固有の記述を増やしつつ bionic/libc/arch-machine まできた。ほー libc のためのアセンブラを用意しなければならないのか。linker もちゃんと考えな…

ステートマシン

Lisp の次はステートマシンのセミナー。こっちは and or で回路を作ろうという話。ASIC のスペシャリストの小林芳直先生のセミナー。思っていた以上にハードウェアの話だった(当たり前か)。まずはワンホットからはじめて、ジョンソンカウンターを最終的に…

Lisp の話

先日、Lisp の話を聞いてきた。COINS のコンパイラを開発した人が Lisp コンパイラが十分な最適化を行っていない点についていろいろ話をしてくれた。大変参考になった。Lisp という言語は本質的にネイティブな言語に落とすのは難しい言語なので、やはりその…

Xilinx と ARM

http://pc.watch.impress.co.jp/docs/news/event/20091125_331110.html これは予測の範囲内だよね。A5 で変わったわけではないだろうね。もっと前から技術的に進めないと来年には出せないぞ。A5 がその前からあったのか、、、西嶋社長は昔の会社の上司なので…

ARM 社の発表

マイコミジャーナルによると「Embedded Technology 2009/組込み総合技術展(ET 2009)」において、両社が10月19日(米国時間)に締結した提携の概要に関する説明会を開催した。らしい、、、、http://journal.mycom.co.jp/photo/articles/2009/11/24/xilinx_arm/i…

gcc 4.1.1 と libstdc++

なんだこんだでコンパイルできた。 libstdc++ に手を入れてコンパイルが通るようになった。まず config.sub でmicroblaze を認識するようにした。c++ は shared をオフにした。crti.o を移動した。shared のオフは glibc を作るときに shared library を作ら…

ベトナムとタイ

CQ出版の筆者仲間である某I氏とベトナムとタイに行ってきた。ベトナムでは JETRO の人から最近の IT 関連の状況を、タイでは同じく JETRO の人と昼食をとり IT 関連の状況、さらに DG 社を訪問し組み込み関係の話を聞いてきた。JETRO を通して見たベトナムの…

g++ と stdlibc++ again

> おまけとして g++ の話題。xilinx が提供する gcc を --enable-languages=c,c++ とすると > c++ ができるものの libstdc++ がインストールされない。なんでだ〜〜 configure をみてみた case "${target}" in *-linux-*) noconfigdirs="$noconfigdirs ${tar…

congatec 車載用途に Intel Atom のボード

車載用途に Intel Atom のボード。コメントしたい。そのうち。

--enable-shared

gcc の生成時に --enable-shared をつけたら glibc のコンパイルが最後まで通った。めでたしめでたし。しかし、あまりにもでかくありませんかね?glibc。いま newlib をつくっている。newlib にしたらもうちょいましなサイズになるんじゃないかな、、、

g++ と stdlibc++

おまけとして g++ の話題。xilinx が提供する gcc を --enable-languages=c,c++ とすると c++ ができるものの libstdc++ がインストールされない。なんでだ〜〜。で libstdc++ 単体でコンパイルできるかと思ってやってみた。コンパイルエラー!!!テンプレ…

自前で microblaze 用の glibc をつくる

で自前で glibc を作るとどうなるか?まず gcc を使ってしまう。したがって、多くの場合 gcc は i386 用だから、i386 用の gcc が起動されることになる。しかし、configure では target に microblaze-bluecat-linux を指定しているので microblaze 用のアセ…

glibc の xilinx 的作り方

1) configure に --target=microblaze-bluecat-linux を使っている。 この bluecat というところがミソらしい。しかし、我々(私)は microblaze-bluecat-linux-gcc とか用意していない。どうなってんじゃ?とうやら、microblaze であるということを glibc に…

petalinux の環境と glibc

petalinux の elf.h などに CONFIG_MMU という define が(というか ifdef が)あって、こいつが設定されていないとちゃんと MMU つきの場合のコンパイルが出来ないということがわかった。したがって、configure 時に(おそらく) export CFLGAS=-DCONFIG_MMU…

MicroBlaze 用の gcc

うまくコンパイルできません。glibc でつまづく。まず i386 側の gcc が 4.1.1 じゃないといけないことがわかった。ubuntu の最新の 4.3.2 でつくった xgcc が途中でコンパイル時に内部エラーを発生させてしまう。具体的には static _Bool already; みたいな…

タイランドそしてベトナム

ひょんなことから某CQ出版の筆者仲間に誘われてタイランド経由でベトナムに行くことになった。FPGA やハードウェアそして組み込みシステム関係の視察が中心。あとなんとかまっきーともあうでしょう。ばかまるだし3人組atバンコック。

どんなコンパイラを目指すのか?

fucc も使えるようになった。勉強という意味では LR と ANTLR(これは LL か) も勉強しなければならにだろうが、LL(1) がわかっていれば実用上差し支えなさそう。さて、いつまでも電卓を作っているわけにはいかないのでコンパイラを作ろうという話になる。最…

fucc での g1, g2, g3

コンパらの構成と最適化にでてくる文法を fucc で軽く書いてみた。 (fucc:defparser *g1* s (+ - * / = :semicolon :id :const #\( #\)) ((s -> expr = :semicolon ) (expr -> expr + term -> term) (term -> term * fact -> fact) (fact -> #\( expr #\) ->…

道具と人間

そういえばイチローが道具を変えない理由を”人間が道具に合わせる必要がある。道具のせいにしないために道具を変えない”なんていっていたけど。職人になると”道具を選ぶ”んじゃなくて”道具に合わせる”んだなぁ〜と深く感心した。今後はラケットのせいにする…

fucc と LL(1) と SICP

fucc で LL(1) の構文解析が出来るようになった。今後は LL と LR の違いをじっくり堪能することになるだろう。最近の時代の流れは LL のようだ。さて、lisper にとって LL とか LR とかって意味があるのだろうか?Lisp ではプログラマ自身が構文解析をして…

Eclipse デプロイできた

どうやら単純ミスだったようで、自分のプラグインを作ってデプロイすることができた。当初は jee でしか動かないのかと思ったが、ちゃんと Java の標準開発環境でも動いた。なんだかね〜〜。Externalize Strings Wizard を使うと国際化もあるていどやってく…

fucc で LL(1)

fucc の作者にメールを出したらちゃんと答えが返ってきた。fucc のサンプルももらった。 #-:fucc-generator (asdf:operate 'asdf:load-op :fucc-generator) #-:fucc-parser (asdf:operate 'asdf:load-op :fucc-parser) (in-package :fucc-generator) (defun …