Я хотел бы вывести количество вспышки, используемое, когда я создаю свой проект на C, написанный для ПОС, как Ардуино делает для своих эскизов.Есть ли равный эквивалент для ПОС?
Я обнаружил, что Arduino IDE использует в на GitHubavr-size. Есть ли эквивалент для ПОС? Я заметил, что есть общая версия (это правильное слово?), Включенная в binutils GNU, называемую size
. Могу ли я использовать that?
Я строю свой проект, используя sdcc и gputils.
EDIT: Если я прохожу -m
к gplink в то время как ссылки, я получаю файл карты. В этом файле карты есть раздел «Использование памяти программы». В конце этого раздела указывается количество используемых адресов.
Program Memory Usage
Start End
--------- ---------
0x005558 0x0055db
0x0063e0 0x0063f5
0x00663c 0x006643
...
0x006280 0x0062a7
0x00662e 0x00663b
26229 program addresses used
Это соответствует выходному размеру GNU при запуске в выходном шестнадцатеричном файле.
$ size out.hex
text data bss dec hex filename
0 26229 0 26229 6675 out.hex
$
Означает ли это, что я могу просто использовать размер GNU? Это не похоже на то, что я вижу в программном обеспечении моего программиста. Для этого же самого файла используется самый старший адрес 0x6670, который будет 26224-м байтом.
Размер программы и размер вспышки - это не одно и то же. Ваш .map-файл сохранит память программы, разделы .rodata и т. Д., Перечисленные отдельно. В то время как какой-либо инструмент для программирования вспышки будет видеть только вспышку, которая должна быть запрограммирована, не имея понятия о том, что делает содержимое. – Lundin