プログラミング

Zynq-Qemu上で動作するARMコードを書いてみた

ZynqLinuxとかToppers/FMPとかに頼らずに、ZynqQemu上でシリアル通信に文字を出力するプログラムを書いてみた。 要は、プログラム開始後すぐにシリアルデバイスを初期化して出力するだけのプログラム。以下、プログラムの主要部分。 xuartps_initとかxuartps…

TOPPERS/FMPをQEMUのZynq(ZedBoard)向けにビルド・実行してみた(解決編)

こちらの http://www.toppers.jp/fmp-kernel.html Toppers/FMPカーネルをZynq(ZedBoard)をエミュレートしているQEMU上で動作させる。 FMPカーネル「Zedboard 簡易パッケージ 」のやつです。 ビルド・実行はUbuntu-11.10 32bit上で行った。Toppers/FMPは、ASP…

アセンブラコード ←→ エルフ形式 ←→ バイナリ ←→ 逆アセンブラ 相互変換

-アセンブラコードをエルフ形式へ arm-none-eabi-as hello.S -エルフ形式からバイナリへ arm-none-eabi-objcopy -O binary a.out hello.bin -バイナリからディスアセンブル arm-none-eabi-objdump -b binary -m arm -D hello.bin -エルフ形式をディスアセン…

Open vSwitchを導入してみる

OBDNマガジン: 小野秀貴: Open vSwitch によるOpenFlow の利用 http://obdnmagazine.blogspot.jp/2012/03/open-vswitch-openflow.htmlOpenv switchの使い方とか http://www.slideshare.net/kotto_hihihi/openv-switch

U-Bootのソースを読んでみる(1)

CPUはarmv7アーキテクチャのブートコードを読んでみる。始まりは arch/cpu/armv7/start.S からっぽい。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1237585277[arch/cpu/armv7/start.S] 38 .globl _start 39 _start: b reset 40 ldr pc, _un…

Linuxのバイナリ(Hex)エディタ

ghex http://linuxsalad.blogspot.jp/2007/08/ghex.html

組み込み

http://www.uquest.co.jp/embedded/learning/lecture.html

U-Bootのソースを読んでみる(3)

printf編[common/console.c] 413 int printf(const char *fmt, ...) 414 { 415 va_list args; 416 uint i; 417 char printbuffer[CONFIG_SYS_PBSIZE]; 418 419 #ifndef CONFIG_PRE_CONSOLE_BUFFER 420 if (!gd->have_console) 421 return 0; 422 #endif 423 …

U-Bootのソースを読んでみる(2)

[arch/arm/lib/board.c] 261 void board_init_f(ulong bootflag) 262 { ... 294 for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { 295 if ((*init_fnc_ptr)() != 0) { 296 hang (); 297 } 298 } ...init_sequenceは以下の定義。 227 in…

TOPPERS/FMPをZynqで実行できるようビルド on Fedora 17 64bit

TOPPERS/FMPの「KZM-CA9-01(京都マイクロコンピュータ)簡易パッケージ 」(ARM-CoretexA9向け)をビルドしてみる。 http://www.toppers.jp/fmp-e-download.htmlfmp/doc/user.txtにはビルド手順が書いてなかったので、ASPをダウンロードしてuser.txtの「3.…

tmuxの使い方

tmuxに慣れるためにまず最初に覚えるべきキーバインド - よんちゅBlog http://yonchu.hatenablog.com/entry/20120509/1336587523

zynqエミュレートのQEMUでu-bootを動かす

参考1を見ながら、zynqエミューレートのqemuのソースをダウンロード&ビルド。 参考2から、zynq用のツールチェーン(コンパイラとか一式)をインストール。 u-bootのソースを落としてきて、READMEの"Building the Software"の項を参考に make zynq_config …

vimで複数行の削除・コピペ・置換

viを使うなら覚えておきたい複数行の削除・コピペ・置換 - いろいろ解析日記 http://d.hatena.ne.jp/nattou_curry_2/20090915/1253022774

カーネルモジュールの作成

カーネルモジュールの作成 http://uguisu.skr.jp/algo/device.html

ARM(zynq)の開発環境(?)

・Xilinxが配布しているGNU tools(クロスコンパイラとか一式) Fedora17 64bitだったので、 https://sourcery.mentor.com/GNUToolchain/kbentry62 を見て、32bitライブラリをインストールした。 http://wiki.xilinx.com/zynq-tools・zynqのqemuエミュレータ…

loopbackデバイスの役割

同じマシン上のプロセス同士が通信するときに使われる。 これ、使えそう。

送受信キュー

構造体net_deviceの struct Qdisc *qdisc; あたりを利用できそう?それとも 構造体softnet_data のあたり?

FreeRTOS on ARM Cortex-A9 on qemu-kvm

qemu 仮想ボード ARM Cortex-A9 マルチコアで Linux を動かす — Gist https://gist.github.com/1223553

FreeRTOS 面白そう!

FreeRTOS http://www.freertos.org/

QEMU-KVMの内部のタイマー

qemu-kvm-1.2.0[qemu-timer.h qemu-timer.c] 新しいタイマーを生成 static inline QEMUTimer *qemu_new_timer_ns(QEMUClock *clock, QEMUTimerCB *cb, void *opaque)タイマーをセットする? void qemu_mod_timer_ns(QEMUTimer *ts, int64_t expire_time); 使…

時刻取得関数の詳細

時刻と時間の管理 http://www.coins.tsukuba.ac.jp/~yas/coins/os2-2009/2010-02-23/index.html 時刻取得関数 http://www2.nict.go.jp/aeri/sts/tsp/research/labo3/gettime.html

面白そうなサイト

Practical Scheme http://practical-scheme.net/index-j.html

面白いスライド:オブジェクト指向について

オブジェクト指向できていますか? http://www.slideshare.net/MoriharuOhzu/ss-14083300

面白いブログ

文章(というかユーモア?)のセンスが好きDQNEO起業日記 http://dqn.sakusakutto.jp/

VMM

BitVisor

FX:ヒストリカルデータ&MetaTrader4

ヒストリカルデータ - マーケット情報 - マネースクウェア・ジャパン http://www.m2j.co.jp/market/historical.phpForex Trading Platform MetaTrader 4 http://www.metatrader4.com/

JQueryMobile

JQueryMobile本家のページ。ドラッグアンドドロップでUIが出来ちゃうツールがトップページにいきなりある。これは便利だ。これだけでUIが完成しちゃいそう。http://jquerymobile.com/

Perl & Twitter API

【CGI・Perl】Twitterのステータスを更新する http://katsubemakito.net/cgiperl/cgi/cat150/nettwitter/twitter-nettwitter.htmlNet::Twitter - search.cpan.org http://search.cpan.org/~mmims/Net-Twitter-3.18003/lib/Net/Twitter.podThe CPAN Search Si…

StackOverflow

Linuxのコード見てて困ったらここを読むといいらしい。 どんなマニアックなことでも一つくらいヒットするのがあるらしい。http://stackoverflow.com/

RDTSC命令で64bitの値を取得

LinuxKernelのinclude/asm-x86_64/msr.hより カーネルのバージョンは2.6.17です。#define rdtscll(val) do { \ unsigned int __a,__d; \ asm volatile("rdtsc" : "=a" (__a), "=d" (__d)); \ (val) = ((unsigned long)__a) | (((unsigned long)__d) } while(…