annotate Bootloader/Scripts/generateManufacturingImage.bash @ 401:99f93dec8fea

Start removing select Linux-isms bash might not be in /bin. Don't expect it there.
author Dan McGregor <dan.mcgregor@usask.ca>
date Mon, 10 Aug 2015 14:49:46 -0600
parents 45cb81040110
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
401
99f93dec8fea Start removing select Linux-isms
Dan McGregor <dan.mcgregor@usask.ca>
parents: 254
diff changeset
1 #!/usr/bin/env bash
254
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
2 # Combines a given bootloader image and firmware image into a single firmware binary
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
3 # Manufacturing deliverable
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
4
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
5 # Args
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
6 # Argument #1 Path to bootloader binary
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
7 # Argument #2 Path to firmware binary
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
8 # Argument #3 Memory location of the firmware binary (bootloader always starts at address 0x0) in bytes (hex or decimal)
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
9
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
10 # Must have three args
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
11 if [ "$#" -ne 3 ]; then
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
12 echo "Usage: `basename $0` <bootloader binary> <firmware binary> <memory address of firmware>"
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
13 echo "Example: `basename $0` kiibohd_bootloader.bin kiibohd.dfu.bin 4096"
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
14 echo "Creates a file called 'kiibohd_manufacturing_<date>.bin'"
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
15 echo "WARNING: Make sure bootloader is smaller than or equal to the memory address of the firmware binary."
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
16 exit 1
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
17 fi
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
18
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
19 # Copy images to /tmp
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
20 cp "$1" /tmp/.
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
21 cp "$2" /tmp/.
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
22
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
23 bootloader=$(basename "$1")
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
24 firmware=$(basename "$2")
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
25
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
26 # Pad bootloader binary to given address
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
27 truncate -s "$3" /tmp/"$bootloader"
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
28
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
29 # Concatenate firmware image onto newly sized bootloader
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
30 cat /tmp/"$bootloader" /tmp/"$firmware" > kiibohd_manufacturing_$(date +%Y-%m-%d).bin
45cb81040110 Adding convenience scripts to build and load manufacturing image via SWD.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
31