Mercurial > louis > kiibohd-controller
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 |
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 |