blob: 4bb17b63efa6480fc23093f1e3f1a05d1b8cd9e4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#!/bin/sh
# Generates the Erase, Read, and Write YUP commands for DMBootloader.
# Write command is generated with random data of the page.
cmd_write_header()
{
little_endian=$(printf "%04X\n" $2 | sed 's,^\(..\)\(..\)$,\2\1,')
printf '\x'$1 >"$file"
printf '\x'$(echo $little_endian | cut -c1-2) >>"$3"
printf '\x'$(echo $little_endian | cut -c3-4) >>"$3"
}
usage()
{
{
echo "Usage: $0 CMD PAGE_NUMBER OUT_FILE"
echo " CMD write, read, or erase"
echo " PAGE_NUMBER 16-bit page number"
echo " OUT_FILE file to which the command's binary data will be written"
} >&2
exit 1
}
[ $# -ne 3 ] && usage
cmd=$1
page_num=$2
file="${3}"
case "$cmd" in
write)
cmd_write_header 00 $page_num "$file"
;;
read)
cmd_write_header 02 $page_num "$file"
;;
erase)
cmd_write_header 01 $page_num "$file"
;;
*)
echo "Unknown command requested" >&2
usage
esac
[ "$1" = "write" ] && dd if=/dev/urandom of="$file" bs=1 count=512 seek=3 2>/dev/null
exit 0
|