組み込み

armadillo500が欲しい

うーん、何気に自分の触ったボードのなかで、一番いじってるんだよな。欲しい。定点カメラにもできるし。マイコンつなげて自宅の温度と湿度さらに定点カメラデバイスにするのもおもしろいな。さらに言えば、遠隔地から操作できるミニ台車にも簡単にできるし…

armadillo220でuvc

できるかなと思ったけどカーネルソースにlinux/usb/input.hがなくて失敗。 /usr/arm-lnux-gnu/include/linux/usb/input.hを持ってきておいてみたけどやっぱだめだった。armadillo500だと普通にコンパイルとおるんだけどな。

i.MX31でカメラ

そういえばKMCのボードはできたんだっけ? まえ,ETの時にatmarkの人に聞いたけど近々リリース予定とか聞いた。 うーん、どうなんだろ? カラーカメラ 1/4インチ26万画素CCD ITU−656出力付 MTV−54K0DN: カメラ 秋月電子通商 電子部品 ネ…

メモリマップ

ROM起動(リマップなし)でいくならRAMは下からBSSセクション、DATAセクションんで上から例外スタック、ユーザースタックか?

アセンブリ言語

アセンブラの良い本はないもんかな? といっても自分がみたいのはARM いまいちアセンブラの書き方がわからん。 疑似命令とか、おきまりごととかがよくわからん。

debootstrapで作ったethcでもarm-linux-gnu-gccになってた

なんでかしらんがarmのクロスコンパイラがarm-linux-gccじゃなくてarm-linux-gnu-gccになってるんだけどこれはなんで? atmarkが出してるdebをそのまま入れてるだけなんだけどなぁ。 取り合えず下の方法で回避 クロスコンパイルの実行ファイル名が違うとき - …

無線USBドライバ

結構ほっとくと切れるけど、切れた後はつながらない。 とりあえず一回ifconfig downで落とした後につなげて設定すると BUG: scheduling while atomic: rt73/0x00000001/2586 こんなメッセージが出てる。 とりあえず再起動すれば良いんだけど。 微妙・・・。

armadillo開発環境構築

大まかに次の流れ wget -r -A deb http://armadillo.atmark-techno.com/filebrowser/armadillo-220/cross-dev/deb wget -r -A deb http://armadillo.atmark-techno.com/filebrowser/debian/etch dpkg -i *.deb 多分依存関係でインストールできないのがあるの…

クロスコンパイルの実行ファイル名が違うとき

armのコンパイルがarm-linux-gccじゃなくてarm-linux-gnu-gccなので、取り合えずarmark-distないのvendors/config/arm/config.archの中の60行あたりをarm-linux-をarm-linux-gnu-に変更して、同じatmark-distないのvendors/AtmarkTechno/Armadillo-220.Base…

lennyのarmadillo開発環境2

うーん、今度はlinux-kernel-headers-arm-crossでひっかかる。次のようなエラー debian:/home/ippei/cross_build/A220/deb# dpkg -i linux-kernel-headers-arm-cross_2.6.18-7_all.deb (データベースを読み込んでいます ... 現在 140323 個のファイルとディ…

lennyでのarmadillo開発環境の問題

gccバージョンの違いで弾かれるのか? lennyはgcc-4.1-baseが4.1.2-25何だけど。etchでは4.1.1-21なんだよね。 んで多分それで下のエラーが出てる。 debian:/home/ippei/cross_build/A220/deb/instlled# dpkg -i libssp0-arm-cross_4.1.1-21_all.deb (データ…

FIQ考察

最速でFIQをやりたい場合は次のような記述か? __vectors: LDR PC,RST_addr /*リセット*/ LDR PC,UNDEFINED_addr /*Undefined Instruction:未定義命令*/ LDR PC,SWI_addr /*ソフトウェア割り込み*/ LDR PC,PreAbort_addr /*Prefetch Abort:命令のプリフェッチ…

arm-none-eabiでクロス環境

あまりにarm-elfの環境ができないので、arm-none-eabiのほうでためす。 とりあえず、普通のファームレベルならこまることないしな。 よるねてかけたら通ってたっぽい。 よし多分通った。あとは試しにコンパイルしてみる。 ちなみにバージョンはgcc4.3.3,newl…

rt73のUSB無線LANの使い方がアップされた。

Armadillo-500 FXでUSB無線LANモジュールを使う | 組み込みLinuxのArmadilloサイト こないだ自分がやったやり方であってたらしい。 armadillo500でrt73 - ippeiの日記

多重割り込み対応

とりあえずwinarmのソースを読むと仕組みはなんとなくわかった。 まず開始時 割り込みベクタより割り込みの前処理にジャンプ lrを待避後r0も待避 CPSR(状態レジスタ)をR14にロードしてスタックへ待避 VICにセットされた処理の先頭アドレスをr0にロード スー…

多重割り込み対応

うーん。多重割り込みは最低でもほしい。 とりあえず高速割り込み、多重割り込みは最低限対応がもくひょうかな。 まぁ、暇を見つけて、かきはじめる。多重割り込みについてはWINARMのソースが対応してるみたいだしな。FIQは、多重割り込みは対応させないつも…

Roboshellの割り込み

__attribute__ ((interrupt ("IRQ"))) はつかってないのでどうしてるかと思ったら、 #define ISR_ENTRY() asm volatile(" sub lr, lr,#4\n" \ " stmfd sp!,{r0-r12,lr}\n" \ " mrs r1, spsr\n" \ " stmfd sp!,{r1}") とかを定義してるのか。 単純にリンクア…

FIQの最速処理

ベクタテーブル最後にあるFIQを最高速で処理するには、要因をひとつにして、ベクタテーブルの最後のアドレスから処理を開始すればいいが、その時に制約が出てくる。まずコードサイズ、ベクタテーブルのジャンプテーブルをしてる場合にジャンプできる幅も決ま…

EABI

そういえばarm-none-eabi-gccのeabiって何じゃそらと思い検索。 ARM gcc ¥Ð¥Ã¥É¥Î¥¦¥Ï¥¦½¸: EABI ¤È legacy ABI どうやらARMの新しいABIらしい。 要はeabiをつかわないでgccコンパイルすると言うことか。」 間違えたー! arm-none-eabi-gccはOSなし、eabiとい…

統合開発環境じゃなくてもいいか

ARM開発環境どうするか。考え中だが、もういっそのことInsightでのデバッグでもいいかという後ろ向きな発想が出てくる。正直なところcygwinの導入なので気が進まないのでそれならlinux上で作った方がいいかという気にもなる。 正直な所eclipseの環境は統合開…

KONDO シリアルUSBアダプターをlinuxで使う

とりあえずソースのftdi_sio.cの500行あたりにある //前略 { USB_DEVICE(FTDI_VID, FTDI_RRCIRKITS_LOCOBUFFER_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ASK_RDR400_PID) }, { USB_DEVICE(ICOM_ID1_VID, ICOM_ID1_PID) }, { USB_DEVICE(PAPOUCH_VID, PAPOUCH_TM…

リードができない

なので、シリアルUSBアダプタのドライバをarmadillo500に入れることにした。 というかベンダーIDとプロダクトIDをついかするだけ。だと思う。 うーくだらないことに時間つかってて悔しい。 ライトも毎回確実にできないのもなんかRCB3自体がコマンド間を17mse…

rt73その後

うーん、結局今使ってるのはid:odawaraさんのところで紹介されてる。 rt73 GW-US54Mini2をLinuxで使う - odawaraの「はてな de メモ」 の方だけど、ほっておくとたまに無線が解除されていることがある。 といってもこないだやったarmadillo500でrt73 - ippei…

ARMリンカの謎のセクション

ARMのリンカスクリプトを見てると.glue_7と.glue_7tというよくわからないセクションがあるけど。調べてもあまり情報がでない。objdumpで見てもmain.oとかスタートアップのオブジェクトファイルにもそんなセクションは見あたらない。 olimexのリンカスクリプ…

割り込みのCでの実装

とりあえずgnu-armのマニュアルを探してたら見つかった。 void f () __attribute__ ((interrupt ("IRQ"))); という形みたい。 ただ、昨日見つけたサンプルプログラムだと↓の用になってる // #define __irq __attribute__ ((interrupt("IRQ"))) // #define __…

VIC

どうやらVICというのがLPC系のARMでは割り込みの鍵を握ってるみたい。見た感じだとVICは16個のアドレスが保持できてそこに割り込み処理の先頭アドレスを入れてやってるみたい。後は割り込み要求が入ればVICが勝手に処理してくれて割り込みのハンドラに飛ばし…

ARMのスタートアッププログラム

とりあえず割り込みにも対応したスタートアッププログラム類を探してたら gcc-Port of the LPC2000 Example Code Bundle (LPC213x/LPC214x) を見つける。 とりあえず.ifをつかって、いろいろと対応してるコードなので、少しずつ読んでいる。 とりあえずこれ…

armadillo500で起動時にスクリプトおよびコマンドを呼ぶ

とりあえず、ユーザーランドはSD上のdebianで /etc/init.d/rcを編集かな?

armadillo 500microSDでユーザーランド

にした方がやっぱ楽かなぁ。 iwconfigの設定とか最初にUSB無線LANの接続をして、SSHログインするとすれば、その方が楽だよな。追記 ユーザーランドをマイクロSDにしたらすでに起動したときにドライバが組み込まれてた。 それって起動スクリプトに記述してた…

armのベクタ

IRQが4バイトしかないってなんか変わってる気がするけど、armはその方がつごう良いということにきづく