IchigoJam(4) <メモリダンプ・プログラム>
IchigoJam BASICはPEEK()が使えるようなのでメモリダンププログラムを書いてみた。 HEX$()やCHR$()があるので楽だ。
1 'Memory dump |
ちょっと丁寧に書いてみた。^^)
メモリダンプ見てると萌えるねえ...
###
IchigoJamの作者のページ「福野泰介の一日一創」に「IchigoJamのメモリマップと演算子優先順位」というエントリがあってIchigoJamのメモリマップが公開されている。これを見るとPEEK()で見えるアドレスは仮想的なアドレスのようだ。
やっぱりRAM(実アドレス、0x10000000~)の中を見たい!
USR()で機械語ルーチンをコールできるようなので、PEEK()の代わりにUSR()でRAMの実アドレスを読むようにすればよさそうだ。
しかし!、ARMのアセンブラなど書きたくない!!、しかもthumb命令だし!!
IchigoJamのUSR()は引数をR0レジスタで渡して戻り値をR0で受け取るらしいので、機械語への翻訳はgccにお願いすることにしよう。
uint16_t peek_ex(uint16_t addr) |
のような関数を書いてgccでコンパイルしてobjdumpで逆汗とすると
$ arm-none-eabi-gcc -c -Os -mthumb -mlittle-endian -mno-unaligned-access |
00000000 <peek_ex>: |
が得られる。
RAMの実アドレスのデータを読む関数は
POKE #700, #01, #4B, #C0, #5C, #70, #47, #C6, #46, #00, #00, #00, #10
D=USR(#700,A)
とすればよさそうだ。
実メモリをダンプするプログラムは
1 'Memory dump |
ダンプ・ルーチンを最適化(分かり難く)してみた。
ソースはわかり難くなったけど、速度は目に見えて早くなったようには感じないなあ
- IchigoJam(2015/03/30)
- IchigoJam BASICのFOR/NEXT(2015/04/05)
- IchigoJam BASICのFOR/NEXT(2)(2015/04/07)
- IchigoJam(2) -IchigoJamそっくりさんを作る-(2015/05/17)
- IchigoJam(3) -超小型ARMマイコン基板- (2015/05/)
- IchigoJam(4) -モリダンプ・プログラム-(2015/06/01)
- IchigoJam(5) -HDSP0670を使った4digit clock-(2015/09/24)
- IchigoJam(6) <4桁時計ダイナミック表示>(2015/10/13)
- IchigoJam(7) <OUT8~OUT11使用 4桁時計ダイナミック表示>(2015/10/19)
- IchigoJam,(8) <8x8LED>
- IchigoJam(9) <8x8LEDで8Qeen問題>(2015/11/10)
- IchigoJam(10) <8x8LEDを光センサーにする>(2015/11/17)
- IchigoJam(10) <LED&KEY>(2018/04/08)
- IchigoJam(11) <LED&KEYを機械語で>(2018/04/15)
« FRAM <強誘電体メモリ> | トップページ | 幸福の方程式 <新しい消費のカタチを探る> »
「CPUボード」カテゴリの記事
- CH559picoでTOYOSHIKI-BASIC (2)(2025.02.09)
- CH559picoでTOYOSHIKI-BASIC(2025.01.26)
- 久々の物欲(2022.05.21)
- stcgal <質問に答える>(2021.02.21)
- micro:bitで跳び上がると表示する名札 <ウケ狙い>(2020.11.18)
「IchigoJam」カテゴリの記事
- IchigoJam(11) <LED&KEYを機械語で>(2018.04.15)
- IchigoJam(10) <LED&KEY>(2018.04.08)
- IchigoJam(10) <8x8LEDを光センサーにする>(2015.11.17)
- IchigoJam(9) <8x8LEDで8Qeen問題>(2015.11.10)
- IchigoJam(8) <8x8LED>(2015.11.04)
「プログラミング」カテゴリの記事
- CH559picoでTOYOSHIKI-BASIC (2)(2025.02.09)
- GMC-4で動く3連ナイトライダー(2022.12.30)
- プログラミング言語ランキング(2022.11.19)
- AWSでサービス構築(2022.05.29)
- Excelの配列式(2022.01.06)
コメント