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

ARM:LDRのアドレッシング・シフタ付きレジスタ

"シフタ付きレジスタ LDR R0,[R1,R2,LSL #2]のように書きます。 これが最も曲者です。この例ならば、R2を左に2ビットシフト(4倍)してR1に加えたものがアドレスとなります。"腕の中のARM - ARM in arms - http://homepage2.nifty.com/sampodo/craft/arm…

デバックプリント(DebugPrint)のマクロ

#define PRINTD(fmt, ...) printf(fmt, __VA_ARGS__)職業としてのプログラミング 可変個引数マクロを使う http://proger.blog10.fc2.com/blog-entry-33.html --- 2013/01/10 追記 --- __VA_ARGS__がひとつも無い時にコンパイルエラーになってしまう対策とし…

Linuxカーネル中のtrace_*系関数の定義場所

trace_net_dev_xmitとかtrace_net_dev_queueとか、trace_???系の関数はソースコードをgrepしても定義が見つからない。 と思ったら、include/trace/eventsあたりにマクロで定義されていた。 ftraceで使うみたい。

LinuxからWindowsにリモートデスクトップする

linuxでリモートデスクトップ http://blog.asial.co.jp/509

QEMUでARMエミュレート&実行

arm-linux-gnu-gcc -c -mcpu=cortex-m3 -mthumb start.S arm-linux-gnu-objcopy -O binary start.o start.bin qemu-system-arm -cpu cortex-m3 -kernel start.bin -monitor telnet::4444,server,nowait

Cortex-M3のバイナリの逆アセンブル

Thumb命令です。 arm-linux-gnu-objdump -b binary -m arm -M force-thumb -D start.binELF形式からだと確実っぽい arm-linux-gnu-objdump -d start.o

ARM開発環境

Linux に GNU ARM ツールチェーンをインストールする http://www.ibm.com/developerworks/jp/linux/library/l-arm-toolchain/

TopコマンドTips

topコマンドでマルチコアなCPUの状況を確認する http://d.hatena.ne.jp/rx7/20080802/p3topコマンドの使い方・見方 | Linuxで自宅サーバ構築 http://linuxserver.jp/Linux/top%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89.php

スタートアップルーチンからフルスクラッチでHLWを出力する

組込み技術者向け「初めてのC言語」 http://www.ertl.jp/~takayuki/readings/c/index.html

manより"info"の方がたくさん情報を見つけられる

infoだと・・・ info gcc info ls etc...http://www.ertl.jp/~takayuki/readings/c/no04.html

スタートアップルーチン

http://monoist.atmarkit.co.jp/mn/articles/0612/19/news098.html

Linuxでパケットフィルタリング、QoSとか

パケット・フィルタリングとQoS機能 http://itpro.nikkeibp.co.jp/article/COLUMN/20080520/303192/[iptables] 192.168.11.1向けのTCPパケットのDSCP値を1に設定 iptables -A OUTPUT -t mangle -p tcp -d 192.168.11.1 -j DSCP --set-dscp 1

セクションとか.textとか

http://www.ertl.jp/~takayuki/readings/info/no02.html

QEMUモニターの機能メモその1

◎メモリダンプ(命令列変換!) xp/[ダンプ数][形式][サイズ] メモリアドレス xp:コマンド名 ダンプ数:10とか適当に 形式:x=16進,o,d,u,c, "i=アセンブラ命令" サイズ:b(8bit),h(16bit),w(32bit),g(64bit) 例:xp/40xb 0x10000 00010000: 0xd3 0xf0 0x2f 0x…

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

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

PC用のスピーカー

PC

小さくても置きやすいし、結構いい音も出る、みたい。http://www.amazon.co.jp/gp/bestsellers/computers/2151999051/ref=zg_bs_nav_computers_1_computers

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 -エルフ形式をディスアセン…

Linux上でのDiffServの実装方法

tc(traffic control)のDSMARKを使う http://www.lartc.org/howto/lartc.adv-qdisc.dsmark.htmltcのフィルターの使い方例 http://linuxjf.sourceforge.jp/JFdocs/Adv-Routing-HOWTO/lartc.qdisc.filters.html

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

PCIバスデバイスの情報を表示するコマンド

lspciイーサネットデバイスやHDDなどのデバイスの情報がわかる。yum pciutils でインストールできる

LinuxのGUI版diffツール

Meld http://meldmerge.org/

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 …