From 26f2727eac0cca8930dde9d757bc094f73801859 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Sun, 2 Oct 2016 17:19:14 -0600 Subject: augment TeleDongle turn on script to support serial number on command line --- ao-bringup/turnon_teledongle | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'ao-bringup') diff --git a/ao-bringup/turnon_teledongle b/ao-bringup/turnon_teledongle index d17e2b96..0cdbde7a 100755 --- a/ao-bringup/turnon_teledongle +++ b/ao-bringup/turnon_teledongle @@ -28,8 +28,21 @@ echo "\t$PRODUCT_NAME v$VERSION powered from USB" echo "\t\twith ST-Link-V2 cabled to debug header" echo "\t\twith coax from UHF to frequency counter" echo -echo -n "$PRODUCT_NAME-$VERSION serial number: " -read SERIAL + +case $# in + 1) + SERIAL="$1" + echo "$PRODUCT-$VERSION serial number: $SERIAL" + ;; + 0) + echo -n "$PRODUCT-$VERSION serial number: " + read SERIAL + ;; + *) + echo "Usage: $0 " 1>&2 + exit 1; + ;; +esac BINARIES=$HOME/altusmetrumllc/Binaries -- cgit v1.2.3 From d46698a01ed4903d36635b34867bfc4bb8fbafc6 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 17 Nov 2016 22:17:20 -0800 Subject: ao-bringup: Improve EasyMini turnon and test scripts Wait less time before trying the test script. Have the test script wait for the device to appear. And then use colors to help make the results clear. Signed-off-by: Keith Packard --- ao-bringup/test-easymini | 83 +++++++++++++++++++++++++--------------------- ao-bringup/turnon_easymini | 2 +- 2 files changed, 46 insertions(+), 39 deletions(-) (limited to 'ao-bringup') diff --git a/ao-bringup/test-easymini b/ao-bringup/test-easymini index e11244d2..e9948da9 100755 --- a/ao-bringup/test-easymini +++ b/ao-bringup/test-easymini @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash VERSION=1.0 PRODUCT=EasyMini @@ -8,48 +8,55 @@ echo "$PRODUCT-v$VERSION Test Program" echo "Copyright 2014 by Keith Packard. Released under GPL v2" echo echo "Expectations:" -echo "\t$PRODUCT v$VERSION powered from USB" +echo -e "\t$PRODUCT v$VERSION powered from USB" echo -ret=1 -ao-list | while read product serial dev; do - case "$product" in - "$PRODUCT-v$VERSION") - - echo "Testing $product $serial $dev" - echo "" - - ./test-igniters "$dev" drogue main - echo "" - - echo "Testing baro sensor" - ../ao-tools/ao-test-baro/ao-test-baro --tty="$dev" - - case $? in - 0) - ;; - *) - echo "failed" - exit 1 - esac - echo"" +found=0 +while [ $found -eq 0 ]; do + (ao-list; echo END END END END) | while read product serial dev; do + case "$product" in + "$PRODUCT-v$VERSION") - FLASHSIZE=1048576 + found=1 + echo -e '\e[34m'Testing $product $serial $dev'\e[39m' + echo "" + + ./test-igniters "$dev" drogue main + echo "" - echo "Testing flash" - ../ao-tools/ao-test-flash/ao-test-flash --tty="$dev" "$FLASHSIZE" + echo "Testing baro sensor" + ../ao-tools/ao-test-baro/ao-test-baro --tty="$dev" - case $? in - 0) - ;; - *) - echo "failed" + if [ $? -ne 0 ]; then + echo -e '\e[31m'"$PRODUCT-$VERSION serial $serial failed"'\e[39m' exit 1 - esac - echo"" + fi + echo"" + + FLASHSIZE=1048576 - echo "$PRODUCT-v$VERSION" serial "$serial" is ready to ship - ret=0 - ;; - esac + echo "Testing flash" + ../ao-tools/ao-test-flash/ao-test-flash --tty="$dev" "$FLASHSIZE" + + if [ $? -ne 0 ]; then + echo -e '\e[31m'"$PRODUCT-$VERSION serial $serial failed"'\e[39m' + exit 1 + fi + + echo "" + + echo -e '\e[32m'"$PRODUCT-v$VERSION" serial "$serial" is ready to ship'\e[39m' + exit 0 + ;; + END) + exit 2 + ;; + esac + done + result=$? + if [ $result -ne 2 ]; then + exit $result + fi + echo 'No device, sleeping...' + sleep 1 done diff --git a/ao-bringup/turnon_easymini b/ao-bringup/turnon_easymini index 0b915c5e..4580790a 100755 --- a/ao-bringup/turnon_easymini +++ b/ao-bringup/turnon_easymini @@ -65,7 +65,7 @@ echo $USBLOAD $ALTOS_FILE $USBLOAD --serial=$SERIAL $ALTOS_FILE || exit 1 -sleep 2 +sleep 1 ./test-easymini -- cgit v1.2.3 From 4ae8eeb426ef60105ec8e53e289739e5a8ae5dae Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Wed, 25 Jan 2017 12:00:20 -0700 Subject: stop using /usr/share for binaries in remaining turnon scripts --- ao-bringup/turnon_teledongle_v0.2 | 2 +- ao-bringup/turnon_telemetrum | 2 +- ao-bringup/turnon_telemetrum_v1.1 | 49 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100755 ao-bringup/turnon_telemetrum_v1.1 (limited to 'ao-bringup') diff --git a/ao-bringup/turnon_teledongle_v0.2 b/ao-bringup/turnon_teledongle_v0.2 index 058e72ce..20c8798a 100755 --- a/ao-bringup/turnon_teledongle_v0.2 +++ b/ao-bringup/turnon_teledongle_v0.2 @@ -51,7 +51,7 @@ read FREQ CAL_VALUE=`nickle -e "floor(434.55 / $FREQ * 1186611 + 0.5)"` echo "Programming flash with cal value " $CAL_VALUE -$AOLOAD -D $programmer --cal $CAL_VALUE /usr/share/altos/teledongle-v0.2*.ihx $SERIAL +$AOLOAD -D $programmer --cal $CAL_VALUE ~/altusmetrumllc/Binaries/teledongle-v0.2*.ihx $SERIAL echo "Serial number "$SERIAL" programmed with RF cal value "$CAL_VALUE echo $SERIAL","$CAL_VALUE >> cal_values diff --git a/ao-bringup/turnon_telemetrum b/ao-bringup/turnon_telemetrum index 5c62c49d..e0648e66 100755 --- a/ao-bringup/turnon_telemetrum +++ b/ao-bringup/turnon_telemetrum @@ -48,7 +48,7 @@ $FLASH_STM ~/altusmetrumllc/Binaries/loaders/telemetrum-v$VERSION-*.elf || exit sleep 2 -$USBLOAD --serial=$SERIAL /usr/share/altos/telemetrum-v$VERSION*.ihx || exit 1 +$USBLOAD --serial=$SERIAL ~/altusmetrumllc/Binaries/telemetrum-v$VERSION*.ihx || exit 1 sleep 5 diff --git a/ao-bringup/turnon_telemetrum_v1.1 b/ao-bringup/turnon_telemetrum_v1.1 new file mode 100755 index 00000000..830d7ed9 --- /dev/null +++ b/ao-bringup/turnon_telemetrum_v1.1 @@ -0,0 +1,49 @@ +#!/bin/sh + +if [ -x ../ao-tools/ao-load/ao-load ]; then + AOLOAD=../ao-tools/ao-load/ao-load +elif [ -x /usr/bin/ao-load ]; then + AOLOAD=/usr/bin/ao-load +else + echo "Can't find ao-load! Aborting." + exit 1 +fi + +if [ -x ../ao-tools/ao-rawload/ao-rawload ]; then + RAWLOAD=../ao-tools/ao-rawload/ao-rawload +elif [ -x /usr/bin/ao-rawload ]; then + RAWLOAD=/usr/bin/ao-rawload +else + echo "Can't find ao-rawload! Aborting." + exit 1 +fi + +echo "TeleMetrum v1.1 Turn-On and Calibration Program" +echo "Copyright 2010 by Bdale Garbee. Released under GPL v2" +echo +echo "Expectations:" +echo "\tTeleMetrum v1.1 powered from USB" +echo "\t\twith TeleDongle (on /dev/ttyACM0) cabled to debug header" +echo "\t\twith coax from UHF to frequency counter" +echo +echo -n "TeleMetrum serial number: " +read SERIAL + +echo $RAWLOAD + +$RAWLOAD --device 100 -r ao_led_blink.ihx +echo "the red LED should be blinking" +sleep 5 + +$RAWLOAD --device 100 -r ao_radio_xmit.ihx +echo -n "Generating RF carrier. Please enter measured frequency: " +read FREQ + +CAL_VALUE=`nickle -e "floor(434.55 / $FREQ * 1186611 + 0.5)"` + +echo "Programming flash with cal value " $CAL_VALUE +$AOLOAD --device 100 --cal $CAL_VALUE \ + ~/altusmetrumllc/Binaries/telemetrum-v1.1*.ihx $SERIAL + +echo "Serial number "$SERIAL" programmed with RF cal value "$CAL_VALUE +echo "Unplug and replug USB, cu to the board, confirm freq and record power" -- cgit v1.2.3 From 2cfcc622c94d87cdbee099f457b7d63cb2fcbc71 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Wed, 25 Jan 2017 12:21:29 -0700 Subject: use elf, not ihx --- ao-bringup/turnon_telemetrum | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ao-bringup') diff --git a/ao-bringup/turnon_telemetrum b/ao-bringup/turnon_telemetrum index e0648e66..d40be953 100755 --- a/ao-bringup/turnon_telemetrum +++ b/ao-bringup/turnon_telemetrum @@ -48,7 +48,7 @@ $FLASH_STM ~/altusmetrumllc/Binaries/loaders/telemetrum-v$VERSION-*.elf || exit sleep 2 -$USBLOAD --serial=$SERIAL ~/altusmetrumllc/Binaries/telemetrum-v$VERSION*.ihx || exit 1 +$USBLOAD --serial=$SERIAL ~/altusmetrumllc/Binaries/telemetrum-v$VERSION-*.elf || exit 1 sleep 5 -- cgit v1.2.3 From a21c7b5156e428a4f8e029fdb652c8ca1c63823b Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 3 Feb 2017 06:47:32 +0100 Subject: ao-bringup: Allow serial number on turnon_easymega cmdline This makes it a bit quicker to do a batch of them. Signed-off-by: Keith Packard --- ao-bringup/turnon_easymega | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'ao-bringup') diff --git a/ao-bringup/turnon_easymega b/ao-bringup/turnon_easymega index 1e75e72f..b14ed2ab 100755 --- a/ao-bringup/turnon_easymega +++ b/ao-bringup/turnon_easymega @@ -1,5 +1,7 @@ #!/bin/sh +PRODUCT=EasyMega + if [ -x ../ao-tools/ao-flash/ao-flash-stm ]; then STMLOAD=../ao-tools/ao-flash/ao-flash-stm else @@ -17,16 +19,29 @@ fi VERSION=1.0 REPO=~/altusmetrumllc/Binaries -echo "EasyMega v$VERSION Turn-On and Calibration Program" +echo "$PRODUCT v$VERSION Turn-On and Calibration Program" echo "Copyright 2014 by Bdale Garbee. Released under GPL v2" echo echo "Expectations:" -echo "\tEasyMega v$VERSION" +echo "\t$PRODUCT v$VERSION" echo "\t\twith USB cable attached" echo "\t\twith ST-Link-V2 cabled to debug header" echo -echo -n "EasyMega-$VERSION serial number: " -read SERIAL + +case $# in + 1) + SERIAL="$1" + echo "$PRODUCT-$VERSION serial number: $SERIAL" + ;; + 0) + echo -n "$PRODUCT-$VERSION serial number: " + read SERIAL + ;; + *) + echo "Usage: $0 " 1>&2 + exit 1; + ;; +esac echo $STMLOAD @@ -38,14 +53,14 @@ $USBLOAD --serial=$SERIAL $REPO/easymega-v$VERSION*.elf || exit 1 sleep 2 -dev=`../ao-tools/ao-list/ao-list | awk '/EasyMega-v'"$VERSION"'/ { print $3; exit(0); }'` +dev=`../ao-tools/ao-list/ao-list | awk '/'"$PRODUCT"'-v'"$VERSION"'/ { print $3; exit(0); }'` case "$dev" in /dev/tty*) - echo "EasyMega found on $dev" + echo "$PRODUCT found on $dev" ;; *) - echo 'No EasyMega-v'"$VERSION"' found' + echo 'No '"$PRODUCT"'-v'"$VERSION"' found' exit 1 ;; esac -- cgit v1.2.3 From f43c3ad0c643f714c523e513bdc8585c6d5a4050 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 18 Feb 2017 22:46:29 -0800 Subject: ao-bringup: test-chaoskey needs to use the SerialNumber dmesg line I had a locally hacked kernel which was reporting the serial number along with the device name. Instead of depending on that, just look for the regular SerialNumber report which is in all kernel versions Signed-off-by: Keith Packard --- ao-bringup/test-chaoskey | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'ao-bringup') diff --git a/ao-bringup/test-chaoskey b/ao-bringup/test-chaoskey index b4c8164f..f64b1f84 100755 --- a/ao-bringup/test-chaoskey +++ b/ao-bringup/test-chaoskey @@ -12,7 +12,9 @@ case "$#" in serial="--serial $1" ;; 0) - snum=`dmesg | grep 'on chaoskey' | tail -1 | sed 's/.*chaoskey \([0-9a-f][0-9a-f]*\) on chaoskey.*/\1/'` + snum=`sudo dmesg | awk '/usb.*Product:/ { ck = index($0, "ChaosKey"); } + /usb.*SerialNumber:/ { if (ck) print $5; }' | tail -1` + case "$snum" in "") serial="" -- cgit v1.2.3 From d318b5cfc1a0312697739576d35cc1a190d88849 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Sat, 1 Apr 2017 12:23:24 -0600 Subject: first rough cut at skeleton of code for pnpservo .. altos boots and runs --- ao-bringup/turnon_telegps | 12 ++-- src/pnpservo-v1/ao_pins.h | 59 ++++++++++++++++ src/pnpservo-v1/ao_pnpservo.c | 36 ++++++++++ src/pnpservo-v1/flash-loader/.gitignore | 2 + src/pnpservo-v1/flash-loader/ao_pins.h | 37 ++++++++++ src/pnpservo-v1/lambda.ld | 117 ++++++++++++++++++++++++++++++++ 6 files changed, 258 insertions(+), 5 deletions(-) create mode 100644 src/pnpservo-v1/ao_pins.h create mode 100644 src/pnpservo-v1/ao_pnpservo.c create mode 100644 src/pnpservo-v1/flash-loader/.gitignore create mode 100644 src/pnpservo-v1/flash-loader/ao_pins.h create mode 100644 src/pnpservo-v1/lambda.ld (limited to 'ao-bringup') diff --git a/ao-bringup/turnon_telegps b/ao-bringup/turnon_telegps index ba97d503..b6da2898 100755 --- a/ao-bringup/turnon_telegps +++ b/ao-bringup/turnon_telegps @@ -1,10 +1,12 @@ #!/bin/sh -if [ -x /usr/bin/ao-flash-lpc ]; then - FLASH_LPC=/usr/bin/ao-flash-lpc +if [ -x ../ao-tools/ao-flash/ao-flash-lpc ]; then + FLASH_LPC=../ao-tools/ao-flash/ao-flash-lpc +elif [ -x /usr/bin/ao-flash-lpc ]; then + FLASH_LPC=/usr/bin/ao-flash-lpc else - echo "Can't find ao-flash-lpc! Aborting." - exit 1 + echo "Can't find ao-flash-lpc! Aborting." + exit 1 fi if [ -x /usr/bin/ao-usbload ]; then @@ -14,8 +16,8 @@ else exit 1 fi -VERSION=1.0 PRODUCT=TeleGPS +VERSION=1.0 BASE=`echo $PRODUCT | tr 'A-Z' 'a-z'` echo $FILE diff --git a/src/pnpservo-v1/ao_pins.h b/src/pnpservo-v1/ao_pins.h new file mode 100644 index 00000000..38f3d8e5 --- /dev/null +++ b/src/pnpservo-v1/ao_pins.h @@ -0,0 +1,59 @@ +/* + * Copyright © 2016 Keith Packard + * + * 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. + */ + +#ifndef _AO_PINS_H_ +#define _AO_PINS_H_ + +#define LED_PORT_ENABLE STM_RCC_AHBENR_IOPAEN +#define LED_PORT (&stm_gpioa) +#define LED_PIN_RED 9 +#define LED_PIN_GREEN 10 +#define AO_LED_RED (1 << LED_PIN_RED) +#define AO_LED_GREEN (1 << LED_PIN_GREEN) +#define AO_LED_PANIC AO_LED_RED +#define AO_CMD_LEN 128 +#define AO_LISP_POOL_TOTAL 3072 +#define AO_LISP_SAVE 1 +#define AO_STACK_SIZE 1024 + +/* need HSI active to write to flash */ +#define AO_NEED_HSI 1 + +#define LEDS_AVAILABLE (AO_LED_RED | AO_LED_GREEN) + +#define AO_POWER_MANAGEMENT 0 + +/* 48MHz clock based on USB */ +#define AO_HSI48 1 + +/* HCLK = 48MHz */ +#define AO_AHB_PRESCALER 1 +#define AO_RCC_CFGR_HPRE_DIV STM_RCC_CFGR_HPRE_DIV_1 + +/* APB = 48MHz */ +#define AO_APB_PRESCALER 1 +#define AO_RCC_CFGR_PPRE_DIV STM_RCC_CFGR_PPRE_DIV_1 + +#define HAS_USB 1 +#define AO_USB_DIRECTIO 0 +#define AO_PA11_PA12_RMP 1 +#define HAS_BEEP 0 + +#define IS_FLASH_LOADER 0 + +#endif /* _AO_PINS_H_ */ diff --git a/src/pnpservo-v1/ao_pnpservo.c b/src/pnpservo-v1/ao_pnpservo.c new file mode 100644 index 00000000..d4c2d495 --- /dev/null +++ b/src/pnpservo-v1/ao_pnpservo.c @@ -0,0 +1,36 @@ +/* + * Copyright © 2016 Keith Packard + * + * 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. + */ + +#include + +static const struct ao_cmds blink_cmds[] = { +// { lisp_cmd, "l\0Run lisp interpreter" }, + { 0, 0 } +}; + + +void main(void) +{ + ao_led_init(LEDS_AVAILABLE); + ao_clock_init(); + ao_task_init(); + ao_timer_init(); + ao_dma_init(); + ao_usb_init(); + ao_cmd_init(); + ao_cmd_register(blink_cmds); + ao_start_scheduler(); +} + + diff --git a/src/pnpservo-v1/flash-loader/.gitignore b/src/pnpservo-v1/flash-loader/.gitignore new file mode 100644 index 00000000..86ebb7f2 --- /dev/null +++ b/src/pnpservo-v1/flash-loader/.gitignore @@ -0,0 +1,2 @@ +ao_product.h +lambdakey* diff --git a/src/pnpservo-v1/flash-loader/ao_pins.h b/src/pnpservo-v1/flash-loader/ao_pins.h new file mode 100644 index 00000000..4b788f67 --- /dev/null +++ b/src/pnpservo-v1/flash-loader/ao_pins.h @@ -0,0 +1,37 @@ +/* + * Copyright © 2013 Keith Packard + * + * 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. + */ + +#ifndef _AO_PINS_H_ +#define _AO_PINS_H_ + +#include + +/* Pin 5 on debug connector */ + +#define AO_BOOT_PIN 1 +#define AO_BOOT_APPLICATION_GPIO stm_gpioa +#define AO_BOOT_APPLICATION_PIN 15 +#define AO_BOOT_APPLICATION_VALUE 1 +#define AO_BOOT_APPLICATION_MODE AO_EXTI_MODE_PULL_UP + +/* USB */ +#define HAS_USB 1 +#define AO_USB_DIRECTIO 0 +#define AO_PA11_PA12_RMP 1 + +#endif /* _AO_PINS_H_ */ diff --git a/src/pnpservo-v1/lambda.ld b/src/pnpservo-v1/lambda.ld new file mode 100644 index 00000000..5de65eb5 --- /dev/null +++ b/src/pnpservo-v1/lambda.ld @@ -0,0 +1,117 @@ +/* + * Copyright © 2012 Keith Packard + * + * 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. + */ + +MEMORY { + rom (rx) : ORIGIN = 0x08001000, LENGTH = 25K + flash (r): ORIGIN = 0x08007400, LENGTH = 3k + ram (!w) : ORIGIN = 0x20000000, LENGTH = 6k - 128 + stack (!w) : ORIGIN = 0x20000000 + 6k - 128, LENGTH = 128 +} + +INCLUDE registers.ld + +EXTERN (stm_interrupt_vector) + +SECTIONS { + /* + * Rom contents + */ + + .interrupt ORIGIN(ram) : AT (ORIGIN(rom)) { + __interrupt_start__ = .; + __interrupt_rom__ = ORIGIN(rom); + *(.interrupt) /* Interrupt vectors */ + __interrupt_end__ = .; + } > ram + + .text ORIGIN(rom) + 0x100 : { + __text_start__ = .; + + /* Ick. What I want is to specify the + * addresses of some global constants so + * that I can find them across versions + * of the application. I can't figure out + * how to make gnu ld do that, so instead + * we just load the two files that include + * these defines in the right order here and + * expect things to 'just work'. Don't change + * the contents of those files, ok? + */ + ao_romconfig.o(.romconfig*) + ao_product.o(.romconfig*) + + *(.text*) /* Executable code */ + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + *(.rodata*) /* Constants */ + + } > rom + __text_end__ = .; + + + /* Boot data which must live at the start of ram so that + * the application and bootloader share the same addresses. + * This must be all uninitialized data + */ + .boot (NOLOAD) : { + __boot_start__ = .; + *(.boot) + . = ALIGN(4); + __boot_end__ = .; + } >ram + + /* Functions placed in RAM (required for flashing) + * + * Align to 8 bytes as that's what the ARM likes text + * segment alignments to be, and if we don't, then + * we end up with a mismatch between the location in + * ROM and the desired location in RAM. I don't + * entirely understand this, but at least this appears + * to work... + */ + + .textram BLOCK(8): { + __data_start__ = .; + __text_ram_start__ = .; + *(.ramtext) + __text_ram_end = .; + } >ram AT>rom + + /* Data -- relocated to RAM, but written to ROM + */ + .data : { + *(.data) /* initialized data */ + . = ALIGN(4); + __data_end__ = .; + } >ram AT>rom + + .bss : { + __bss_start__ = .; + *(.bss) + *(COMMON) + . = ALIGN(4); + __bss_end__ = .; + } >ram + + PROVIDE(end = .); + + PROVIDE(__stack__ = ORIGIN(stack) + LENGTH(stack)); + + __flash__ = ORIGIN(flash); +} + +ENTRY(start); -- cgit v1.2.3 From c833c93e812936125cfe9532523ea36b5046e58d Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 21 Apr 2017 18:16:45 -0700 Subject: Replace turnon_telemini with v3 version. Add test-teleminiv3 Prepare for TeleMini v3.0 release. Signed-off-by: Keith Packard --- ao-bringup/test-telemini | 56 +++++++++++++++++++++++++++++ ao-bringup/turnon_telemini | 89 +++++++++++++++++++++++++++------------------- 2 files changed, 109 insertions(+), 36 deletions(-) create mode 100755 ao-bringup/test-telemini (limited to 'ao-bringup') diff --git a/ao-bringup/test-telemini b/ao-bringup/test-telemini new file mode 100755 index 00000000..7df36a28 --- /dev/null +++ b/ao-bringup/test-telemini @@ -0,0 +1,56 @@ +#!/bin/sh + +VERSION=3.0 +PRODUCT=TeleMini +BASE=`echo $PRODUCT | tr 'A-Z' 'a-z'` + +echo "$PRODUCT-v$VERSION Test Program" +echo "Copyright 2017 by Keith Packard. Released under GPL v2 or later" +echo +echo "Expectations:" +echo "\t$PRODUCT v$VERSION powered from USB" +echo + +ret=1 +ao-list | while read product serial dev; do + case "$product" in + "$PRODUCT-v$VERSION") + + echo "Testing $product $serial $dev" + echo "" + + ./test-igniters "$dev" drogue main + echo "" + + echo "Testing baro sensor" + ../ao-tools/ao-test-baro/ao-test-baro --tty="$dev" + + case $? in + 0) + ;; + *) + echo "failed" + exit 1 + esac + echo"" + + FLASHSIZE=524288 + + echo "Testing flash" + ../ao-tools/ao-test-flash/ao-test-flash --tty="$dev" "$FLASHSIZE" + + case $? in + 0) + ;; + *) + echo "failed" + exit 1 + esac + echo"" + + echo "$PRODUCT-v$VERSION" serial "$serial" is ready to ship + echo "\007" + ret=0 + ;; + esac +done diff --git a/ao-bringup/turnon_telemini b/ao-bringup/turnon_telemini index 6aef7f51..1958de2a 100755 --- a/ao-bringup/turnon_telemini +++ b/ao-bringup/turnon_telemini @@ -1,59 +1,76 @@ #!/bin/sh -if [ -x ../ao-tools/ao-load/ao-load ]; then - AOLOAD=../ao-tools/ao-load/ao-load -elif [ -x /usr/bin/ao-load ]; then - AOLOAD=/usr/bin/ao-load +if [ -x /usr/bin/dfu-util ]; then + DFU_UTIL=/usr/bin/dfu-util else - echo "Can't find ao-load! Aborting." - exit 1 + echo "Can't find dfu-util! Aborting." + exit 1 fi -if [ -x ../ao-tools/ao-rawload/ao-rawload ]; then - RAWLOAD=../ao-tools/ao-rawload/ao-rawload -elif [ -x /usr/bin/ao-rawload ]; then - RAWLOAD=/usr/bin/ao-rawload +if [ -x /usr/bin/ao-usbload ]; then + USBLOAD=/usr/bin/ao-usbload else - echo "Can't find ao-rawload! Aborting." + echo "Can't find ao-usbload! Aborting." exit 1 fi -VERSION=1.0 +VERSION=3.0 +PRODUCT=TeleMini -echo "TeleMini v$VERSION Turn-On and Calibration Program" -echo "Copyright 2011 by Bdale Garbee. Released under GPL v2" +echo "$PRODUCT v$VERSION Turn-On and Calibration Program" +echo "Copyright 2017 by Keith Packard. Released under GPL v2 or later" echo echo "Expectations:" -echo "\tTeleMini v$VERSION powered from LiPo" -echo "\t\twith TeleDongle (on /dev/ttyACM0) cabled to debug header" -echo "\t\twith frequency counter able to sample RF output" +echo "\t$PRODUCT v$VERSION powered from USB" echo -echo -n "TeleMini serial number: " -read SERIAL +echo -n "$PRODUCT-$VERSION serial number: " + +case $# in + 1) + SERIAL="$1" + echo "$PRODUCT-$VERSION serial number: $SERIAL" + ;; + 0) + echo -n "$PRODUCT-$VERSION serial number: " + read SERIAL + ;; + *) + echo "Usage: $0 " 1>&2 + exit 1; + ;; +esac -echo $RAWLOAD +FLASH_FILE=~/altusmetrumllc/Binaries/loaders/telemini-v$VERSION-altos-flash-*.bin +ALTOS_FILE=~/altusmetrumllc/Binaries/telemini-v$VERSION-*.elf +#FLASH_FILE=../src/telemini-v3.0/flash-loader/telemini-v$VERSION-altos-flash-*.bin +#ALTOS_FILE=../src/telemini-v3.0/telemini-v$VERSION-*.elf -case $USER in - bdale) - programmer=100 +$DFU_UTIL -a 0 -s 0x08000000:leave -D $FLASH_FILE || exit 1 + +sleep 2 + +$USBLOAD --serial=$SERIAL $ALTOS_FILE || exit 1 + +sleep 3 + +dev=`ao-list | awk '/'"$PRODUCT"'-v'"$VERSION"'/ { print $3; exit(0); }'` + +case "$dev" in +/dev/tty*) + echo "$PRODUCT found on $dev" ;; - keithp) - programmer=186 +*) + echo 'No '"$PRODUCT"'-v'"$VERSION"' found' + exit 1 ;; esac -$RAWLOAD -D $programmer -r ao_led_blink.ihx -echo "LEDs should be blinking" -sleep 5 +echo 'E 0' > $dev -$RAWLOAD -D $programmer -r ao_radio_xmit.ihx -echo -n "Generating RF carrier. Please enter measured frequency: " -read FREQ +SERIAL=$SERIAL ./cal-freq $dev -CAL_VALUE=`nickle -e "floor(434.55 / $FREQ * 1186611 + 0.5)"` +echo 'E 1' > $dev -echo "Programming flash with cal value " $CAL_VALUE -$AOLOAD -D $programmer --cal $CAL_VALUE ~/altusmetrumllc/Binaries/telemini-v$VERSION-*.ihx $SERIAL +./test-telemini -echo "Serial number "$SERIAL" programmed with RF cal value "$CAL_VALUE -echo "Unplug and replug USB, cu to the board, confirm freq and record power" +exit $? -- cgit v1.2.3