messageソフトウェア開発の仕事をしているsimotinといいます。PINE64前回書いたPINE64+の続きとして、とりあえずBROMの処理が終わった状態でCPUがどうなっているか知りたいのですが、難航しています。mcommit.hatenadiary.comBROMのコードのダンプを見た結果、コプロセッサの設定とかをしていることは分かりましたがどうも追いきれないところもあるのでとりあえずCPUのレジスタの値をUARTでダンプ出力とかしてみたいと思いました。レジスタを直接触るためにはアセンブラでコードを書く必要があり、少しハードルはあがります。いってもARMのABIを理解して、出力したいレジスタからMOV命令で汎用レジスタにコピーするだけなのでそこまでは難しくはないはずです。練習もかねてx86で試してみました。ABI的にポインタで渡す変数がスタックトップの次にあることを前提としています。関数側ではEBPの設定とかしないようにしたので、スタックトップはリターンアドレスになります。抜けるときもret命令だけで問題ありません。0;}のような感じで、ポインタ引数で受け取ることを想定した関数にしてみました。※最初戻り値で作ってみたのですが、戻り値だとEAXが取れなくなってしまいます。全関数のデバッグはできていませんが、問題なく動いていそうです。reg.oのような感じです。フォーマットを指定する必要があります。getがなんとなく書けたのでついでにsetも書きたい。それができたらARMv7版も書いてみよう。~圧縮命令ってなんだ?~モナリザ本の第7章を読んでみました。Studioでデバッグする方法について書きましたが...2018-11-12Cコンパイラ作成入門をarmで試してみる久しぶりに記事を書きます。(4)月別アーカイブはてなブログをはじめよう!simotin13さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。