ぐだぐだ低レベルプログラミング(64) ARM64(AArch64)、シフト付きadd

addSFTc_EC
Joseph Halfmoon

Armは64ビット化するときに32ビットであった「余計なもの」を捨ててます。しかしレジスタをシフトしてから演算という命令は捨てなかったです。アドレス計算などに便利なようでいて、実はそれほど頻繁に使う分けでもない命令(個人の感想です。)RISC-Vなどは持ってない類。もはやArmの伝統といっても良い機能かと。

“ぐだぐだ低レベルプログラミング(64) ARM64(AArch64)、シフト付きadd” の続きを読む

やっつけな日常(17) スマホでGo!GoのポインタはCとは違うケド、ちょっとだけよ。

result
Joseph Halfmoon

Go言語を始めて喜んだことの一つにポインタがあります。一瞬、ポインタがあれば「やりたい放題」と思ったのですが違いました。Goのポインタはほぼ安全。Cのように不作法な操作は許してくれないことが分かりました。でもねえ、やっぱり「危ない」ポインタ操作をやりたい人はいたみたい。その名もunsafeモジュール。

“やっつけな日常(17) スマホでGo!GoのポインタはCとは違うケド、ちょっとだけよ。” の続きを読む

ぐだぐだ低レベルプログラミング(63) ARM64(AArch64)、フラグの観察 adds

addsEC
Joseph Halfmoon

前回はArmの64ビット命令の即値Addを眺めてみました。それだけでも4形式の命令があったのですが、前回作成した命令表には、まったく同等な加算動作を行う命令Addsが隣に並んでいます。整数加算することはAddと同じですが、副作用、フラグを立てたり下ろしたりする、ということのみが違う命令です。なお演習はスマホ上です。

“ぐだぐだ低レベルプログラミング(63) ARM64(AArch64)、フラグの観察 adds” の続きを読む

ぐだぐだ低レベルプログラミング(62) ARM64(AArch64)、Add命令その1即値

ADD_INSN
Joseph Halfmoon

Armの64ビット命令、32ビットの時と比べると条件付き実行のフィールドが無くなって「スッキリ」した印象です。しかし、RISC-Vを眺めた後でA64(AArch64)を眺めるとなんと複雑な。伝統?のシフトできるレジスタオペランドは健在。フラグ操作のON/OFFも加わって組み合わせが多いです。とても1回では見切れませぬ。

“ぐだぐだ低レベルプログラミング(62) ARM64(AArch64)、Add命令その1即値” の続きを読む

ぐだぐだ低レベルプログラミング(61) ARM64(AArch64)、gdb -tui

gdbTUI000
Joseph Halfmoon

前々回、デフォルトでインストール済であったlldb (LLVM系?のデバッガ)を使ってみましたが、アセンブラレベルの表示がちょいと思うような感じと違っておりました。gdbとほぼほぼ互換とはいいつつも違うところはあるみたいです。そこで本家gdbをインストールし、TUIモードで動作させてみました。この感じかね。

“ぐだぐだ低レベルプログラミング(61) ARM64(AArch64)、gdb -tui” の続きを読む

ぐだぐだ低レベルプログラミング(60) ARM64(AArch64)、レジスタ一覧描いてみた

RegsAllEC
Joseph Halfmoon

前回スマホ上でアセンブラとデバッガを動かし、ARM64(AArch64)のレジスタなど眺めてみました。ARM64はARM32と大分様子が違うので主要なレジスタだけでも一覧しておくべしと図を作り始めてハマリました。調べて図を描いているだけで時間がたちます。レジスタ多すぎ?

“ぐだぐだ低レベルプログラミング(60) ARM64(AArch64)、レジスタ一覧描いてみた” の続きを読む

ぐだぐだ低レベルプログラミング(59) ARM64(AArch64)、スマホで lldb

ARM64_REG_EC
Joseph Halfmoon

スマホ上で clang の使用開始。「ARM64(AArch64)できるな」と気づきました。「できる」といってアセンブラです。以前Armをやったときは32ビットでした。手元のラズパイは皆32ビットOSで動かしているので、64ビットArmはできなかったのです。OS入れ替えるのはメンドイ。しかしスマホであれば64ビット。

“ぐだぐだ低レベルプログラミング(59) ARM64(AArch64)、スマホで lldb” の続きを読む

鳥なき里のマイコン屋(122) Raspberry Pi 4到着、ラズパイPicoの母艦化

Pi4SoC
Joseph Halfmoon

ようやくと言うべきか、GW前にRaspberry Pi 4 を手に入れました。先に入手のRaspberry Pi Picoの母艦にする、というのが主目的であります。情報もそろい、ツールなども完備のラズパイなので、OSのインストールからクロス開発環境のセットアップなど「スムース」ではあるのですが、例によって引っかかるところもあり。 “鳥なき里のマイコン屋(122) Raspberry Pi 4到着、ラズパイPicoの母艦化” の続きを読む

トホホな疑問 (27) M5StickC、Uartを使う

M5Stick C back
Joseph Halfmoon

M5StickCの新製品plusが出たようですが、本投稿はplusの話ではありません。ノーマル版でUARTを使ってみた件。結局使えたのですが、トホホな疑問がいろいろ出てきてしまいました。誰が知っている?どこに書いてある?それって私の手元のデバイス特有の挙動?疑問はつきませぬ。

“トホホな疑問 (27) M5StickC、Uartを使う” の続きを読む

AIの片隅で(22) M5StickVのお引越し、再起動

JosephHalfmoon

直ぐ何かに影響されます。aNo研著のMAiX本を読み、約7カ月ほど「眠っていた」Kendryte K210搭載の小さな「AIカメラ」M5StickVを復活させねば、と決意いたしました。ちょうど新しいPC(といっても誰かのお古をクリーンインストールしたもの)が手に入ったので、いろいろ入れ過ぎてカオス気味のメイン機からついでにM5StickV関係をお引越しさせよう、と考えました。しかし、AI業界で7カ月は長い。いろいろ変わっていた。。。

“AIの片隅で(22) M5StickVのお引越し、再起動” の続きを読む

Literature watch returns(18) MAiX MAniaX、aNo研[著]

JosephHalfmoon

前回、年甲斐もなく同人誌即売会的「技術書」に手を出して?しまいましたが、今回も「それ」です。商業出版社の出版物ではありませんが、ネットで入手可能。たかだか132ページの「小冊子」ではありますが、Kendryte K210にご興味のある方には必携の一冊じゃないかと思います。

“Literature watch returns(18) MAiX MAniaX、aNo研[著]” の続きを読む

トホホな疑問(20) Raspberry Piドキュメントの闇

ラズパイ関係の情報はネットに「溢れて」おります。本稿自体もそんな情報の山の裾野を担っているかもしれません。ラズパイのこと、何か調べようと思っても、まず不自由はありません。あまり多くの情報がヒットしすぎるくらいです。しかし、なるべくなら変な誤解の無いようにデバイスメーカ発行のデータシートや、ソフトウエア開発元の文書に基づきたいところ(私などの書いているものは勝手な意見なので信用しないように。)ところが手持ちの「公式っぽい」データシートを眺めていてそこに闇?があることに気付いてしまいました。 “トホホな疑問(20) Raspberry Piドキュメントの闇” の続きを読む

バリバリのSoCとSoM(3) Jetson NanoのUARTに接続

前回、Jetson NanoのI2Cにセンサを接続してみたので、Jetson Nanoの40ピンヘッダ(ラズパイと互換性のあるGPIOピンヘッダ)にデフォルトで出ているインタフェースでテストしていないのはUARTだけとなりました。今回は、Jetson NanoのUARTの先に、USBシリアル変換モジュールを接続し、Jetson NanoとPCの間でシリアル通信を行ってみます。 “バリバリのSoCとSoM(3) Jetson NanoのUARTに接続” の続きを読む

バリバリのSoCとSoM(2) Jetson NanoのI2Cにデバイスをつなぐ

やはりちゃんとドキュメントを読めば、手も震えず(アル中か)、テキパキと自信をもって作業が進みます。前回、Jetson Nanoのデータシートを読んだお陰で、今回は、早速実践とI2Cバスの先にセンサを取り付けてみましたが、一発動作、ものの10分もかかっていません(投稿するにはその何倍か時間かかりますが)

“バリバリのSoCとSoM(2) Jetson NanoのI2Cにデバイスをつなぐ” の続きを読む