SRAM 使用量のカウント
#!/usr/bin/env ruby
require 'pp'
D = Struct.new(:sec, :size, :name)
target = ARGV.shift
sram = `arm-none-eabi-objdump -t '#{target}'`.chomp.split(/\n/).
select {|l| /\.bss|\.data/ =~ l }.
map {|l|
sec, size0 = *l.split(/\t/)
size, name = *size0.split(/\s+/) if size0
D.new(sec, size.to_i(16), name)
}
total = sram.map {|i| i.size }.reduce {|r,i| r + i}
sram.sort_by {|i|
i.size
}.each { |i|
puts "% 3d%% % 10d %s" % [i.size.to_f / total * 100, i.size, i.name]
}
puts "total: %d bytes" % total こういうのを書いて
$ foo build/ch.elf
と実行すると
... 0% 124 SD1 0% 132 USBD1 1% 192 dump_buffer 1% 208 ch_idle_thread_wa 2% 384 SDU1 2% 384 rx_buffer 4% 640 waThread2 6% 960 waThread1 7% 1064 impure_data 10% 1616 measured 10% 1616 trace_index 13% 2048 spi_buffer 30% 4552 current_props total: 15081 bytes
こういう感じである程度わかる。
関連エントリー
- スマートメータから瞬間消費電力を読むRubyのコード スマートメータのBルートサービスで Wi-SUN モジュールを使って瞬間消費電力を読み出す | tech - 氾濫原 にひき続き Wi-SU...
- NiZ Keyboard PLUM からキーマップや打鍵回数を読み出す NiZ のアプリケーションは Windows 向けしかない。プロトコルが気になったので、とりあえず打鍵回数を読み出すところをまでをやってみた...
- CNC フライスで加工台の面出しをするG-Codeを生成するRubyスクリプト 今まで SketchUp + SketchUCam で雑にポケット加工の機能を使って生成してたりしていたのですが、思うような G-Code ...
- DaVinci Resolve のマーカーから YouTube のチャプターを書き出した後に生成する 書き出しするとき、YouTube 設定でマーカーをチャプターにしてくれる機能がある。書き出したあとに再生成とかしたいので、どこかから普通にテ...
- stm32f0x 書きこみ速度大会 NanoVNA (stm32f07) に対しての書きこみで、どの方法が早いのだろうか?と気になったので試した。対象は 95764bytes ...