Initial Commit - Copy from Altus Metrum AltOS
This commit is contained in:
18
ao-tools/ao-sky-flash/Makefile.am
Normal file
18
ao-tools/ao-sky-flash/Makefile.am
Normal file
@@ -0,0 +1,18 @@
|
||||
bin_PROGRAMS=ao-sky-flash
|
||||
|
||||
AM_CFLAGS=$(WARN_CFLAGS) -I$(top_srcdir)/ao-tools/lib $(LIBUSB_CFLAGS)
|
||||
AO_SKY_FLASH_LIBS=$(top_builddir)/ao-tools/lib/libao-tools.a
|
||||
|
||||
ao_sky_flash_DEPENDENCIES = $(AO_SKY_FLASH_LIBS)
|
||||
|
||||
ao_sky_flash_LDADD=$(AO_SKY_FLASH_LIBS) $(LIBUSB_LIBS)
|
||||
|
||||
ao_sky_flash_SOURCES = \
|
||||
sky_bin.c \
|
||||
sky_debug.c \
|
||||
sky_flash.c \
|
||||
sky_flash.h \
|
||||
sky_serial.c \
|
||||
sky_srec.c
|
||||
|
||||
man_MANS = ao-sky-flash.1
|
Binary file not shown.
Binary file not shown.
85
ao-tools/ao-sky-flash/ao-sky-flash.1
Normal file
85
ao-tools/ao-sky-flash/ao-sky-flash.1
Normal file
@@ -0,0 +1,85 @@
|
||||
.\"
|
||||
.\" Copyright © 2009 Keith Packard <keithp@keithp.com>
|
||||
.\"
|
||||
.\" This program is free software; you can redistribute it and/or modify
|
||||
.\" it under the terms of the GNU General Public License as published by
|
||||
.\" the Free Software Foundation; either version 2 of the License, or
|
||||
.\" (at your option) any later version.
|
||||
.\"
|
||||
.\" This program is distributed in the hope that it will be useful, but
|
||||
.\" WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
.\" General Public License for more details.
|
||||
.\"
|
||||
.\" You should have received a copy of the GNU General Public License along
|
||||
.\" with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
.\" 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
.\"
|
||||
.\"
|
||||
.TH AO-SKY-FLASH 1 "ao-sky-flash" ""
|
||||
.SH NAME
|
||||
ao-sky-flash \- flash GPS firmware program to a SkyTraq GPS chip
|
||||
.SH SYNOPSIS
|
||||
.B "ao-sky-flash"
|
||||
[\-T \fItty-device\fP]
|
||||
[\--tty \fItty-device\fP]
|
||||
[\-D \fIaltos-device\fP]
|
||||
[\--device \fIaltos-device\fP]
|
||||
[\--loader \fIboot-loader\fP]
|
||||
[\--firmware \fIgps-firmware\fP]
|
||||
[\--query]
|
||||
[\--quiet]
|
||||
[\--raw]
|
||||
.SH DESCRIPTION
|
||||
.I ao-sky-flash
|
||||
loads the specified GPS firmware file into the target GPS chip flash
|
||||
memory using the specified boot loader.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\-T tty-device | --tty tty-device
|
||||
This selects which tty device the debugger uses to communicate with
|
||||
the target device.
|
||||
.TP
|
||||
\-D AltOS-device | --device AltOS-device
|
||||
Search for a connected device. This requires an argument of one of the
|
||||
following forms:
|
||||
.IP
|
||||
TeleMetrum:2
|
||||
.br
|
||||
TeleMetrum
|
||||
.br
|
||||
2
|
||||
.IP
|
||||
Leaving out the product name will cause the tool to select a suitable
|
||||
product, leaving out the serial number will cause the tool to match
|
||||
one of the available devices.
|
||||
.TP
|
||||
\--loader boot-loader
|
||||
This specifies the desired boot loader to use for reflashing the
|
||||
device. You should use srec_115200.bin unless you have a good reason
|
||||
not to. This should be in S record format.
|
||||
.TP
|
||||
\--firmware gps-firmware
|
||||
This specifies the new GPS firmware image to load onto the target GPS
|
||||
chip. No checking is done on this device at all; flash garbage and the
|
||||
GPS chip will probably fail to boot.
|
||||
.TP
|
||||
\--query
|
||||
Instead of loading new firmware, query the current version of firmware
|
||||
running on the target device.
|
||||
.TP
|
||||
\--quiet
|
||||
Normally, ao-spy-flash is quite chatty. This shuts it up, except for
|
||||
error messages.
|
||||
.TP
|
||||
\--raw
|
||||
The expected target for reflashing is an Altus Metrum product with the
|
||||
GPS chip connected to the CPU on that board and not directly to the
|
||||
USB serial port. This option says that the target GPS chip is directly
|
||||
connected, which changes how things are initialized a bit.
|
||||
.SH USAGE
|
||||
.I ao-sky-flash
|
||||
loads the specified bootloader into device RAM and then uses that to
|
||||
load new firmware to flash.
|
||||
.SH AUTHOR
|
||||
Keith Packard
|
74
ao-tools/ao-sky-flash/sky_bin.c
Normal file
74
ao-tools/ao-sky-flash/sky_bin.c
Normal file
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright © 2012 Keith Packard <keithp@keithp.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
*/
|
||||
|
||||
#include "sky_flash.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#define FLASHBYTES 8192
|
||||
|
||||
int
|
||||
skytraq_send_bin(int fd, const char *filename)
|
||||
{
|
||||
FILE *file;
|
||||
char buf[FLASHBYTES];
|
||||
int count;
|
||||
unsigned char cksum;
|
||||
int c;
|
||||
long size;
|
||||
long pos;
|
||||
char message[1024];
|
||||
int ret;
|
||||
|
||||
file = fopen(filename, "r");
|
||||
if (!file) {
|
||||
perror(filename);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Compute checksum, figure out how long the file */
|
||||
cksum = 0;
|
||||
while ((c = getc(file)) != EOF)
|
||||
cksum += (unsigned char) c;
|
||||
size = ftell(file);
|
||||
rewind(file);
|
||||
|
||||
sprintf(message, "BINSIZE = %ld Checksum = %d Loopnumber = %d ", size, cksum, 1);
|
||||
|
||||
ret = skytraq_cmd_wait(fd, message, strlen(message) + 1, "OK", 20000);
|
||||
if (ret < 0)
|
||||
printf ("waitstatus failed %d\n", ret);
|
||||
|
||||
pos = 0;
|
||||
for (;;) {
|
||||
count = fread(buf, 1, sizeof (buf), file);
|
||||
if (count < 0) {
|
||||
perror("fread");
|
||||
fclose(file);
|
||||
return -1;
|
||||
}
|
||||
if (count == 0)
|
||||
break;
|
||||
skytraq_dbg_printf (0, "%7d of %7d ", pos + count, size);
|
||||
pos += count;
|
||||
ret = skytraq_cmd_wait(fd, buf, count, "OK", 20000);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
return skytraq_waitstatus(fd, "END", 30000);
|
||||
}
|
112
ao-tools/ao-sky-flash/sky_debug.c
Normal file
112
ao-tools/ao-sky-flash/sky_debug.c
Normal file
@@ -0,0 +1,112 @@
|
||||
/*
|
||||
* Copyright © 2012 Keith Packard <keithp@keithp.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/time.h>
|
||||
#include "sky_flash.h"
|
||||
|
||||
static int dbg_input;
|
||||
static int dbg_newline = 1;
|
||||
|
||||
int
|
||||
skytraq_millis(void)
|
||||
{
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv, NULL);
|
||||
return tv.tv_sec * 1000 + tv.tv_usec / 1000;
|
||||
}
|
||||
|
||||
static void
|
||||
skytraq_dbg_time(void)
|
||||
{
|
||||
int delta = skytraq_millis() - skytraq_open_time;
|
||||
|
||||
if (!skytraq_verbose)
|
||||
return;
|
||||
printf ("%4d.%03d ", delta / 1000, delta % 1000);
|
||||
}
|
||||
|
||||
void
|
||||
skytraq_dbg_newline(void)
|
||||
{
|
||||
if (!skytraq_verbose)
|
||||
return;
|
||||
if (!dbg_newline) {
|
||||
putchar('\n');
|
||||
dbg_newline = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
skytraq_dbg_set(int input)
|
||||
{
|
||||
if (!skytraq_verbose)
|
||||
return;
|
||||
if (input != dbg_input) {
|
||||
skytraq_dbg_newline();
|
||||
if (input)
|
||||
putchar('\t');
|
||||
dbg_input = input;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
skytraq_dbg_char(int input, char c)
|
||||
{
|
||||
if (!skytraq_verbose)
|
||||
return;
|
||||
skytraq_dbg_set(input);
|
||||
if (dbg_newline)
|
||||
skytraq_dbg_time();
|
||||
if (c < ' ' || c > '~')
|
||||
printf ("\\%02x", (unsigned char) c);
|
||||
else
|
||||
putchar(c);
|
||||
dbg_newline = 0;
|
||||
if (c == '\n')
|
||||
dbg_input = 2;
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
void
|
||||
skytraq_dbg_buf(int input, const char *buf, int len)
|
||||
{
|
||||
if (!skytraq_verbose)
|
||||
return;
|
||||
while (len--)
|
||||
skytraq_dbg_char(input, *buf++);
|
||||
}
|
||||
|
||||
void
|
||||
skytraq_dbg_printf(int input, const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
if (!skytraq_verbose)
|
||||
return;
|
||||
skytraq_dbg_set(input);
|
||||
if (dbg_newline)
|
||||
skytraq_dbg_time();
|
||||
va_start (ap, fmt);
|
||||
vprintf(fmt, ap);
|
||||
va_end(ap);
|
||||
dbg_newline = 0;
|
||||
}
|
250
ao-tools/ao-sky-flash/sky_flash.c
Normal file
250
ao-tools/ao-sky-flash/sky_flash.c
Normal file
@@ -0,0 +1,250 @@
|
||||
/*
|
||||
* Copyright © 2012 Keith Packard <keithp@keithp.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
*/
|
||||
|
||||
#include "sky_flash.h"
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <stdarg.h>
|
||||
#include <getopt.h>
|
||||
#include <unistd.h>
|
||||
#include "cc.h"
|
||||
|
||||
static const struct option options[] = {
|
||||
{ .name = "tty", .has_arg = 1, .val = 'T' },
|
||||
{ .name = "device", .has_arg = 1, .val = 'D' },
|
||||
{ .name = "firmware", .has_arg = 1, .val = 'f' },
|
||||
{ .name = "query", .has_arg = 0, .val = 'q' },
|
||||
{ .name = "raw", .has_arg = 0, .val = 'r' },
|
||||
{ .name = "quiet", .has_arg = 0, .val = 'Q' },
|
||||
{ 0, 0, 0, 0},
|
||||
};
|
||||
|
||||
static uint8_t query_version[] = {
|
||||
0xa0, 0xa1, 0x00, 0x02, 0x02, 0x01, 0x03, 0x0d, 0x0a
|
||||
};
|
||||
|
||||
static void
|
||||
usage(char *program)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"usage: %s [--tty <tty-name>]\n"
|
||||
" [--device <device-name>]\n"
|
||||
" [--firmware <binary firmware file>]\n"
|
||||
" [--query]\n"
|
||||
" [--quiet]\n"
|
||||
" [--raw]\n", program);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
static int
|
||||
skytraq_expect(int fd, uint8_t want, int timeout) {
|
||||
int c;
|
||||
|
||||
c = skytraq_waitchar(fd, timeout);
|
||||
if (c < 0)
|
||||
return -1;
|
||||
if (c == want)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
skytraq_wait_reply(int fd, uint8_t reply, uint8_t *buf, uint8_t reply_len) {
|
||||
|
||||
for(;;) {
|
||||
uint8_t a, b;
|
||||
uint8_t cksum_computed;
|
||||
int len;
|
||||
switch (skytraq_expect(fd, 0xa0, 10000)) {
|
||||
case -1:
|
||||
return -1;
|
||||
case 0:
|
||||
continue;
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
switch (skytraq_expect(fd, 0xa1, 1000)) {
|
||||
case -1:
|
||||
return -1;
|
||||
case 0:
|
||||
continue;
|
||||
}
|
||||
a = skytraq_waitchar(fd, 1000);
|
||||
b = skytraq_waitchar(fd, 1000);
|
||||
switch (skytraq_expect(fd, reply, 1000)) {
|
||||
case -1:
|
||||
return -1;
|
||||
case 0:
|
||||
continue;
|
||||
}
|
||||
len = (a << 16) | b;
|
||||
if (len != reply_len)
|
||||
continue;
|
||||
*buf++ = reply;
|
||||
len--;
|
||||
cksum_computed = reply;
|
||||
while (len--) {
|
||||
a = skytraq_waitchar(fd, 1000);
|
||||
if (a < 0)
|
||||
return a;
|
||||
cksum_computed ^= a;
|
||||
*buf++ = a;
|
||||
}
|
||||
switch (skytraq_expect(fd, cksum_computed, 1000)) {
|
||||
case -1:
|
||||
return -1;
|
||||
case 0:
|
||||
continue;
|
||||
}
|
||||
switch (skytraq_expect(fd, 0x0d, 1000)) {
|
||||
case -1:
|
||||
return -1;
|
||||
case 0:
|
||||
continue;
|
||||
}
|
||||
switch (skytraq_expect(fd, 0x0a, 1000)) {
|
||||
case -1:
|
||||
return -1;
|
||||
case 0:
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int fd;
|
||||
int ret;
|
||||
int c;
|
||||
char *tty = NULL;
|
||||
char *device = NULL;
|
||||
char *file = NULL;
|
||||
int query = 0;
|
||||
int raw = 0;
|
||||
|
||||
while ((c = getopt_long(argc, argv, "T:D:l:f:qQr", options, NULL)) != -1) {
|
||||
switch (c) {
|
||||
case 'T':
|
||||
tty = optarg;
|
||||
break;
|
||||
case 'D':
|
||||
device = optarg;
|
||||
break;
|
||||
case 'f':
|
||||
file = optarg;
|
||||
break;
|
||||
case 'q':
|
||||
query = 1;
|
||||
break;
|
||||
case 'Q':
|
||||
skytraq_verbose = 0;
|
||||
break;
|
||||
case 'r':
|
||||
raw = 1;
|
||||
break;
|
||||
default:
|
||||
usage(argv[0]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!tty)
|
||||
tty = cc_usbdevs_find_by_arg(device, "TeleMetrum");
|
||||
if (!tty)
|
||||
tty = getenv("ALTOS_TTY");
|
||||
if (!tty)
|
||||
tty="/dev/ttyACM0";
|
||||
fd = skytraq_open(tty);
|
||||
if (fd < 0)
|
||||
exit(1);
|
||||
|
||||
if (raw) {
|
||||
/* Set the baud rate to 115200 */
|
||||
skytraq_setcomm(fd, 115200);
|
||||
sleep(1);
|
||||
skytraq_setspeed(fd, 115200);
|
||||
} else {
|
||||
/* Connect TM to the device */
|
||||
skytraq_write(fd, "U\n", 2);
|
||||
}
|
||||
|
||||
/* Wait for the device to stabilize after baud rate changes */
|
||||
for (c = 0; c < 6; c++) {
|
||||
skytraq_flush(fd);
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
if (query) {
|
||||
uint8_t query_reply[14];
|
||||
|
||||
uint8_t software_type;
|
||||
uint32_t kernel_version;
|
||||
uint32_t odm_version;
|
||||
uint32_t revision;
|
||||
|
||||
skytraq_write(fd, query_version, 9);
|
||||
if (skytraq_wait_reply(fd, 0x80, query_reply, sizeof (query_reply)) != 0) {
|
||||
fprintf(stderr, "query reply failed\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#define i8(o) query_reply[(o)-1]
|
||||
#define i32(o) ((i8(o) << 24) | (i8(o+1) << 16) | (i8(o+2) << 8) | (i8(o+3)))
|
||||
software_type = i8(2);
|
||||
kernel_version = i32(3);
|
||||
odm_version = i32(7);
|
||||
revision = i32(11);
|
||||
skytraq_dbg_printf(0, "\n");
|
||||
printf ("Software Type %d. Kernel Version %d.%d.%d. ODM Version %d.%d.%d. Revision %d.%d.%d.\n",
|
||||
software_type,
|
||||
kernel_version >> 16 & 0xff,
|
||||
kernel_version >> 8 & 0xff,
|
||||
kernel_version >> 0 & 0xff,
|
||||
odm_version >> 16 & 0xff,
|
||||
odm_version >> 8 & 0xff,
|
||||
odm_version >> 0 & 0xff,
|
||||
revision >> 16 & 0xff,
|
||||
revision >> 8 & 0xff,
|
||||
revision >> 0 & 0xff);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (!file)
|
||||
usage(argv[0]);
|
||||
|
||||
ret = skytraq_send_srec(fd, "srec_115200.bin");
|
||||
skytraq_dbg_printf (0, "srec ret %d\n", ret);
|
||||
if (ret < 0)
|
||||
exit(1);
|
||||
|
||||
sleep(2);
|
||||
|
||||
// ret = skytraq_send_bin(fd, "STI_01.04.42-01.10.23_4x_9600_Bin_20100901.bin");
|
||||
ret = skytraq_send_bin(fd, "STI_01.06.10-01.07.23_balloon_CRC_7082_9600_20120913.bin");
|
||||
|
||||
printf ("bin ret %d\n", ret);
|
||||
if (ret < 0)
|
||||
exit(1);
|
||||
|
||||
return 0;
|
||||
}
|
74
ao-tools/ao-sky-flash/sky_flash.h
Normal file
74
ao-tools/ao-sky-flash/sky_flash.h
Normal file
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright © 2012 Keith Packard <keithp@keithp.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
*/
|
||||
|
||||
/* sky_serial.c */
|
||||
|
||||
extern int skytraq_open_time;
|
||||
extern int skytraq_verbose;
|
||||
|
||||
int
|
||||
skytraq_open(const char *path);
|
||||
|
||||
int
|
||||
skytraq_setspeed(int fd, int baud);
|
||||
|
||||
int
|
||||
skytraq_setcomm(int fd, int baudrate);
|
||||
|
||||
int
|
||||
skytraq_write(int fd, const void *data, int len);
|
||||
|
||||
int
|
||||
skytraq_waitchar(int fd, int timeout);
|
||||
|
||||
int
|
||||
skytraq_waitstatus(int fd, const char *status, int timeout);
|
||||
|
||||
void
|
||||
skytraq_flush(int fd);
|
||||
|
||||
int
|
||||
skytraq_millis(void);
|
||||
|
||||
void
|
||||
skytraq_dbg_newline(void);
|
||||
|
||||
int
|
||||
skytraq_cmd_wait(int fd, const char *message, int len, const char *status, int timeout);
|
||||
|
||||
int
|
||||
skytraq_cmd_nowait(int fd, const char *message, int len);
|
||||
|
||||
/* sky_debug.c */
|
||||
|
||||
void
|
||||
skytraq_dbg_printf(int input, const char *fmt, ...);
|
||||
|
||||
void
|
||||
skytraq_dbg_buf(int input, const char *buf, int len);
|
||||
|
||||
void
|
||||
skytraq_dbg_char(int input, char c);
|
||||
|
||||
/* sky_srec.c */
|
||||
int
|
||||
skytraq_send_srec(int fd, const char *file);
|
||||
|
||||
/* sky_bin.c */
|
||||
int
|
||||
skytraq_send_bin(int fd, const char *filename);
|
256
ao-tools/ao-sky-flash/sky_serial.c
Normal file
256
ao-tools/ao-sky-flash/sky_serial.c
Normal file
@@ -0,0 +1,256 @@
|
||||
/*
|
||||
* Copyright © 2012 Keith Packard <keithp@keithp.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
*/
|
||||
|
||||
#define _DEFAULT_SOURCE 1
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <poll.h>
|
||||
#include "sky_flash.h"
|
||||
#include <stdio.h>
|
||||
#include <sys/time.h>
|
||||
#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
int skytraq_verbose = 1;
|
||||
|
||||
int
|
||||
skytraq_setspeed(int fd, int baud)
|
||||
{
|
||||
int b;
|
||||
int ret;
|
||||
struct termios term;
|
||||
|
||||
switch (baud) {
|
||||
case 9600:
|
||||
b = B9600;
|
||||
break;
|
||||
case 38400:
|
||||
b = B38400;
|
||||
break;
|
||||
case 115200:
|
||||
b = B115200;
|
||||
break;
|
||||
default:
|
||||
fprintf (stderr, "Invalid baudrate %d\n", baud);
|
||||
return -1;
|
||||
}
|
||||
ret = tcgetattr(fd, &term);
|
||||
cfmakeraw(&term);
|
||||
#ifdef USE_POLL
|
||||
term.c_cc[VMIN] = 1;
|
||||
term.c_cc[VTIME] = 0;
|
||||
#else
|
||||
term.c_cc[VMIN] = 0;
|
||||
term.c_cc[VTIME] = 1;
|
||||
#endif
|
||||
|
||||
cfsetspeed(&term, b);
|
||||
|
||||
ret = tcsetattr(fd, TCSAFLUSH, &term);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int skytraq_open_time;
|
||||
|
||||
int
|
||||
skytraq_open(const char *path)
|
||||
{
|
||||
int fd;
|
||||
int ret;
|
||||
|
||||
fd = open(path, O_RDWR | O_NOCTTY);
|
||||
if (fd < 0) {
|
||||
perror (path);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = skytraq_setspeed(fd, 9600);
|
||||
if (ret < 0) {
|
||||
close (fd);
|
||||
return -1;
|
||||
}
|
||||
skytraq_open_time = skytraq_millis();
|
||||
return fd;
|
||||
}
|
||||
|
||||
|
||||
#define BAUD 57600
|
||||
#define BPS (BAUD/10 * 9/10)
|
||||
#define US_PER_CHAR (1000000 / BPS)
|
||||
|
||||
int
|
||||
skytraq_write(int fd, const void *d, int len)
|
||||
{
|
||||
const char *data = d;
|
||||
int r;
|
||||
|
||||
skytraq_dbg_printf (0, "%4d: ", len);
|
||||
if (len < 70)
|
||||
skytraq_dbg_buf(0, data, len);
|
||||
while (len) {
|
||||
int this_time = len;
|
||||
if (this_time > 128)
|
||||
this_time = 128;
|
||||
skytraq_dbg_printf(0, ".");
|
||||
fflush(stdout);
|
||||
r = write(fd, data, this_time);
|
||||
if (r <= 0)
|
||||
return r;
|
||||
usleep(r * US_PER_CHAR);
|
||||
data += r;
|
||||
len -= r;
|
||||
}
|
||||
skytraq_dbg_newline();
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
skytraq_setcomm(int fd, int baudrate)
|
||||
{
|
||||
uint8_t msg[11];
|
||||
int i;
|
||||
uint8_t cksum;
|
||||
|
||||
int target_baudrate = 0;
|
||||
switch(baudrate)
|
||||
{
|
||||
case 4800:
|
||||
target_baudrate=0;
|
||||
break;
|
||||
case 9600:
|
||||
target_baudrate=1;
|
||||
break;
|
||||
case 19200:
|
||||
target_baudrate=2;
|
||||
break;
|
||||
case 38400:
|
||||
target_baudrate=3;
|
||||
break;
|
||||
case 57600:
|
||||
target_baudrate=4;
|
||||
break;
|
||||
case 115200:
|
||||
target_baudrate=5;
|
||||
break;
|
||||
case 230400:
|
||||
target_baudrate=6;
|
||||
break;
|
||||
}
|
||||
msg[0] = 0xa0; /* header */
|
||||
msg[1] = 0xa1;
|
||||
msg[2] = 0x00; /* length */
|
||||
msg[3] = 0x04;
|
||||
msg[4] = 0x05; /* configure serial port */
|
||||
msg[5] = 0x00; /* COM 1 */
|
||||
msg[6] = target_baudrate;
|
||||
msg[7] = 0x00; /* update to SRAM only */
|
||||
|
||||
cksum = 0;
|
||||
for (i = 4; i < 8; i++)
|
||||
cksum ^= msg[i];
|
||||
msg[8] = cksum;
|
||||
msg[9] = 0x0d;
|
||||
msg[10] = 0x0a;
|
||||
return skytraq_write(fd, msg, 11);
|
||||
}
|
||||
|
||||
int
|
||||
skytraq_waitchar(int fd, int timeout)
|
||||
{
|
||||
struct pollfd fds[1];
|
||||
int ret;
|
||||
unsigned char c;
|
||||
|
||||
for (;;) {
|
||||
fds[0].fd = fd;
|
||||
fds[0].events = POLLIN;
|
||||
ret = poll(fds, 1, timeout);
|
||||
if (ret >= 1) {
|
||||
if (fds[0].revents & POLLIN) {
|
||||
ret = read(fd, &c, 1);
|
||||
if (ret == 1) {
|
||||
skytraq_dbg_char(1, c);
|
||||
return c;
|
||||
}
|
||||
}
|
||||
} else if (ret == 0)
|
||||
return -2;
|
||||
else {
|
||||
perror("poll");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
skytraq_waitstatus(int fd, const char *status, int timeout)
|
||||
{
|
||||
const char *s;
|
||||
int c;
|
||||
|
||||
for (;;) {
|
||||
c = skytraq_waitchar(fd, timeout);
|
||||
if (c < 0) {
|
||||
skytraq_dbg_newline();
|
||||
return c;
|
||||
}
|
||||
if ((char) c == *status) {
|
||||
s = status + 1;
|
||||
for (;;) {
|
||||
c = skytraq_waitchar(fd, timeout);
|
||||
if (c < 0) {
|
||||
skytraq_dbg_newline();
|
||||
return c;
|
||||
}
|
||||
if ((char) c != *s)
|
||||
break;
|
||||
if (!*s) {
|
||||
skytraq_dbg_newline();
|
||||
return 0;
|
||||
}
|
||||
s++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
skytraq_flush(int fd)
|
||||
{
|
||||
while (skytraq_waitchar(fd, 1) >= 0)
|
||||
;
|
||||
}
|
||||
|
||||
int
|
||||
skytraq_cmd_wait(int fd, const char *message, int len, const char *status, int timeout)
|
||||
{
|
||||
skytraq_flush(fd);
|
||||
skytraq_write(fd, message, len);
|
||||
return skytraq_waitstatus(fd, status, timeout);
|
||||
}
|
||||
|
||||
int
|
||||
skytraq_cmd_nowait(int fd, const char *message, int len)
|
||||
{
|
||||
skytraq_flush(fd);
|
||||
return skytraq_write(fd, message, len);
|
||||
}
|
61
ao-tools/ao-sky-flash/sky_srec.c
Normal file
61
ao-tools/ao-sky-flash/sky_srec.c
Normal file
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright © 2012 Keith Packard <keithp@keithp.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
*/
|
||||
|
||||
#include "sky_flash.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
static const char loader_start[] = "$LOADER DOWNLOAD";
|
||||
|
||||
int
|
||||
skytraq_send_srec(int fd, const char *filename)
|
||||
{
|
||||
FILE *file;
|
||||
int ret;
|
||||
char line[1024];
|
||||
|
||||
file = fopen(filename, "r");
|
||||
if (!file) {
|
||||
perror(filename);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = skytraq_cmd_wait(fd, loader_start, strlen(loader_start) + 1, "OK", 1000);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
for (;;) {
|
||||
char *s;
|
||||
int len;
|
||||
|
||||
s = fgets(line, sizeof(line), file);
|
||||
if (!s)
|
||||
break;
|
||||
len = strlen(s);
|
||||
if (len < 3) /* Terminated with \r\n */
|
||||
break;
|
||||
s[len-2] = '\n'; /* Smash \r */
|
||||
s[len-1] = '\0'; /* Smash \n */
|
||||
skytraq_cmd_nowait(fd, s, len);
|
||||
}
|
||||
fclose(file);
|
||||
|
||||
ret = skytraq_waitstatus(fd, "END", 10000);
|
||||
skytraq_dbg_newline();
|
||||
return ret;
|
||||
}
|
346
ao-tools/ao-sky-flash/srec_115200.bin
Normal file
346
ao-tools/ao-sky-flash/srec_115200.bin
Normal file
@@ -0,0 +1,346 @@
|
||||
S0130000666C6173683131353230302E73726563DA
|
||||
S31550000000033FFFF7821063209DE380011920000013
|
||||
S31550000010D2030000173FFFF79612E3E4AC07BFF890
|
||||
S31550000020D225800BD005800B133FFFC0900A0009E4
|
||||
S3155000003090122977D0230000E00320901B0800136C
|
||||
S31550000040C0232090D20320149E136018D225800B13
|
||||
S31550000050D005800B1300180090120009900A3FF04B
|
||||
S31550000060D0232014D20300001100003FD225800B6C
|
||||
S31550000070D405800B901223FF940A800813043E0087
|
||||
S3155000008094128009D4230000D003C0009A13601C38
|
||||
S31550000090D025800BD205800B11004000902A4008D5
|
||||
S315500000A0D023C000D403400011000040D425800B5B
|
||||
S315500000B0D205800BA00C204092124008A13C20068D
|
||||
S315500000C011140005E02A2180D2234000B8102000E8
|
||||
S315500000D0400004C890102005130004004000017031
|
||||
S315500000E090102001213FFFF84000036F90058010CB
|
||||
S315500000F0A014200A92058010B6102000B4102000DB
|
||||
S31550000100A6102000AE10200096102000D00A400005
|
||||
S3155000011080A2202002800006920260019602E00131
|
||||
S3155000012080A2E06324BFFFFBD00A40009810200055
|
||||
S3155000013080A3000B1680000F113FFFF89012200A83
|
||||
S31550000140940580089810000B912CE0029002001341
|
||||
S31550000150D20A8000912A200190020009A6023FD0BF
|
||||
S3155000016098833FFF12BFFFF99402A0019810000B2D
|
||||
S315500001709205800C113FFFF894024008961020001B
|
||||
S315500001809002800BD20A201680A2602002800007BF
|
||||
S3155000019080A2E0009602E00180A2E06304BFFFFA6D
|
||||
S315500001A09002800B80A2E0000480000F113FFFF800
|
||||
S315500001B09205800C9012201698024008900DE0FF90
|
||||
S315500001C0932A2002D40B000092024008932A600121
|
||||
S315500001D094028009AE02BFD09682FFFF12BFFFF88D
|
||||
S315500001E098032001133FFFF794126384921263869B
|
||||
S315500001F090078009400001A89207800A80A220003B
|
||||
S3155000020002800122153FFFF79012A386D21780086D
|
||||
S3155000021080A2601C0280010E9012A384113FFFF74A
|
||||
S31550000220961223849012238692102037D237800854
|
||||
S31550000230941020B5D437800B900F2001213FFFF743
|
||||
S31550000240AB2A201392142386110001E1D41780099A
|
||||
S3155000025090122154A2142384A4054008D617801165
|
||||
S3155000026090100012400002289210202080A22000F8
|
||||
S31550000270028000CA11140005B0100010B21000110F
|
||||
S31550000280A0102000113FFFEA80A420000280000445
|
||||
S315500002909212225511000015921221AA912A60102D
|
||||
S315500002A0A8162386A3322010D617801990048010E2
|
||||
S315500002B0D417801492102002400001DA98100011D1
|
||||
S315500002C080A22000028000B511140005D0148010C1
|
||||
S315500002D080A44008128000B0A004200280A420030D
|
||||
S315500002E004BFFFEA113FFFEA213FFFF79214238430
|
||||
S315500002F0D617800990100012D417801440000202BD
|
||||
S3155000030092102020170001DF9012E3F8D20200006D
|
||||
S31550000310941423E4D225800AA01423E0C02580102B
|
||||
S31550000320D005800A80A23FFF228000BB9012E3FCDA
|
||||
S31550000330113FFFF7A2122384A0122386110001C198
|
||||
S31550000340D417801090122154D61780119210202065
|
||||
S31550000350400001ED90054008110001E9D4178010C6
|
||||
S3155000036090122154D617801192102020400001E699
|
||||
S3155000037090054008110001F1D417801090122154B5
|
||||
S31550000380D617801192102020400001DF90054008BA
|
||||
S31550000390133FFFF8D00D800980A220421280000B37
|
||||
S315500003A0A410001392058009D00A600180A220494A
|
||||
S315500003B03280000721140005D00A600280A2204E28
|
||||
S315500003C022800008D417801021140005400002F640
|
||||
S315500003D09014202890142028400002F39E03FCF02D
|
||||
S315500003E090102000D6178011400001C792100013BC
|
||||
S315500003F080A2200022800069111400051114000506
|
||||
S31550000400400002E990122030400000BE010000007A
|
||||
S3155000041011000007A81223FFB010001480A4801406
|
||||
S31550000420148000031300000892100012113FFFF8C9
|
||||
S315500004304000036F90058008A2922000028000734E
|
||||
S31550000440A010200080A40011B40680111A8000214B
|
||||
S31550000450A4248011333FFFF71100003FAA1223FF57
|
||||
S31550000460BA1663849810001092102000A00420023F
|
||||
S31550000470173FFFF89005800CD40A000B932A6008AA
|
||||
S315500004809803200180A3001006BFFFFB9212400A7A
|
||||
S31550000490912A60109932201080A300150280000A1C
|
||||
S315500004A090166386D417800892102002D617801DA6
|
||||
S315500004B04000015C9010001B80A220000280003793
|
||||
S315500004C01114000580A400110ABFFFE7B606E0022A
|
||||
S315500004D0900E801880A0000892603FFF80A0001206
|
||||
S315500004E090603FFF809240080280000680A68013ED
|
||||
S315500004F011140005400002AC9012203080A68013E3
|
||||
S3155000050012BFFFC880A480149410200080A28013CC
|
||||
S315500005101680000996102000D21280009132600891
|
||||
S315500005209002C0089402A00280A2801306BFFFFB6F
|
||||
S3155000053096020009920AE0FF900DE0FF80A2400863
|
||||
S31550000540028000041114000510BFFFA49012203839
|
||||
S31550000550153FFFF79012A3E0D205800880A26001F4
|
||||
S31550000560128000109212A3849012A386D41780088A
|
||||
S3155000057098102A01D6178009110001DF901223FC2A
|
||||
S31550000580400001289210200280A22000128000060E
|
||||
S31550000590211400051114000510BFFF909012202061
|
||||
S315500005A02114000540000280901420404000027E35
|
||||
S315500005B090142040901020F013080013D0302000E3
|
||||
S315500005C092126020D012400015200000900A3FFE83
|
||||
S315500005D0D03240009612A04C90102010D022C0006D
|
||||
S315500005E0D802C0009412A0B813080004D822800084
|
||||
S315500005F092126014D0024000900A3FFED022400072
|
||||
S3155000060010800000010000001114000510BFFF7398
|
||||
S3155000061090122048D20200001102807FD225800A13
|
||||
S31550000620901223FFD0258010D205800AD005801065
|
||||
S3155000063080A2400832BFFF40113FFFF790102001C3
|
||||
S31550000640D025801010BFFF3C113FFFF7D61780080A
|
||||
S31550000650921AE0B980A0000994603FFF901AE0DA40
|
||||
S3155000066080A0000892603FFF8092800902BFFEED95
|
||||
S31550000670113FFFF780A2E0DA22BFFEF0B81020014A
|
||||
S3155000068010BFFEEF900F20012114000540000246D6
|
||||
S315500006909014205030BFFFFE01000000941020F04F
|
||||
S315500006A019080013D430200098132020170800048E
|
||||
S315500006B0D41300008212E01417200000940ABFFEE3
|
||||
S315500006C09A12E0B8D4330000900A20FF9612E04CFC
|
||||
S315500006D0D222C00080A22001128000070100000033
|
||||
S315500006E0D202C000D2234000D0004000900A3FFE04
|
||||
S315500006F0D02040000100000081C3E0080100000046
|
||||
S315500007001308000492126014D00240009012200187
|
||||
S31550000710D02240000100000081C3E0080100000023
|
||||
S315500007209C03BF90D233A066D213A06696100008E1
|
||||
S31550000730920A6080D012000080A0000994402000E8
|
||||
S31550000740900A208080A000089240200080A2400A93
|
||||
S315500007500280000D01000000D012C000808A2020C7
|
||||
S315500007601280000901000000D012C000900A2080BB
|
||||
S3155000077080A000089240200080A2400A12BFFFF7D6
|
||||
S3155000078001000000D012C000900A208080A000080E
|
||||
S3155000079090402000901A000A901A20010100000093
|
||||
S315500007A081C3E0089C23BF909DE3BF90B20E60FFCB
|
||||
S315500007B0A0100018C027BFF480A660BA14800006A7
|
||||
S315500007C080A660DA80A660B916800006153FFFEA5B
|
||||
S315500007D080A660B512800027B0102000153FFFEAB2
|
||||
S315500007E096102AAA9412A2AA13000015D432C00059
|
||||
S315500007F09212615598102554113FFFE0D2330000F4
|
||||
S3155000080090122080D032C000D432C000D2330000C3
|
||||
S315500008101100000C2300003F90122030130000C33B
|
||||
S31550000820D0340000A412613FB21463FF921463FFE8
|
||||
S315500008307FFFFFBC90100010B0100008D007BFF427
|
||||
S3155000084090022001D027BFF4D214000080A64009A0
|
||||
S315500008500280000880A620011280000601000000D8
|
||||
S31550000860D007BFF480A2001208BFFFF2921463FFB4
|
||||
S31550000870D007BFF4130000C39212613F80A2400814
|
||||
S3155000088094403FFFB00E000A0100000081C7E00807
|
||||
S3155000089081E80000153FFFEA98102AAA9412A2AAEE
|
||||
S315500008A0D4330000170000159612E155153FFFE4AA
|
||||
S315500008B0D63025549412A090D4330000D61022007E
|
||||
S315500008C09A100008960AE0FFD6320000901030F0D9
|
||||
S315500008D0D0330000D613400098100009901AE03724
|
||||
S315500008E080A0000894603FFF901AE01C80A000088A
|
||||
S315500008F092603FFF8092800912800007821020008C
|
||||
S3155000090080A2E0C20280000480A2E0201280004251
|
||||
S3155000091090102000113FFFEA94102AAA901222AAA2
|
||||
S31550000920D03280001300001592126155113FFFE43A
|
||||
S31550000930D230255490122090D0328000D21022020C
|
||||
S31550000940901030F0920A60FFD2330000D03280000F
|
||||
S31550000950D013400080A220370280002A80A2202097
|
||||
S31550000960D41300000280001D912AA0109002BF47A8
|
||||
S31550000970912A201091322010952AA01080A2200290
|
||||
S315500009809532A01092602000901AA0B580A0000861
|
||||
S31550000990920A600190603FFF809240083280000BBF
|
||||
S315500009A08210200180A2A0B90280000A80A2A0BABB
|
||||
S315500009B00280000880A2A0EF0280000680A2A0DA82
|
||||
S315500009C02280000282102001108000139010000136
|
||||
S315500009D010BFFFFE821020019132201080A220EE1F
|
||||
S315500009E012BFFFE49002BF479010201CD033400046
|
||||
S315500009F0921020B9D233000010BFFFDD941020B9F9
|
||||
S31550000A00D413000080A2A03402BFFFF880A2202099
|
||||
S31550000A1030BFFFD50100000081C3E008010000008F
|
||||
S31550000A209DE3BF88B72EE010C037BFF4B736E0104D
|
||||
S31550000A30A0100018C027BFEC80A6E0BA14800006AC
|
||||
S31550000A4080A6E0DA80A6E0B916800006113FFFEADC
|
||||
S31550000A5080A6E0B512800023B0102000113FFFEAB7
|
||||
S31550000A6094102AAA901222AAD032800013000015A0
|
||||
S31550000A7092126155113FFFE8D2302554901220A0B2
|
||||
S31550000A80D0328000F837BFF2D017BFF2130000C340
|
||||
S31550000A90D0340000B612613FD217BFF27FFFFF215C
|
||||
S31550000AA090100010B0100008D007BFEC9002200143
|
||||
S31550000AB0D027BFECD2140000D017BFF280A2000995
|
||||
S31550000AC00280000880A62001128000060100000066
|
||||
S31550000AD0D007BFEC80A2001B08BFFFF0010000004A
|
||||
S31550000AE0D007BFEC130000C39212613F80A24008AA
|
||||
S31550000AF094403FFFB00E000A0100000081C7E00895
|
||||
S31550000B0081E800009DE3BF9811140005D4022150DE
|
||||
S31550000B10A210200080A4400AA410001B9A102000A6
|
||||
S31550000B20A0102000A610200116800012961020005A
|
||||
S31550000B30912EA010B5322010932EE0109810000A76
|
||||
S31550000B40111400059332601094122060D002A00C4C
|
||||
S31550000B5080A2001A22800048D002A0109602E0011E
|
||||
S31550000B6080A2C00C06BFFFFA9402A05011140005D3
|
||||
S31550000B70D202215080A2C009028000449010200168
|
||||
S31550000B8080A6200008800016912AE0029002000BF1
|
||||
S31550000B9013140005B4126060992A20049E10200197
|
||||
S31550000BA0912C200290020010912A200290030008F6
|
||||
S31550000BB09002001AD4022004A2046001D202200836
|
||||
S31550000BC080A4400A932BC0099A034009A0643FFFB2
|
||||
S31550000BD080A6000D18BFFFF4912C200280A660005D
|
||||
S31550000BE00480001F932AE0029202400BB60CA0FF2D
|
||||
S31550000BF011140005A4122060B52A60049210001B3F
|
||||
S31550000C007FFFFEEA90100018932C200292024010AB
|
||||
S31550000C10932A6002920680099402401280A2200014
|
||||
S31550000C2002800013A2046001D202A0089010200195
|
||||
S31550000C30912A000980A64008B00600080680000ADE
|
||||
S31550000C40B2264008D002A00480A44008A0643FFF0A
|
||||
S31550000C5080A6600014BFFFEB9210001B1080000BA3
|
||||
S31550000C6090100013108000099010200110BFFFFC57
|
||||
S31550000C70A610200080A2000932BFFFBA9602E001FA
|
||||
S31550000C8010BFFFBC1114000581C7E00891E80008A9
|
||||
S31550000C9013140005D40A61801708000013000013CE
|
||||
S31550000CA09212630C952AA00294028009D202C00ABD
|
||||
S31550000CB0941000089132601F80A22001028000002B
|
||||
S31550000CC09132601D808A20012280000490102001FC
|
||||
S31550000CD0C022800030800002D022800081C3E0080C
|
||||
S31550000CE09010000911140005D20A21801508000041
|
||||
S31550000CF0110000139012230C932A600292024008AE
|
||||
S31550000D00D20280099132601F80A220010280000029
|
||||
S31550000D100100000081C3E008901000099DE3BF90D8
|
||||
S31550000D2011140005E00A2180B00E20FF11140005B1
|
||||
S31550000D3090122154B12E2002E2020018A12C20025A
|
||||
S31550000D40110000139012230CA00400087FFFFFD15E
|
||||
S31550000D509007BFF4D207BFF411060000932A601E15
|
||||
S31550000D60921240112308000092124008D2244010DB
|
||||
S31550000D707FFFFFC89007BFF4D207BFF411070000EA
|
||||
S31550000D80932A601E92124008D22440107FFFFFC162
|
||||
S31550000D909007BFF4D207BFF411030000932A601ED8
|
||||
S31550000DA092124008D22440107FFFFFBA9007BFF43A
|
||||
S31550000DB0D207BFF41104000090122003932A601E3C
|
||||
S31550000DC092124008D22440107FFFFFB29007BFF422
|
||||
S31550000DD0D207BFF411050000932A601E92124008F4
|
||||
S31550000DE0D22440107FFFFFC0010000000100000028
|
||||
S31550000DF081C7E00881E800009DE3BF90111400050B
|
||||
S31550000E00E00A218025080000110000139012230CDF
|
||||
S31550000E10A12C2002A00400087FFFFF9E9007BFF47C
|
||||
S31550000E20D207BFF411050000932A601E92124008A3
|
||||
S31550000E30D22480107FFFFF979007BFF4A2100008BE
|
||||
S31550000E40D007BFF427040000912A201E90120013E9
|
||||
S31550000E50D02480107FFFFF8F9007BFF4D207BFF4D6
|
||||
S31550000E6011040004932A601E92124008D224801066
|
||||
S31550000E707FFFFF889007BFF4D007BFF4A20C60FF36
|
||||
S31550000E80912A201E9012001190120013D024801027
|
||||
S31550000E907FFFFF95010000000100000081C7E008B8
|
||||
S31550000EA081E800009DE3BF9011140005D20A21800D
|
||||
S31550000EB02708000011000013932A60029012230C99
|
||||
S31550000EC09202400893326002AC100009AB2A6002CD
|
||||
S31550000ED0AE1000097FFFFF6F9007BFF4D007BFF435
|
||||
S31550000EE023030000912A201E90120011D024C01511
|
||||
S31550000EF07FFFFF7D0100000091322016A08A200F4F
|
||||
S31550000F0032800011A2102000A4100011A32DA002BF
|
||||
S31550000F107FFFFF609007BFF4D207BFF4932A601E8D
|
||||
S31550000F2092124012D224C0117FFFFF6F01000000C1
|
||||
S31550000F3091322016A08A200F02BFFFF60100000052
|
||||
S31550000F40A210200080A440101ABFFFE3A52DE00296
|
||||
S31550000F50290100007FFFFF4F9007BFF4D007BFF471
|
||||
S31550000F60A2046001912A201E90120014D024C012AF
|
||||
S31550000F707FFFFF5D01000000D02E0000808A20FF19
|
||||
S31550000F8002800006B006200180A440100ABFFFF27E
|
||||
S31550000F900100000030BFFFD00100000081C7E0080B
|
||||
S31550000FA081E800009DE3BF9011140005D20A21800C
|
||||
S31550000FB025080000D40E000011000013932A600289
|
||||
S31550000FC09012230C80A2A000028000849202400856
|
||||
S31550000FD0AD2A60109135A012A72A2002AA10000847
|
||||
S31550000FE0A81000137FFFFF2B9007BFF4D007BFF464
|
||||
S31550000FF021030000912A201E90120010D024801345
|
||||
S315500010007FFFFF3901000000900A200680A22006CB
|
||||
S315500010100280001001000000A2100010A12D6002F5
|
||||
S315500010207FFFFF1C9007BFF4D207BFF4932A601EC0
|
||||
S3155000103092124011D22480107FFFFF2B0100000036
|
||||
S31550001040900A200680A2200612BFFFF6010000007B
|
||||
S315500010507FFFFF109007BFF4D007BFF4D20E0000F9
|
||||
S31550001060912A201E90120009D02480147FFFFF1E63
|
||||
S31550001070B0062001D00E000080A2200012BFFFDA79
|
||||
S31550001080010000009135A010D404800880A2A00071
|
||||
S315500010900680004C010000009132A01D808A20017C
|
||||
S315500010A00280004690102001C027BFF4D007BFF43D
|
||||
S315500010B013030000912A201E901200099335A010A8
|
||||
S315500010C0D0248009D404800980A2A0000680003470
|
||||
S315500010D0900AA00680A22006028000169135A01222
|
||||
S315500010E09A1000089E102001972A2002190300002A
|
||||
S315500010F09132A01D808A2001128000039210200098
|
||||
S315500011009210000F912A601E9012000CD024800B72
|
||||
S31550001110D404800B80A2A0000680001A900AA00674
|
||||
S3155000112080A2200612BFFFF49132A01DD227BFF431
|
||||
S315500011309132A01D808A200102800010901020015B
|
||||
S31550001140C027BFF4D007BFF49335A010912A201EB4
|
||||
S31550001150D0248009D404800980A2A00016800021E2
|
||||
S3155000116090100009D404800880A2A00006BFFFFE9C
|
||||
S31550001170010000003080001B10BFFFF3D027BFF4E2
|
||||
S31550001180912B6002D404800880A2A00006BFFFFE07
|
||||
S315500011900100000010BFFFE3900AA006901000095E
|
||||
S315500011A0D404800880A2A00006BFFFFE0100000004
|
||||
S315500011B010BFFFC9900AA00610BFFFBDD027BFF4CD
|
||||
S315500011C0D404800880A2A00006BFFFFE01000000E4
|
||||
S315500011D010BFFFB39132A01D10BFFFABAD2A6010F8
|
||||
S315500011E00100000081C7E00881E800009DE3BF9838
|
||||
S315500011F035140005F60EA180921000183500001324
|
||||
S31550001200B416A30CB72EE002B606C01A992EE010FB
|
||||
S31550001210B53320129B2EA002A210001AA610001958
|
||||
S315500012203B080000961020009410000DA410001AE0
|
||||
S31550001230F807400D80A7200006800064B137201DB6
|
||||
S31550001240B00E200180A00018B0603FFFB12E201EC6
|
||||
S3155000125033030000B0160019F027400AF807400A79
|
||||
S3155000126080A7200006800052B1372016B48E200F7A
|
||||
S315500012701280001A82102000B3332012310003D09E
|
||||
S31550001280901000199E162240B32E600237030000BC
|
||||
S3155000129080A0400F8200600118800053B0102000DB
|
||||
S315500012A0B137201DB00E200180A00018B0603FFF5E
|
||||
S315500012B0B12E201EB016001BF0274019F807401912
|
||||
S315500012C080A7200006800033B1372016B48E200F39
|
||||
S315500012D002BFFFF180A0400F8210200080A0401A6C
|
||||
S315500012E01ABFFFD4B1332012B72E20029010001827
|
||||
S315500012F09E10001BA0100018F807401B80A7200066
|
||||
S315500013000680001DB137201DB00E200180A00018A8
|
||||
S31550001310B0603FFFB12E201E33010000B0160019F9
|
||||
S31550001320F027400FF807400F80A720000680000CDA
|
||||
S31550001330B12C20029602E001F82A400080A2C01388
|
||||
S3155000134002800029B010000B8200600180A0401A74
|
||||
S315500013500ABFFFEA9202600130BFFFB6F807401895
|
||||
S3155000136080A7200006BFFFFE0100000010BFFFF35C
|
||||
S315500013709602E001B12A2002F807401880A7200003
|
||||
S3155000138006BFFFFE0100000010BFFFE0B137201D71
|
||||
S31550001390B12A2002F807401880A7200006BFFFFE9A
|
||||
S315500013A00100000010BFFFCAB1372016B12CA002B1
|
||||
S315500013B0F807401880A7200006BFFFFE0100000076
|
||||
S315500013C010BFFFABB1372016B12C6002F80740189A
|
||||
S315500013D080A7200006BFFFFE0100000010BFFF9946
|
||||
S315500013E0B137201D0100000081C7E00881E80000E8
|
||||
S315500013F09DE3BF987FFFFE81B00E20FF7FFFFE4822
|
||||
S3155000140081E800000100000000000000000000001C
|
||||
S315500014100000000000000000000000000000000076
|
||||
S315500014204572726F723400004572726F72330000EB
|
||||
S315500014304F4B0000000000004572726F7232000080
|
||||
S31550001440454E4400000000004572726F7235000030
|
||||
S315500014504572726F723100000000000000000000FB
|
||||
S3155000146000000000000000010000000E00000037E0
|
||||
S31550001470000000B500004000000000030000000D11
|
||||
S3155000148000000037000000B5000080000000000496
|
||||
S315500014900000000F00000037000000B500010000FA
|
||||
S315500014A00000000B0000001000000037000000B5DF
|
||||
S315500014B00000000000000007000000100000001CA3
|
||||
S315500014C0000000B900007000000000080000000F86
|
||||
S315500014D00000001C000000B9000078000000000A5F
|
||||
S315500014E00000000D0000001C000000B900007C0048
|
||||
S315500014F00000000B0000000E0000001C000000B9A8
|
||||
S31550001500000000000000000F000000100000001C4A
|
||||
S31550001510000000DA00007000000000100000000F0C
|
||||
S315500015200000001C000000DA0000700000000012ED
|
||||
S315500015300000000D0000001C000000DA00007000E2
|
||||
S31550001540000000130000000E0000001C000000DA2E
|
||||
S3155000155000000003000001AA000000D50000006A48
|
||||
S3155000156000000035000000230000001100000008B4
|
||||
S3115000157000000000000000000000000019
|
||||
S70550000000AA
|
346
ao-tools/ao-sky-flash/srec_9600.bin
Normal file
346
ao-tools/ao-sky-flash/srec_9600.bin
Normal file
@@ -0,0 +1,346 @@
|
||||
S0190000666C6173685F3139646F74355F393630302E737265638A
|
||||
S31550000000033FFFF7821063209DE380011920000013
|
||||
S31550000010D2030000173FFFF79612E3E4AC07BFF890
|
||||
S31550000020D225800BD005800B133FFFC0900A0009E4
|
||||
S3155000003090122977D0230000E00320901B0800136C
|
||||
S31550000040C0232090D20320149E136018D225800B13
|
||||
S31550000050D005800B1300180090120009900A3FF04B
|
||||
S31550000060D0232014D20300001100003FD225800B6C
|
||||
S31550000070D405800B901223FF940A800813043E0087
|
||||
S3155000008094128009D4230000D003C0009A13601C38
|
||||
S31550000090D025800BD205800B11004000902A4008D5
|
||||
S315500000A0D023C000D403400011000040D425800B5B
|
||||
S315500000B0D205800BA00C204092124008A13C20068D
|
||||
S315500000C011140005E02A2180D2234000B8102000E8
|
||||
S315500000D0400004C890102001130004004000017035
|
||||
S315500000E090102001213FFFF84000036F90058010CB
|
||||
S315500000F0A014200A92058010B6102000B4102000DB
|
||||
S31550000100A6102000AE10200096102000D00A400005
|
||||
S3155000011080A2202002800006920260019602E00131
|
||||
S3155000012080A2E06324BFFFFBD00A40009810200055
|
||||
S3155000013080A3000B1680000F113FFFF89012200A83
|
||||
S31550000140940580089810000B912CE0029002001341
|
||||
S31550000150D20A8000912A200190020009A6023FD0BF
|
||||
S3155000016098833FFF12BFFFF99402A0019810000B2D
|
||||
S315500001709205800C113FFFF894024008961020001B
|
||||
S315500001809002800BD20A201680A2602002800007BF
|
||||
S3155000019080A2E0009602E00180A2E06304BFFFFA6D
|
||||
S315500001A09002800B80A2E0000480000F113FFFF800
|
||||
S315500001B09205800C9012201698024008900DE0FF90
|
||||
S315500001C0932A2002D40B000092024008932A600121
|
||||
S315500001D094028009AE02BFD09682FFFF12BFFFF88D
|
||||
S315500001E098032001133FFFF794126384921263869B
|
||||
S315500001F090078009400001A89207800A80A220003B
|
||||
S3155000020002800122153FFFF79012A386D21780086D
|
||||
S3155000021080A2601C0280010E9012A384113FFFF74A
|
||||
S31550000220961223849012238692102037D237800854
|
||||
S31550000230941020B5D437800B900F2001213FFFF743
|
||||
S31550000240AB2A201392142386110001E1D41780099A
|
||||
S3155000025090122154A2142384A4054008D617801165
|
||||
S3155000026090100012400002289210202080A22000F8
|
||||
S31550000270028000CA11140005B0100010B21000110F
|
||||
S31550000280A0102000113FFFEA80A420000280000445
|
||||
S315500002909212225511000015921221AA912A60102D
|
||||
S315500002A0A8162386A3322010D617801990048010E2
|
||||
S315500002B0D417801492102002400001DA98100011D1
|
||||
S315500002C080A22000028000B511140005D0148010C1
|
||||
S315500002D080A44008128000B0A004200280A420030D
|
||||
S315500002E004BFFFEA113FFFEA213FFFF79214238430
|
||||
S315500002F0D617800990100012D417801440000202BD
|
||||
S3155000030092102020170001DF9012E3F8D20200006D
|
||||
S31550000310941423E4D225800AA01423E0C02580102B
|
||||
S31550000320D005800A80A23FFF228000BB9012E3FCDA
|
||||
S31550000330113FFFF7A2122384A0122386110001C198
|
||||
S31550000340D417801090122154D61780119210202065
|
||||
S31550000350400001ED90054008110001E9D4178010C6
|
||||
S3155000036090122154D617801192102020400001E699
|
||||
S3155000037090054008110001F1D417801090122154B5
|
||||
S31550000380D617801192102020400001DF90054008BA
|
||||
S31550000390133FFFF8D00D800980A220421280000B37
|
||||
S315500003A0A410001392058009D00A600180A220494A
|
||||
S315500003B03280000721140005D00A600280A2204E28
|
||||
S315500003C022800008D417801021140005400002F640
|
||||
S315500003D09014202890142028400002F39E03FCF02D
|
||||
S315500003E090102000D6178011400001C792100013BC
|
||||
S315500003F080A2200022800069111400051114000506
|
||||
S31550000400400002E990122030400000BE010000007A
|
||||
S3155000041011000007A81223FFB010001480A4801406
|
||||
S31550000420148000031300000892100012113FFFF8C9
|
||||
S315500004304000036F90058008A2922000028000734E
|
||||
S31550000440A010200080A40011B40680111A8000214B
|
||||
S31550000450A4248011333FFFF71100003FAA1223FF57
|
||||
S31550000460BA1663849810001092102000A00420023F
|
||||
S31550000470173FFFF89005800CD40A000B932A6008AA
|
||||
S315500004809803200180A3001006BFFFFB9212400A7A
|
||||
S31550000490912A60109932201080A300150280000A1C
|
||||
S315500004A090166386D417800892102002D617801DA6
|
||||
S315500004B04000015C9010001B80A220000280003793
|
||||
S315500004C01114000580A400110ABFFFE7B606E0022A
|
||||
S315500004D0900E801880A0000892603FFF80A0001206
|
||||
S315500004E090603FFF809240080280000680A68013ED
|
||||
S315500004F011140005400002AC9012203080A68013E3
|
||||
S3155000050012BFFFC880A480149410200080A28013CC
|
||||
S315500005101680000996102000D21280009132600891
|
||||
S315500005209002C0089402A00280A2801306BFFFFB6F
|
||||
S3155000053096020009920AE0FF900DE0FF80A2400863
|
||||
S31550000540028000041114000510BFFFA49012203839
|
||||
S31550000550153FFFF79012A3E0D205800880A26001F4
|
||||
S31550000560128000109212A3849012A386D41780088A
|
||||
S3155000057098102A01D6178009110001DF901223FC2A
|
||||
S31550000580400001289210200280A22000128000060E
|
||||
S31550000590211400051114000510BFFF909012202061
|
||||
S315500005A02114000540000280901420404000027E35
|
||||
S315500005B090142040901020F013080013D0302000E3
|
||||
S315500005C092126020D012400015200000900A3FFE83
|
||||
S315500005D0D03240009612A04C90102010D022C0006D
|
||||
S315500005E0D802C0009412A0B813080004D822800084
|
||||
S315500005F092126014D0024000900A3FFED022400072
|
||||
S3155000060010800000010000001114000510BFFF7398
|
||||
S3155000061090122048D20200001102807FD225800A13
|
||||
S31550000620901223FFD0258010D205800AD005801065
|
||||
S3155000063080A2400832BFFF40113FFFF790102001C3
|
||||
S31550000640D025801010BFFF3C113FFFF7D61780080A
|
||||
S31550000650921AE0B980A0000994603FFF901AE0DA40
|
||||
S3155000066080A0000892603FFF8092800902BFFEED95
|
||||
S31550000670113FFFF780A2E0DA22BFFEF0B81020014A
|
||||
S3155000068010BFFEEF900F20012114000540000246D6
|
||||
S315500006909014205030BFFFFE01000000941020F04F
|
||||
S315500006A019080013D430200098132020170800048E
|
||||
S315500006B0D41300008212E01417200000940ABFFEE3
|
||||
S315500006C09A12E0B8D4330000900A20FF9612E04CFC
|
||||
S315500006D0D222C00080A22001128000070100000033
|
||||
S315500006E0D202C000D2234000D0004000900A3FFE04
|
||||
S315500006F0D02040000100000081C3E0080100000046
|
||||
S315500007001308000492126014D00240009012200187
|
||||
S31550000710D02240000100000081C3E0080100000023
|
||||
S315500007209C03BF90D233A066D213A06696100008E1
|
||||
S31550000730920A6080D012000080A0000994402000E8
|
||||
S31550000740900A208080A000089240200080A2400A93
|
||||
S315500007500280000D01000000D012C000808A2020C7
|
||||
S315500007601280000901000000D012C000900A2080BB
|
||||
S3155000077080A000089240200080A2400A12BFFFF7D6
|
||||
S3155000078001000000D012C000900A208080A000080E
|
||||
S3155000079090402000901A000A901A20010100000093
|
||||
S315500007A081C3E0089C23BF909DE3BF90B20E60FFCB
|
||||
S315500007B0A0100018C027BFF480A660BA14800006A7
|
||||
S315500007C080A660DA80A660B916800006153FFFEA5B
|
||||
S315500007D080A660B512800027B0102000153FFFEAB2
|
||||
S315500007E096102AAA9412A2AA13000015D432C00059
|
||||
S315500007F09212615598102554113FFFE0D2330000F4
|
||||
S3155000080090122080D032C000D432C000D2330000C3
|
||||
S315500008101100000C2300003F90122030130000C33B
|
||||
S31550000820D0340000A412613FB21463FF921463FFE8
|
||||
S315500008307FFFFFBC90100010B0100008D007BFF427
|
||||
S3155000084090022001D027BFF4D214000080A64009A0
|
||||
S315500008500280000880A620011280000601000000D8
|
||||
S31550000860D007BFF480A2001208BFFFF2921463FFB4
|
||||
S31550000870D007BFF4130000C39212613F80A2400814
|
||||
S3155000088094403FFFB00E000A0100000081C7E00807
|
||||
S3155000089081E80000153FFFEA98102AAA9412A2AAEE
|
||||
S315500008A0D4330000170000159612E155153FFFE4AA
|
||||
S315500008B0D63025549412A090D4330000D61022007E
|
||||
S315500008C09A100008960AE0FFD6320000901030F0D9
|
||||
S315500008D0D0330000D613400098100009901AE03724
|
||||
S315500008E080A0000894603FFF901AE01C80A000088A
|
||||
S315500008F092603FFF8092800912800007821020008C
|
||||
S3155000090080A2E0C20280000480A2E0201280004251
|
||||
S3155000091090102000113FFFEA94102AAA901222AAA2
|
||||
S31550000920D03280001300001592126155113FFFE43A
|
||||
S31550000930D230255490122090D0328000D21022020C
|
||||
S31550000940901030F0920A60FFD2330000D03280000F
|
||||
S31550000950D013400080A220370280002A80A2202097
|
||||
S31550000960D41300000280001D912AA0109002BF47A8
|
||||
S31550000970912A201091322010952AA01080A2200290
|
||||
S315500009809532A01092602000901AA0B580A0000861
|
||||
S31550000990920A600190603FFF809240083280000BBF
|
||||
S315500009A08210200180A2A0B90280000A80A2A0BABB
|
||||
S315500009B00280000880A2A0EF0280000680A2A0DA82
|
||||
S315500009C02280000282102001108000139010000136
|
||||
S315500009D010BFFFFE821020019132201080A220EE1F
|
||||
S315500009E012BFFFE49002BF479010201CD033400046
|
||||
S315500009F0921020B9D233000010BFFFDD941020B9F9
|
||||
S31550000A00D413000080A2A03402BFFFF880A2202099
|
||||
S31550000A1030BFFFD50100000081C3E008010000008F
|
||||
S31550000A209DE3BF88B72EE010C037BFF4B736E0104D
|
||||
S31550000A30A0100018C027BFEC80A6E0BA14800006AC
|
||||
S31550000A4080A6E0DA80A6E0B916800006113FFFEADC
|
||||
S31550000A5080A6E0B512800023B0102000113FFFEAB7
|
||||
S31550000A6094102AAA901222AAD032800013000015A0
|
||||
S31550000A7092126155113FFFE8D2302554901220A0B2
|
||||
S31550000A80D0328000F837BFF2D017BFF2130000C340
|
||||
S31550000A90D0340000B612613FD217BFF27FFFFF215C
|
||||
S31550000AA090100010B0100008D007BFEC9002200143
|
||||
S31550000AB0D027BFECD2140000D017BFF280A2000995
|
||||
S31550000AC00280000880A62001128000060100000066
|
||||
S31550000AD0D007BFEC80A2001B08BFFFF0010000004A
|
||||
S31550000AE0D007BFEC130000C39212613F80A24008AA
|
||||
S31550000AF094403FFFB00E000A0100000081C7E00895
|
||||
S31550000B0081E800009DE3BF9811140005D4022150DE
|
||||
S31550000B10A210200080A4400AA410001B9A102000A6
|
||||
S31550000B20A0102000A610200116800012961020005A
|
||||
S31550000B30912EA010B5322010932EE0109810000A76
|
||||
S31550000B40111400059332601094122060D002A00C4C
|
||||
S31550000B5080A2001A22800048D002A0109602E0011E
|
||||
S31550000B6080A2C00C06BFFFFA9402A05011140005D3
|
||||
S31550000B70D202215080A2C009028000449010200168
|
||||
S31550000B8080A6200008800016912AE0029002000BF1
|
||||
S31550000B9013140005B4126060992A20049E10200197
|
||||
S31550000BA0912C200290020010912A200290030008F6
|
||||
S31550000BB09002001AD4022004A2046001D202200836
|
||||
S31550000BC080A4400A932BC0099A034009A0643FFFB2
|
||||
S31550000BD080A6000D18BFFFF4912C200280A660005D
|
||||
S31550000BE00480001F932AE0029202400BB60CA0FF2D
|
||||
S31550000BF011140005A4122060B52A60049210001B3F
|
||||
S31550000C007FFFFEEA90100018932C200292024010AB
|
||||
S31550000C10932A6002920680099402401280A2200014
|
||||
S31550000C2002800013A2046001D202A0089010200195
|
||||
S31550000C30912A000980A64008B00600080680000ADE
|
||||
S31550000C40B2264008D002A00480A44008A0643FFF0A
|
||||
S31550000C5080A6600014BFFFEB9210001B1080000BA3
|
||||
S31550000C6090100013108000099010200110BFFFFC57
|
||||
S31550000C70A610200080A2000932BFFFBA9602E001FA
|
||||
S31550000C8010BFFFBC1114000581C7E00891E80008A9
|
||||
S31550000C9013140005D40A61801708000013000013CE
|
||||
S31550000CA09212630C952AA00294028009D202C00ABD
|
||||
S31550000CB0941000089132601F80A22001028000002B
|
||||
S31550000CC09132601D808A20012280000490102001FC
|
||||
S31550000CD0C022800030800002D022800081C3E0080C
|
||||
S31550000CE09010000911140005D20A21801508000041
|
||||
S31550000CF0110000139012230C932A600292024008AE
|
||||
S31550000D00D20280099132601F80A220010280000029
|
||||
S31550000D100100000081C3E008901000099DE3BF90D8
|
||||
S31550000D2011140005E00A2180B00E20FF11140005B1
|
||||
S31550000D3090122154B12E2002E2020018A12C20025A
|
||||
S31550000D40110000139012230CA00400087FFFFFD15E
|
||||
S31550000D509007BFF4D207BFF411060000932A601E15
|
||||
S31550000D60921240112308000092124008D2244010DB
|
||||
S31550000D707FFFFFC89007BFF4D207BFF411070000EA
|
||||
S31550000D80932A601E92124008D22440107FFFFFC162
|
||||
S31550000D909007BFF4D207BFF411030000932A601ED8
|
||||
S31550000DA092124008D22440107FFFFFBA9007BFF43A
|
||||
S31550000DB0D207BFF41104000090122003932A601E3C
|
||||
S31550000DC092124008D22440107FFFFFB29007BFF422
|
||||
S31550000DD0D207BFF411050000932A601E92124008F4
|
||||
S31550000DE0D22440107FFFFFC0010000000100000028
|
||||
S31550000DF081C7E00881E800009DE3BF90111400050B
|
||||
S31550000E00E00A218025080000110000139012230CDF
|
||||
S31550000E10A12C2002A00400087FFFFF9E9007BFF47C
|
||||
S31550000E20D207BFF411050000932A601E92124008A3
|
||||
S31550000E30D22480107FFFFF979007BFF4A2100008BE
|
||||
S31550000E40D007BFF427040000912A201E90120013E9
|
||||
S31550000E50D02480107FFFFF8F9007BFF4D207BFF4D6
|
||||
S31550000E6011040004932A601E92124008D224801066
|
||||
S31550000E707FFFFF889007BFF4D007BFF4A20C60FF36
|
||||
S31550000E80912A201E9012001190120013D024801027
|
||||
S31550000E907FFFFF95010000000100000081C7E008B8
|
||||
S31550000EA081E800009DE3BF9011140005D20A21800D
|
||||
S31550000EB02708000011000013932A60029012230C99
|
||||
S31550000EC09202400893326002AC100009AB2A6002CD
|
||||
S31550000ED0AE1000097FFFFF6F9007BFF4D007BFF435
|
||||
S31550000EE023030000912A201E90120011D024C01511
|
||||
S31550000EF07FFFFF7D0100000091322016A08A200F4F
|
||||
S31550000F0032800011A2102000A4100011A32DA002BF
|
||||
S31550000F107FFFFF609007BFF4D207BFF4932A601E8D
|
||||
S31550000F2092124012D224C0117FFFFF6F01000000C1
|
||||
S31550000F3091322016A08A200F02BFFFF60100000052
|
||||
S31550000F40A210200080A440101ABFFFE3A52DE00296
|
||||
S31550000F50290100007FFFFF4F9007BFF4D007BFF471
|
||||
S31550000F60A2046001912A201E90120014D024C012AF
|
||||
S31550000F707FFFFF5D01000000D02E0000808A20FF19
|
||||
S31550000F8002800006B006200180A440100ABFFFF27E
|
||||
S31550000F900100000030BFFFD00100000081C7E0080B
|
||||
S31550000FA081E800009DE3BF9011140005D20A21800C
|
||||
S31550000FB025080000D40E000011000013932A600289
|
||||
S31550000FC09012230C80A2A000028000849202400856
|
||||
S31550000FD0AD2A60109135A012A72A2002AA10000847
|
||||
S31550000FE0A81000137FFFFF2B9007BFF4D007BFF464
|
||||
S31550000FF021030000912A201E90120010D024801345
|
||||
S315500010007FFFFF3901000000900A200680A22006CB
|
||||
S315500010100280001001000000A2100010A12D6002F5
|
||||
S315500010207FFFFF1C9007BFF4D207BFF4932A601EC0
|
||||
S3155000103092124011D22480107FFFFF2B0100000036
|
||||
S31550001040900A200680A2200612BFFFF6010000007B
|
||||
S315500010507FFFFF109007BFF4D007BFF4D20E0000F9
|
||||
S31550001060912A201E90120009D02480147FFFFF1E63
|
||||
S31550001070B0062001D00E000080A2200012BFFFDA79
|
||||
S31550001080010000009135A010D404800880A2A00071
|
||||
S315500010900680004C010000009132A01D808A20017C
|
||||
S315500010A00280004690102001C027BFF4D007BFF43D
|
||||
S315500010B013030000912A201E901200099335A010A8
|
||||
S315500010C0D0248009D404800980A2A0000680003470
|
||||
S315500010D0900AA00680A22006028000169135A01222
|
||||
S315500010E09A1000089E102001972A2002190300002A
|
||||
S315500010F09132A01D808A2001128000039210200098
|
||||
S315500011009210000F912A601E9012000CD024800B72
|
||||
S31550001110D404800B80A2A0000680001A900AA00674
|
||||
S3155000112080A2200612BFFFF49132A01DD227BFF431
|
||||
S315500011309132A01D808A200102800010901020015B
|
||||
S31550001140C027BFF4D007BFF49335A010912A201EB4
|
||||
S31550001150D0248009D404800980A2A00016800021E2
|
||||
S3155000116090100009D404800880A2A00006BFFFFE9C
|
||||
S31550001170010000003080001B10BFFFF3D027BFF4E2
|
||||
S31550001180912B6002D404800880A2A00006BFFFFE07
|
||||
S315500011900100000010BFFFE3900AA006901000095E
|
||||
S315500011A0D404800880A2A00006BFFFFE0100000004
|
||||
S315500011B010BFFFC9900AA00610BFFFBDD027BFF4CD
|
||||
S315500011C0D404800880A2A00006BFFFFE01000000E4
|
||||
S315500011D010BFFFB39132A01D10BFFFABAD2A6010F8
|
||||
S315500011E00100000081C7E00881E800009DE3BF9838
|
||||
S315500011F035140005F60EA180921000183500001324
|
||||
S31550001200B416A30CB72EE002B606C01A992EE010FB
|
||||
S31550001210B53320129B2EA002A210001AA610001958
|
||||
S315500012203B080000961020009410000DA410001AE0
|
||||
S31550001230F807400D80A7200006800064B137201DB6
|
||||
S31550001240B00E200180A00018B0603FFFB12E201EC6
|
||||
S3155000125033030000B0160019F027400AF807400A79
|
||||
S3155000126080A7200006800052B1372016B48E200F7A
|
||||
S315500012701280001A82102000B3332012310003D09E
|
||||
S31550001280901000199E162240B32E600237030000BC
|
||||
S3155000129080A0400F8200600118800053B0102000DB
|
||||
S315500012A0B137201DB00E200180A00018B0603FFF5E
|
||||
S315500012B0B12E201EB016001BF0274019F807401912
|
||||
S315500012C080A7200006800033B1372016B48E200F39
|
||||
S315500012D002BFFFF180A0400F8210200080A0401A6C
|
||||
S315500012E01ABFFFD4B1332012B72E20029010001827
|
||||
S315500012F09E10001BA0100018F807401B80A7200066
|
||||
S315500013000680001DB137201DB00E200180A00018A8
|
||||
S31550001310B0603FFFB12E201E33010000B0160019F9
|
||||
S31550001320F027400FF807400F80A720000680000CDA
|
||||
S31550001330B12C20029602E001F82A400080A2C01388
|
||||
S3155000134002800029B010000B8200600180A0401A74
|
||||
S315500013500ABFFFEA9202600130BFFFB6F807401895
|
||||
S3155000136080A7200006BFFFFE0100000010BFFFF35C
|
||||
S315500013709602E001B12A2002F807401880A7200003
|
||||
S3155000138006BFFFFE0100000010BFFFE0B137201D71
|
||||
S31550001390B12A2002F807401880A7200006BFFFFE9A
|
||||
S315500013A00100000010BFFFCAB1372016B12CA002B1
|
||||
S315500013B0F807401880A7200006BFFFFE0100000076
|
||||
S315500013C010BFFFABB1372016B12C6002F80740189A
|
||||
S315500013D080A7200006BFFFFE0100000010BFFF9946
|
||||
S315500013E0B137201D0100000081C7E00881E80000E8
|
||||
S315500013F09DE3BF987FFFFE81B00E20FF7FFFFE4822
|
||||
S3155000140081E800000100000000000000000000001C
|
||||
S315500014100000000000000000000000000000000076
|
||||
S315500014204572726F723400004572726F72330000EB
|
||||
S315500014304F4B0000000000004572726F7232000080
|
||||
S31550001440454E4400000000004572726F7235000030
|
||||
S315500014504572726F723100000000000000000000FB
|
||||
S3155000146000000000000000010000000E00000037E0
|
||||
S31550001470000000B500004000000000030000000D11
|
||||
S3155000148000000037000000B5000080000000000496
|
||||
S315500014900000000F00000037000000B500010000FA
|
||||
S315500014A00000000B0000001000000037000000B5DF
|
||||
S315500014B00000000000000007000000100000001CA3
|
||||
S315500014C0000000B900007000000000080000000F86
|
||||
S315500014D00000001C000000B9000078000000000A5F
|
||||
S315500014E00000000D0000001C000000B900007C0048
|
||||
S315500014F00000000B0000000E0000001C000000B9A8
|
||||
S31550001500000000000000000F000000100000001C4A
|
||||
S31550001510000000DA00007000000000100000000F0C
|
||||
S315500015200000001C000000DA0000700000000012ED
|
||||
S315500015300000000D0000001C000000DA00007000E2
|
||||
S31550001540000000130000000E0000001C000000DA2E
|
||||
S3155000155000000003000001FB000000FD0000007EBB
|
||||
S315500015600000003F0000002A000000150000000A9D
|
||||
S3115000157000000000000000000000000019
|
||||
S70550000000AA
|
Reference in New Issue
Block a user