summaryrefslogtreecommitdiff
path: root/src/stm
Commit message (Collapse)AuthorAge
* Switch from GPLv2 to GPLv2+Keith Packard2016-07-12
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: clean up ao_exti_enableKeith Packard2016-06-29
| | | | | | Was computing (1 << pin) twice for no good reason. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Add better byte-level SPI apiKeith Packard2016-06-29
| | | | | | | | This provides inline functions for sending and receiving individual bytes, and setup/finish functions to wrap them in. This make the byte sending respect the SPI hardware interface requirements. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Clean up spi_enable/disable_index functionsKeith Packard2016-06-29
| | | | | | These had an extra level of switch nesting for no good reason. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: move spi execution to common ao_spi_runKeith Packard2016-06-29
| | | | | | | | This regularizes SPI hardware use and ensures that the device is turned off after it has been used and that the status register is back to 'normal' the next time through. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add STM SPI debuggingKeith Packard2016-06-29
| | | | | | | This dumps out the SPI hardware state and history of SPI operations when compiled with -DDEBUG=1. Without that, this patch does nothing. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add STM DMA debuggingKeith Packard2016-06-29
| | | | | | | This provides a command that shows current DMA operations when compiled with -DDEBUG=1. Without that, this patch has no effect. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Change ao_spi_send_sync definition to take const sourceKeith Packard2016-06-29
| | | | | | Provides for a bit better error checking. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Add more SPI status register bitsKeith Packard2016-06-29
| | | | | | These weren't the original version of the docs that we had. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: use 0xff for dma mutex value for allocated mutexesKeith Packard2016-06-29
| | | | | | | DMA channels which are 'allocated' can't be shared. Instead of using the value '1' in the related 'mutex', use 0xff which won't match any task. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: remove ao_dma_abortKeith Packard2016-06-29
| | | | | | This function isn't used anywhere. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Block interrupts while waking tasks sleeping on timers.Keith Packard2016-06-29
| | | | | | | | Interrupts may not be blocked in the timer ISR, but they need to be while walking the pending timer list and moving tasks back to the run queue. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Handle USB reset in STM32L usb driverKeith Packard2016-06-10
| | | | | | | Just like lpc and stmf0, deal with the host resetting the bus while rebooting by restoring all usb-related data to the initial values. Signed-off-by: Keith Packard <keithp@keithp.com>
* Revert "altos/stm: Run scheduler code on interrupt stack"Keith Packard2016-04-30
| | | | | | This reverts commit 6a9546413d6a236c010e806b50506d870961d074. This causes the device to stop reliably handling interrupts.
* altos/stm32l: Add support for software-driven HW flow controlKeith Packard2016-04-25
| | | | | | | | This allows applications to request that the flow control bits be driven from software rather than hardware, permitting more flexible pin configuration. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Use TXE instead of TC for serial on STM32lKeith Packard2016-04-25
| | | | | | | Using TXE allows for full-speed communication, rather than waiting for each byte to be transmitted before inserting the next into the queue. Signed-off-by: Keith Packard <keithp@keithp.com>
* Debug bits for telebtKeith Packard2016-04-25
|
* altos: Add ao_gpi_set/clr_bits functionsKeith Packard2016-04-13
| | | | | | These set or clear a group of bits in a single GPIO register all together. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add one-byte SPI output routine for LPC and STM coresKeith Packard2016-03-26
| | | | | | This allows for SPI output at interrupt time, one byte at a time. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Allow apps to define different stack sizeKeith Packard2016-03-26
| | | | | | | While 512 bytes is a reasonable size, sometimes apps don't have that much stack space. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Validate current task SP in interrupt by looking at PSPKeith Packard2016-03-26
| | | | | | | | | We use a separate stack pointer for task code, which means we can verify that it is in range in any interrupt handler. This adds checks for the task stack (under #ifdef DEBUG) that run in ao_wakeup as well as at every timer interrupt. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Run scheduler code on interrupt stackKeith Packard2016-03-26
| | | | | | This provides a bit more room for tasks on their stack Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Expose fast timer API from kernel/Keith Packard2016-03-18
| | | | | | This allows multiple SoCs to provide the same driver interface Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Get stm32l pwm driver workingKeith Packard2015-12-25
| | | | | | | | | | | | | Fix the CCMR1_OC1PE and CCMR2_OC3PE values. Disable clock when no PWM outputs are running. Fix the apb1enr value for the timer. Set ARR value to PWM_MAX - 1 -- ARR is off by one. Sets the GPIO pins to 40MHz bandwidth for sharper edges. Tested on EasyMega, but that code is not included as it breaks the companion protocol. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add TeleMega v2.0, including PWM driverKeith Packard2015-12-25
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Replace ao_alarm/ao_clear_alarm with ao_sleep_forKeith Packard2015-02-13
| | | | | | | | | | | | | | | | Having arbitrary alarms firing in the middle of complicated device logic makes no sense at all. Therefore only correct use of ao_alarm and ao_clear_alarm was around a specific ao_sleep call, with correct recovery in case the alarm fires. This patch replaces all uses of ao_alarm/ao_sleep/ao_clear_alarm with ao_sleep_for, a new function which takes the alarm timeout directly. A few cases which weren't simply calling ao_sleep have been reworked to pass the timeout value down to the place where sleep *is* being called, and having that code deal with the return correctly. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Add ability to delay STDIO usage for serial portsKeith Packard2015-02-01
| | | | | | | | Bluetooth needs to delay adding the serial port to stdio until the link is up and running. The cc1111 serial driver had DELAY_SERIAL_*_STDIN bits which have been added to the STM serial driver. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Fix typo in stm32l.hKeith Packard2015-01-26
| | | | | | This crept in while working on the stmf0 bits. oops. Signed-off-by: Keith Packard <keithp@keithp.com>
* ao-tools: Add --wait option to ao-usbloadKeith Packard2015-01-25
| | | | | | | This waits forever for USB writes to complete, instead of timing out after five seconds. Useful when debugging the device. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add support for TeleBT v3.0Keith Packard2015-01-24
| | | | | | | Add support to the BTM driver for non-CC1111 interrupts Add HW flow control to STM serial driver Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Mark STM ao_spi_send as taking const pointerKeith Packard2014-10-24
| | | | | | We don't write to this, so let it be const for type checking Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Rework packet receive for cc1120Keith Packard2014-07-05
| | | | | | | | | | Instead of blocking on PQT, just set up the receiver to start going and when the first bit interrupt comes in, grab the SPI bus if possible and configure it for reception. This improves sensitivity in the radio by a significant amount while making the code conceptually a bit nicer. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Fake flight code changes in kernel and stmKeith Packard2014-05-27
| | | | | | | Redirects data input from local sensors to USB sourced data, leaving USB enabled when the computer goes into pad mode. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: stm and lpc ao_boot.h were identical. move to kernel.Keith Packard2014-05-15
| | | | | | | These two files were absolutely identical, so share them by moving under kernel instead.x Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Use explicit boot loader signal in ao_boot_rebootKeith Packard2014-05-15
| | | | | | | | Instead of just "knowing" that ao_boot_loader will be passed zero when the application wants to get back to the boot loader, explicitly define the values so that both sides always agree. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Use #define'd constants for GPIO register addressesKeith Packard2014-05-12
| | | | | | | This lets the compiler short-circuit the tests in ao_enable_gpio and ao_disable_gpio to save a bit of code space and time. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Figure out available flash space based on chip id registersKeith Packard2014-05-12
| | | | | | | Look at the flash size and the device id registers to figure out how much flash is available. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: White space fix in ao_boot_pin.cKeith Packard2014-05-12
|
* altos/stm: Use flash address of boot loader instead of 0x0Keith Packard2014-05-12
| | | | | | | Flash is at 0x08000000, but when the chip boots, it can be at 0x0 as well. Use the 0x08000000 address when rebooting to flash Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Simplify quadrature trackingKeith Packard2014-05-09
| | | | | | | | | | | | Set the timer to 200Hz for a 5ms debounce interval. Then, simply look for transitions ending in both bits in the encoder being off, which indicates the the encoder is resting in a detent. If bit '2' is turning off, the encoder was rotated clockwise, otherwise the encoder was rotated counter clockwise. This is a lot more reliable, although still not perfect. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Rename 'core' to 'kernel'Keith Packard2014-04-05
| | | | | | | core remains a bad name to use -- dirvish skips files (and directories, it seems) with that name. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Expose ao_usb_running globallyKeith Packard2014-02-18
| | | | | | This lets other bits of the code know when USB has been connected. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Fixup named ADC printingKeith Packard2014-02-08
| | | | | | Print all ADC values on one line when using named ADC values Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Block interrupts while reprogramming flashKeith Packard2014-02-08
| | | | | | Wouldn't work well to get interrupted... Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Enable system timer in flash loader and prod watchdog with itKeith Packard2014-02-08
| | | | | | | This makes it possible to reflash the board without needing to disable the watchdog. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add names when reporting STM ADC valuesKeith Packard2014-02-08
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Report battery, apogee and main voltages over APRSKeith Packard2014-01-15
| | | | | | This makes APRS more usable when you mute the RF audio on the HT. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Turn on -Werror for STM and LPC buildsKeith Packard2013-12-20
| | | | | | | Now that the build completes with no warnings, make future warnings into errors. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Turn on -WextraKeith Packard2013-12-20
| | | | | | All of the warnings for STM projects are cleaned up now Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Clean up -Wextra warningsKeith Packard2013-12-20
| | | | | | | Unused variables, mismatching signed/unsigned and a few other misc warnings. Signed-off-by: Keith Packard <keithp@keithp.com>