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

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

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

Yocto に関するメモ

Linux Kernel において .config がどのようにつくられるか?Yocto は特殊なことをしているようだ。Yocto 的には普通みたいだけど。Linux の Kernel を構築するときよく使われる手法は次みたいな感じ。 make ARCH=arm xilinx_zynq_defconfig昔は「make の使い…

sigboost のために DAC 購入

zynq + DAC できますかね?これで。 たとえば、Perfume の右チャンネルだけとりだしてフィルターかけて、リズム取り出すとかね。それにクオンタイズするように MIDI を再生するとか。妄想だけど。

sigboost で go!

MAX が生成したスクリプト(というのかどうかしらない)を高位合成して Zynq の FPGA に展開して MIDI の楽器、あるいはエフェクターになるという素晴らしい製品の sigboost 。 音楽は私の専門じゃなくてわからないけど、これは面白い。 とりあえず、今の、Kis…

Polyphony : Python によるコンパイラ

GitHub - ktok07b6/polyphony: Polyphony is Python based High-Level Synthesis compiler.とりあえず本家から fork してみる。っていうか、本家って言っても隣で K 君が開発してるんだけどね。なにやら SSA Book なるものを読んでいて、開発の時なんだかす…

Min Caml コンパイラ その4

一向に Min Caml にたどり着かない。 今日は予備知識The Essence of Compiling with Continuations https://slang.soe.ucsc.edu/cormac/papers/pldi93.pdf何やら有益なことが書いてあるらしい。どういうわけか、誰かが(大和谷さんという人)が和訳していた…

Zybo で Jupyter + PYNQ のソース を動かす。

Zybo でも PYNQ で採用しているシステムが動いた。gpio と HDMI_OUT はできた。HDMI_IN は出来なかった。環境が悪いのか、どっかでしくじったのかは不明。以下、作業備忘録 PYNQ の base.tcl から Vivado で合成(この時点では PYNQ のシステム) デザインか…

Min Caml コンパイラ その3

引き続き、コンパイラの社内研究会開催。ざっくりと概要は読み終わった。K 正規化とα変換で SSA と同等なことが達成ているのではないかと。A 正規化はインラインが楽。でもインラインしないなら、結局 K 正規化しないといけなさそう。HLS ではクロージャ変換…

PYNQ のデザインを合成してみた

2016.1 ようだったが、無理やり 2016.2 に変えて合成してみた。結構時間がかかると思ったら、単純なデザインではなかった。その上、なぜかタイミングエラーですが。気にせず、先に進みます。右下には audio や iop1 iop2 io3 というブロックがあります。iop …

Min Caml コンパイラ その2

速攻MinCamlコンパイラ概説 をみればいいだけだったりして。ML の解説まで書いてある。 あと OCaml の参考書としては「プログラミング in OCaml」という本を読んでいる。Kindle版はあるが、紙の本の方は絶版だ。いい本だけに残念。「MinCamlはMLのサブセット…

Kiss4 の環境作り

Kiss4 という Zynq のボードのために、環境作り。Yocto で環境を作っている。krogoth という branch を使用。 poky meta-xilinx meta-openembedded と zybo からぱくった meta-kiss4 まちがえて meta-openembedded の branch を master にしたら、 python-db…

Mini Caml コンパイラ その1

github.comここにある pdf をみながら、社内でコンパイラ(型推論)の勉強会を開く。 http://esumii.github.io/min-caml/jpaper.pdf いま、見たら tutorial-minicaml.doc なんてのがあった。最初から躓くよね。「単相性」ってなによ。K くんの指摘で「多相型が…

Docker + WordPress 試してみた

Docker を試してみた。FreeBSD の jail みたいなものと理解している。というより、技術的なものは一切理解せずに使っている。 Docker のインストール qiita.com この辺のを見てインストールした。単に Docker からシェルプロを wget して(記事の中では curl …

vivado の dbg_hub ではまったのでメモ

Vivado で波形を見ようと mark debug したときにはまったのでそのメモ。やろうとしたことは AXI Stream の波形を見ようとしていた。AXI Stream のクロックは Zynq から供給される。なので、そのクロックに合わせて Setup Debug を設定した。しかし、bit stre…

SSLv3 のエラーだが apache.conf で解決

SSL を導入して通常のブラウザからはうまく https が見えるのだが、Smart HTTP(git-http-backend) 経由で Eclipse から import しようとするとエラーが出る。 [Wed Jul 06 15:01:32.119075 2016] [ssl:info] [pid 11614] [client 192.xxx.xxx.xxx:63694] AH0…

g++ あやまったリンクをした際の残骸

あやまったリンクをした際の残骸 記録として残してある。 reent.c void *_impure_ptr; newlib のリエントラントな構造を保持するための大域変数。 newlib 内の実装に必要。 libstdc++ を --use-newlib でコンパイルすると、exception の unwind に この変数…

C++ を embedded な環境でつかう

結局、素の C++ を使うのがベスト。うっかりすると素ではなくていろんなものに依存するので注意。たとえば arm-xilinx-linux-gnueabi-gcc/g++ これは当然、Linux 環境に依存する。だから単純に printf とかすると Linux の /usr/include/stdio.h の printf …

ARM の EABI とか newlib とか

あまりまとまっていないけど最近の成果をメモ。わすれちゃうからね。Xilinx の SDK 用の gcc。gdb だけ再コンパイルしようとしたけどだめだった。もう全部コンパイルしないといけないみたい。結構めんどくさい。とはいえ、シェルプロがあるようなのでそれを…

usb_modeswitch と FS01BU

FS01BU は普通に USB Host につなぐと 1c9e:98ff で Mass Storage と認識される。usb-modeswitch を使うとモードを変えることが出来る。usb_modeswitch の本家からusb-modeswitch-data をとってくると 1c9e:98ff のデータがある。それを使う。 > usb_modeswi…

メモ:DNS の設定で警告

権威DNSサーバーの設定不備による情報流出の危険性と設定の再確認について(2016年1月12日公開) jprs.jp から警告を受けたのでoptions に allow-transfer を追加 allow-transfer { 192.168.0.XX; };セカンダリだけにトランスファをするのが正しいらしい。

FS01BUからSIMカードが外せなかった、、、

検索すると FS01BUからSIMカードが外せなかったので、分解して取り出す – まつぼ x Web がひかかった。ここまでわかれば分解しなくても外せそう。ということで、ノートを切って隙間に差し込むと nanosim のひっかかりがなくなり、ちゃんと外せました。分解し…

CPS のメモ

CPS で APPLY が出てくることろで、割り込みをチェックして、割り込みルーチンに飛ばす。そして、その中でレジスタの切り替えとコンテキストの切り替えをすれば、VM 上でうまくマルチタスクが出来そう。割り込み性能が落ちる。がそれはそれ、そもそも VM で …

vm と割り込み

VM をつくっているひとは割り込みについてどう実装しているのだろう?実際の CPU の動きは割り込みがあがると別のアドレスにジャンプしたりするわけだが、VM ではどう実装すればよいのだ?単純にはどっかのフラグを"毎回"見て必要があればジャンプすればよい…

vivado で突然ダウンロードケーブル経由の作業が出来なくなる

なんかの拍子に Vivado で Platform Cable USB II 経由で作業が出来なくなった。SDK もだめ。最初の理由はわからない。単純にケーブルの抜き差しか電源の off/on で大丈夫だったのかもしれない。 落ち着いて対処すればよかったのだが、慌てていろんなことを…

とりあえず hvm が Zynq で動く

おれおれ VM (gforth の vmgen でつくった) と、おれおれ Lisp コンパイラ、Zynq へもっていっても動いた。Linux だから当たり前か。 zynq> chmod +x ./hvm zynq> ./hvm Usage:hvm <vmb file> zynq> ls codes hvm zynq> ./hvm codes/test-00 test-001.vmb test-003.vmb</vmb>…

コンパイラの勉強会に向けて

コンパイラの勉強会(じゃないかもしれないけど、本人はそう思っている)にむけて駄文を重ねる。 CPS CPS は「Compiling with Continuations」という本に詳しい。Kindle の本もある。これが、1992 年の本。ML を使っている。なんで ML なんだ~と一瞬思うが…

u-boot で外部の elf を実行する

fatls で確認 zynq-uboot> fatls mmc 0:1 40687 hello_worldfatload で使ってなさそうなアドレスへロード zynq-uboot> fatload mmc 0:1 0x3000000 hello_world reading hello_world 40687 bytes read in 21 ms (1.8 MiB/s)bootelf で実行 zynq-uboot> bootel…

FS01BU

FS01BU と soracom の SIM を購入した。FS01BU はどうやら最初の設定では Disk に見えるみたいだ。おそらく、なんらかの設定をすると(Windows とかでインストールしたりすると)、モードが切り替わって Serial になるみたい。きっと、一度 Serial になったら…

EHCI で Get Descriptor

とりあえず達成。 Zynq で USB Host で EHCI で GetDescriptor できた。 基本的には u-boot に書いてあるそのままを実行した。ソースはというと、、、、 uint32_t *qTD_Setup_Data = &qTD_Setup[1024]; qTD_Setup[0] = (uint32_t)qTD_Setup_Data; qTD_Setup[…

Linux の EHCI のソースを読む

結局 EHCI を学ぶのに一番良いのは Linux のソースであることが判明した。あと参考資料としては USB コンプリートが結局一番。次に2014年のInteface 12月号の USB 探偵団。 ただし、USB 探偵団は記述が口語的。制御命令と書いてあるが、USB コンプリート(2.0…

USB と EHCI

EHCI の日本語資料が少ない。Intel の資料を見れば英語だけどだいたいわかるか。出版されている本ではなかなかそもそも USB の概略がわからない。一番良い資料は インタフェースの 2014 年の 12 月号の「USB 探偵団」なるものがわかりやすい。世の中で EHCI …