xv6-mipsリンカスクリプトとentry

xv6

リンカスクリプトの OUTPUT_FORMAT("elf32-tradlittlemips", "elf32-tradlittlemips", "elf32-tradlittlemips") OUTPUT_ARCH(mips) ENTRY(_start) この _start はentry.Sに定義されている。 # By convention, the _start symbol specifies the ELF entry poi…

xv6のI/O, PIC, IRQ, uart

xv6

プロセッサ側とポートを合わせなきゃいけないものと、kernel(ソフト側)で好き勝手に決めればいいものの境界線を探っている。xv6-mipsで定義している mips.h static int io_port_base = 0xb4000000; これはなぜこのアドレスなのかわからない。inb outb で u…

(xv6)kernelmemfsとmemide.o

memide.o Fake IDE disk; stores blocks in memory. Useful for running kernel without scratch disk. とあるとおり、Makefileでkernelをビルドする際にこいつを差し替えてる感じ。GAIAのをみるとわかるように実機で動かす場合はちょっと面倒な処理が必要か…

MIPS HardwareにおけるKSEG0, 1, 2のアドレス変換とTLB

KSEG0, 1におけるマッピングはハードとkernelがどう連携しているのか調査した。結論としては、ハード側でTLBにVirtualAddressを渡す前にチェック 例1) pc(virtual address)の上位2 or 3bitが 100 : KSEG0 (2.0G - 2.5G) 101 : KSEG1 (2.5G - 3.0G) 11 : K…

GAIAとxv6におけるbootloader

SRAM GAIAで使ってる基盤は4MB(222)のSRAMを積んでる。 rom.vhd は実際には sram.vhd をラップしてるに過ぎず、いわゆるDRAMは一切使用していない。(BlockRamというのもSRAMの一種らしい?) sram.vhdの中では、入ってきたアドレスの上位10bitは見ておらず…

xv6のbootloader

xv6_translate/chapter1.md at master · msyksphinz/xv6_translate · GitHub original UNIX v6 ROMに保存されているブートストラップローダプログラムが、ルートディスクのブロック番号0にあるブートストラッププログラムをメモリのアドレス0に読み込んで…

Program Memoryの書き換え

そもそもどのタイミングでプログラムがロードされるのか(xv6カーネルから) そして、Data MemoryとProgram Memoryをどうやって区別しているのか(See Mips Run) See MIPS Run - Dominic Sweetman - Google ブックス D-Cacheにまずプログラムが読み込まれて…

-Makefile編- xv6 (mips) コードリーディング

QEMUで実行できる形に最適化されているので、実機(FPGA)で動作させる場合はコードの手直しが必要かもしれない。 xv6.img, fs.img QEMUで実行する際に qemu-nox: fs.img xv6.img $(QEMU) -nographic $(QEMUOPTS) となるが、これは下記のようなコマンドとし…

TODO

JTAG-UARTってDE10-Lite+MIPS+xv6で使えるのか。使えなかったらシリアルポート付きFPGAを購入する必要あり? http://blog.goo.ne.jp/sim00/e/236d685cc29873571051270075449cac Nios II/eでHello, world! (Quartus IIとQsys) - FPGAがさっぱり分からない…

XV6の入出力

inb, outb ◆入出力の方法 CPU が持つ入出力命令を使うもの。 どのデバイスをアクセスするかは、ポート番号で指定する。 通常のメモリアクセスの命令を使うもの(memory mapped I/O)。 どのデバイスをアクセスするかは、番地で指定する。 x86ではポートマップ…

WIP ハードウェア資源は足りる?

MIPS/LinuxがDE-10 Liteで動くかという問題 出力: VGA, 2*20GPIO(SerialPortがないけど大丈夫?...MIPS/Linuxって標準でどこへ出力すんの?) メモリ: 1,638 Kbit M9K Memory 5,888 Kbits user flash memory(こっちにブートローダとかカーネルイメージ…

MIPSアーキテクチャ上にLinuxを初期インストールするには「ブートローダ」が重要

とりあえず、既存のMIPS CPUリポジトリを使ってFPGA実機でLinux動作させようと思ったが... Q. そもそも、LinuxカーネルイメージをFPGA(上のMIPS CPU)に転送しても、どうやって起動(or インストール)するのだろう? A1. ブートローダが鍵になるっぽい。 x…

LinuxディスクイメージをどうやってFPGAに焼くんだろう?

stackoverflow.com

linux コンソール周り

blog.ginbear.com

yaccとlex(コンパイラ)

プログラミング言語を作る/yaccとlex 言語処理系とは http://www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/comp2002/1/lecture1.pdf Bison - Wikipedia

機械学習(サポートベクターマシン)でBitcoin相場を予測する

scikit-learnを使って勉強中 github.com

ライティングで影が汚い場合の対処法

answers.unity3d.com FBXの設定でGenerate Lightmap UVsにチェックを入れよう

UI設計

developers.cyberagent.co.jp

ポストプロセスもりもり on Nexus6p

ブルーム、SSAO、被写界深度を持ったコーネルボックス 描画領域を720pにしてぎりぎり30fps出るかどうか。

cookpadログ解析

speakerdeck.com

要素のソート

画像ソートとかに使える github.com github.com 検索クエリ javascript drag and drop sort

video / audio recording with browser API

github.com なるものがあるが、内部で RecordRTC というライブラリに依存しており、それがsafariをサポートしていない。ChromeとFireFoxのみのサポートだ。 Video Not working in safari · Issue #56 · muaz-khan/RecordRTC · GitHub ブラウザ内で動画撮影さ…

video play, Video upload, 360 photo

github.com github.com github.com HLS Http Live Streaming。つまり、くそでかい動画ファイルをちょっとずつクライアントに垂れ流すストリーミング配信がHTTPプロトコルで実現できる技術。必要に応じて使ったほうがいいかも。 dev.classmethod.jp

Facebook User AccessTokenの有効期限は2種類

developers.facebook.com ウェブ上のアクセストークンの寿命は、多くの場合、約2時間ですが、必要に応じて自動的に更新されます。特にサーバー側でより長期的なウェブアプリ用のアクセストークンを使用する必要がある場合、長期トークンを生成する必要があり…

dump exportとimport

mysqldump Export ↓ レコード削除 ↓ Alterテーブルでカラム追加する ↓ Import エラーなくImportできた。 # Export docker exec -i docker_mariadb_1 mysqldump -uroot <DB Name> > ./01221441.sql # Import docker exec -i docker_mariadb_1 mysql -uroot <DB Name> < ./012214</db></db>…

docker nginxでcontainer --> hostへプロキシしたい

前提 docker-composeを使う nginxはコンテナを使う host(mac)上でNodejsサーバが動いている browser --> nginx --> nodejs という通信を実現したい 課題1 Nginx側でプロキシする先のIPがわからない。具体的には proxy_passで設定するIPのこと host側で if…

vuexざっとみ

Vue.jsのFluxフレームワークたるvuexのドキュメント。 非同期Actionをどう扱うかフレームワーク内で明記している https://vuex.vuejs.org/ja/actions.html

2017Advent Calenderベースやりたいこと

読む Serverless Advent Calendar 2016 - Qiita Groonga Advent Calendar 2016 - Qiita 一人トランザクション技術 Advent Calendar 2016 - Qiita Ansible Advent Calendar 2016 - Qiita 書く

google-map-reactの使い方とoptions

What's this シンプルで使いやすいGoogle Maps APIのreact向けwrapper GitHub - istarkov/google-map-react: universal google map react component, allows render react components on the google map maps options Google Maps JavaScript API V3 Referen…

fetch markers with AJAX (dynamic loading markers)

Map MarkerはJavaScript API。住所 <--> 緯度経度変換はGeocoding API。経路検索はDirections API or distance matrix API Airbnb 南西と北東の座標値をサーバに送信している。これでfetchすべき四角形がわかるので、サーバ側でDBから検索するイメージ https…