組み込み
うーん、何気に自分の触ったボードのなかで、一番いじってるんだよな。欲しい。定点カメラにもできるし。マイコンつなげて自宅の温度と湿度さらに定点カメラデバイスにするのもおもしろいな。さらに言えば、遠隔地から操作できるミニ台車にも簡単にできるし…
できるかなと思ったけどカーネルソースにlinux/usb/input.hがなくて失敗。 /usr/arm-lnux-gnu/include/linux/usb/input.hを持ってきておいてみたけどやっぱだめだった。armadillo500だと普通にコンパイルとおるんだけどな。
そういえばKMCのボードはできたんだっけ? まえ,ETの時にatmarkの人に聞いたけど近々リリース予定とか聞いた。 うーん、どうなんだろ? カラーカメラ 1/4インチ26万画素CCD ITU−656出力付 MTV−54K0DN: カメラ 秋月電子通商 電子部品 ネ…
ROM起動(リマップなし)でいくならRAMは下からBSSセクション、DATAセクションんで上から例外スタック、ユーザースタックか?
アセンブラの良い本はないもんかな? といっても自分がみたいのはARM いまいちアセンブラの書き方がわからん。 疑似命令とか、おきまりごととかがよくわからん。
なんでかしらんがarmのクロスコンパイラがarm-linux-gccじゃなくてarm-linux-gnu-gccになってるんだけどこれはなんで? atmarkが出してるdebをそのまま入れてるだけなんだけどなぁ。 取り合えず下の方法で回避 クロスコンパイルの実行ファイル名が違うとき - …
結構ほっとくと切れるけど、切れた後はつながらない。 とりあえず一回ifconfig downで落とした後につなげて設定すると BUG: scheduling while atomic: rt73/0x00000001/2586 こんなメッセージが出てる。 とりあえず再起動すれば良いんだけど。 微妙・・・。
大まかに次の流れ 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…
うーん、今度は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 個のファイルとディ…
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をやりたい場合は次のような記述か? __vectors: LDR PC,RST_addr /*リセット*/ LDR PC,UNDEFINED_addr /*Undefined Instruction:未定義命令*/ LDR PC,SWI_addr /*ソフトウェア割り込み*/ LDR PC,PreAbort_addr /*Prefetch Abort:命令のプリフェッチ…
あまりにarm-elfの環境ができないので、arm-none-eabiのほうでためす。 とりあえず、普通のファームレベルならこまることないしな。 よるねてかけたら通ってたっぽい。 よし多分通った。あとは試しにコンパイルしてみる。 ちなみにバージョンはgcc4.3.3,newl…
Armadillo-500 FXでUSB無線LANモジュールを使う | 組み込みLinuxのArmadilloサイト こないだ自分がやったやり方であってたらしい。 armadillo500でrt73 - ippeiの日記
とりあえずwinarmのソースを読むと仕組みはなんとなくわかった。 まず開始時 割り込みベクタより割り込みの前処理にジャンプ lrを待避後r0も待避 CPSR(状態レジスタ)をR14にロードしてスタックへ待避 VICにセットされた処理の先頭アドレスをr0にロード スー…
うーん。多重割り込みは最低でもほしい。 とりあえず高速割り込み、多重割り込みは最低限対応がもくひょうかな。 まぁ、暇を見つけて、かきはじめる。多重割り込みについてはWINARMのソースが対応してるみたいだしな。FIQは、多重割り込みは対応させないつも…
__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を最高速で処理するには、要因をひとつにして、ベクタテーブルの最後のアドレスから処理を開始すればいいが、その時に制約が出てくる。まずコードサイズ、ベクタテーブルのジャンプテーブルをしてる場合にジャンプできる幅も決ま…
そういえば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の環境は統合開…
とりあえずソースの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…
うーん、結局今使ってるのはid:odawaraさんのところで紹介されてる。 rt73 GW-US54Mini2をLinuxで使う - odawaraの「はてな de メモ」 の方だけど、ほっておくとたまに無線が解除されていることがある。 といってもこないだやったarmadillo500でrt73 - ippei…
ARMのリンカスクリプトを見てると.glue_7と.glue_7tというよくわからないセクションがあるけど。調べてもあまり情報がでない。objdumpで見てもmain.oとかスタートアップのオブジェクトファイルにもそんなセクションは見あたらない。 olimexのリンカスクリプ…
とりあえずgnu-armのマニュアルを探してたら見つかった。 void f () __attribute__ ((interrupt ("IRQ"))); という形みたい。 ただ、昨日見つけたサンプルプログラムだと↓の用になってる // #define __irq __attribute__ ((interrupt("IRQ"))) // #define __…
どうやらVICというのがLPC系のARMでは割り込みの鍵を握ってるみたい。見た感じだとVICは16個のアドレスが保持できてそこに割り込み処理の先頭アドレスを入れてやってるみたい。後は割り込み要求が入ればVICが勝手に処理してくれて割り込みのハンドラに飛ばし…
とりあえず割り込みにも対応したスタートアッププログラム類を探してたら gcc-Port of the LPC2000 Example Code Bundle (LPC213x/LPC214x) を見つける。 とりあえず.ifをつかって、いろいろと対応してるコードなので、少しずつ読んでいる。 とりあえずこれ…
とりあえず、ユーザーランドはSD上のdebianで /etc/init.d/rcを編集かな?
にした方がやっぱ楽かなぁ。 iwconfigの設定とか最初にUSB無線LANの接続をして、SSHログインするとすれば、その方が楽だよな。追記 ユーザーランドをマイクロSDにしたらすでに起動したときにドライバが組み込まれてた。 それって起動スクリプトに記述してた…
IRQが4バイトしかないってなんか変わってる気がするけど、armはその方がつごう良いということにきづく