Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | # Builds code and prints binary sizes. For now, this only reports sizes of MCU |
| 4 | # binaries as that is by far the most space-constrained. |
| 5 | |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 6 | PROJECT_ROOT=$(realpath $(dirname ${BASH_SOURCE[0]})/..) |
David Lattimore | bcc2d84 | 2021-03-19 14:28:26 +1100 | [diff] [blame] | 7 | |
| 8 | source $PROJECT_ROOT/environment |
| 9 | |
| 10 | set -e |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 11 | STAGE0="${PROJECT_ROOT}/mcu_rom/stage0/target/thumbv6m-none-eabi/release/stage0.bin" |
| 12 | STAGE1="${PROJECT_ROOT}/mcu_rom/stage1/target/thumbv6m-none-eabi/release/stage1.bin" |
David Lattimore | 941f6b4 | 2021-04-26 15:53:01 +1000 | [diff] [blame^] | 13 | APPLICATION="${PROJECT_ROOT}/mcu_rom/stm32g0_application/target/thumbv6m-none-eabi/release/stm32g0_application.bin" |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 14 | ( |
| 15 | cd "${PROJECT_ROOT}/mcu_rom/stage0" |
David Lattimore | bcc2d84 | 2021-03-19 14:28:26 +1100 | [diff] [blame] | 16 | cargo +$RUST_VERSION build --release |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 17 | arm-none-eabi-objcopy \ |
| 18 | -O binary \ |
| 19 | target/thumbv6m-none-eabi/release/stage0 \ |
| 20 | "$STAGE0" |
| 21 | ) |
| 22 | ( |
| 23 | cd "${PROJECT_ROOT}/mcu_rom/stage1" |
David Lattimore | bcc2d84 | 2021-03-19 14:28:26 +1100 | [diff] [blame] | 24 | cargo +$RUST_VERSION build --release |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 25 | arm-none-eabi-objcopy \ |
| 26 | -O binary \ |
| 27 | target/thumbv6m-none-eabi/release/stage1 \ |
| 28 | "$STAGE1" |
| 29 | ) |
David Lattimore | bcc2d84 | 2021-03-19 14:28:26 +1100 | [diff] [blame] | 30 | ( |
David Lattimore | 941f6b4 | 2021-04-26 15:53:01 +1000 | [diff] [blame^] | 31 | cd "${PROJECT_ROOT}/mcu_rom/stm32g0_application" |
David Lattimore | bcc2d84 | 2021-03-19 14:28:26 +1100 | [diff] [blame] | 32 | cargo +$RUST_VERSION build --release |
| 33 | arm-none-eabi-objcopy \ |
| 34 | -O binary \ |
David Lattimore | 941f6b4 | 2021-04-26 15:53:01 +1000 | [diff] [blame^] | 35 | target/thumbv6m-none-eabi/release/stm32g0_application \ |
David Lattimore | bcc2d84 | 2021-03-19 14:28:26 +1100 | [diff] [blame] | 36 | "$APPLICATION" |
| 37 | ) |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 38 | echo |
| 39 | STAGE0_SIZE=$(stat --printf='%s' "$STAGE0") |
| 40 | STAGE1_SIZE=$(stat --printf='%s' "$STAGE1") |
David Lattimore | bcc2d84 | 2021-03-19 14:28:26 +1100 | [diff] [blame] | 41 | APPLICATION_SIZE=$(stat --printf='%s' "$APPLICATION") |
Alan Green | 9b7a93d | 2021-03-11 14:24:52 +1100 | [diff] [blame] | 42 | echo "Stage0: ${STAGE0_SIZE} bytes" |
| 43 | echo "Stage1: ${STAGE1_SIZE} bytes" |
David Lattimore | bcc2d84 | 2021-03-19 14:28:26 +1100 | [diff] [blame] | 44 | echo "Application: ${APPLICATION_SIZE} bytes" |