0と1の反復横跳び

仕事や趣味のメモ。コンピュータ、旅、音楽、本など

Come Back to Mac

以前にM2 MacBook Airを購入して使用していたのだが、実は1年弱で手放していた。

理由は色々あるのだが、他のコンピュータをメインで使っており、ほとんど触る時間がなかったためである。

また外に出かけてコンピュータを利用するという機会もほとんどなく、ラップトップを持つ必要性もなかったことが大きい。

しかし、心理的ストレスが溜まっておりArmアーキテクチャネイティブのコンピュータで色々やってみたいと思うことがあり、結局新しいものを買い直すことにした。

M4 MacBook Pro

今回購入したのはM4 MacBook Pro。一番安い16 GB RAM+512 GB SSDのモデルをUSキーボードにした。

M2 MacBook Airが2台買えそうな値段ではあるのだが、やはり"Pro"の名は伊達ではなく、拡張性と堅牢性に優れた良いモデルだと思う。 具体的にはHDMIポートやSDカードスロット、Type-C USBも3ポートあり、さらに外部ディスプレイ出力も2枚いけるということらしい。

後はディスプレイが120 fps対応とのことで、確かに普段使っているWQHDの外部モニタより滑らかに動いている感じがある。

なお重量は公式で1.55 kgとのことで割とずっしりしているのだが、ある程度厚みがあるため、小脇に抱えて移動するときの安心感があって良い。 またちゃんと空冷ファンが備わっており、パッシブ空冷のAirよりプロセッサパワーが安定して出せると思われる。

とりあえず色々セットアップをしないといけないので、思いついたら記事にしたいと思う。

尊師スタイル
HHKBも置きやすく良い感じ。

おまけ

すごくどうでもいいのだけれど、こういうのは古いMacっぽくていいね。

底面の彫りがかっこいい

2025年の挨拶

あけましておめでとうございます。

いつも当ブログを閲覧いただきありがとうございます。

予想以上に多くの方にアクセスいただき、大変うれしく思います。

昨年はあまり更新ができませんでしたが、今年は定期的に更新できるよう、またより多くの方に楽しんでいただける様な記事を更新していく所存であります。

今年は

  • 技術書を通じた勉強記録

  • Armプロセッサアーキテクチャの解読

  • 趣味(自動車&旅行)

の更新を主として考えております。

どうぞ本年もよろしくお願いいたします。

Arduino IDEのelfファイルから逆アセンブルでasmファイルを生成させる(arm編)

Arduino IDEに中間ファイル(.elf)を出力させ、逆アセンブルによってasmファイル(アセンブリファイル)を入手する方法。 (Arduino IDE version: 2.3.3、Windows + WSLで確認済。)

ここではArduino UNO R4 minima(wifi)やRP2350の、所謂(Cortex-M)ARMプロセッサを想定する。 (未確認だが、基本的な作業はAVRやRISC-Vでも変わらないはずなので、対応したクロスコンパイラが入手できればアセンブリは生成できるはず。)

Arduino IDEの設定と操作

Arduino IDEを開き、File -> Preferences -> Show verbose output duringの"compile"にチェックを入れる。

Show verbose output duringの設定
コンパイル中のメッセージを出力させる設定を有効にする。)

次に逆アセンブルしたいソースをverify(コンパイル)する。

verify完了後、Outputに表示される下記のパスをコピーし、txtなどに張り付ける。

コピーするパス

この時、"-A"以降のフルパスが".elf"を示しているため、エクスプローラーでアクセスし、ファイルが存在していることを確認。

(メモ: このelfファイルが何者かというと、≒機械語。コンピュータは書いたプログラム(Cなど)をそのまま実行してくれるわけではなく、コンパイルを行うことで各プロセッサアーキテクチャに合ったバイナリ(binファイル)を生成しそれを実行する。が、linuxなどOSが動いているコンピュータでは都合が悪いので、実行しやすい形式に直した機械語ファイル=elfという理解。)

WSLで 逆アセンブル

*注: WSLはインストール済の前提。

生成したelfファイルをwsl環境にコピーする。場所はhome下などにディレクトリを作る。 (Windowsからコピーする場合は、エクスプローラーで " \wsl$" とパスを検索するとWSLのディスクが覗ける。)

次に

$ sudo apt install binutils-arm-none-eabi

でARM用gcc(クロスコンパイラ)を入手する。

入手出来たら、下記コマンドで逆アセンブルを行い、elfファイル->asmファイルを生成する。

$ arm-none-eabi-objdump -D <hoge.elf> > <hoge.asm>

(これで全セクションの逆アセンブルが実行される)

arm-none-eabi-objdump -j .text -D <hoge.elf> > <hoge.asm>

("-j"オプションをつけてセクションを指定して逆アセンブルすることも可能)

参考リンク