nm: кто занял весь флэш?

Если хочется узнать какой код занимает больше всего флэша в микроконтроллере, стоит воспользоваться утилитой nm. Параметр radix задаёт формат отображения чисел. Десятичный удобен для понимания размера, но портит адреса. Пример цели size для make:

size:
    $(PREFIX)nm --print-size --size-sort --radix=d $(BUILD_DIR)/$(TARGET).elf

Таким образом можно узнать, что функция HAL_RCC_OscConfig занимает больше килобайта!

arm-none-eabi-nm --print-size --size-sort --radix=d ./build/target.elf
....
134218896 00001100 T HAL_RCC_OscConfig

Для некоторых случаев можно сократить этот размер закомментировав настройку ненужных источников тактирования. Странно, что это не делается автоматически для источников, отсутствующих в данном МК.

Pwn Adventure 3: Pwnie Island

Великолепные видео-уроки по реверс-инжинирингу сетевой игры Pwnie Island. Игра была сделана именно для этой цели, поэтому в ней оставлена отладочная информация, чтобы не скучать, а сразу перейти к веселью.