aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple
Commit message (Collapse)AuthorAgeFilesLines
* timer.c: Minor IRQ dispatch tweaks.Marti Bolivar2011-07-211-3/+3
| | | | | | Read TIMx_SR before grabbing a pointer to the user handlers instead of after. This should shave a couple of cycles off of the time between IRQ entry and SR read.
* timer.c: Optimize IRQ dispatch routines.Marti Bolivar2011-07-201-59/+66
| | | | | | | | | | | | | | | | | Remove dispatch_irq() and dispatch_cc_irqs(). For IRQs which handle exactly one timer interrupt, add new dispatch_single_irq(). The mere fact that the IRQ has been called suffices to prove that its interrupt enable bit (in TIMx_DIER) and interrupt flag (in TIMx_SR) are set. These facts are combined in dispatch_single_irq(), which only needs to check if the timer_dev handler is non-null before calling it and clearing the SR flag. For IRQs which serve multiple timer interrupts, replace the composition of calls to dispatch_irq() and dispatch_cc_irqs() with individualized routines. These eliminate unnecessary timer register reads/writes, and, in the case of capture/compare interrupts, have a loop unrolling performed.
* timer.c: Fix dispatch_irq() and dispatch_cc_irqs().Marti Bolivar2011-07-191-24/+46
| | | | | Modify them to check whether the relevant interrupts are enabled before attempting to handle them.
* timer.c: Fix off-by-one error in NR_GEN_HANDLERS.Marti Bolivar2011-07-181-1/+1
|
* stm32.h: Add license header.Marti Bolivar2011-07-181-0/+26
|
* stm32.h: Trivial comment tweak.Marti Bolivar2011-07-181-1/+1
|
* Add DELAY_US_MULT, for use in generalizing delay_us().Marti Bolivar2011-07-182-8/+9
| | | | | | | | The delay_us() implementation multiplies its specified delay target by a fixed constant in order to turn it into a busy-loop. This magic number doesn't work properly when the clock configuration isn't the same as a stock LeafLabs board. Add DELAY_US_MULT to the MCU-specific configuration in stm32.h in order to allow other chips to use delay_us().
* Move STM32 config from libmaple.h into stm32.h.Marti Bolivar2011-07-182-39/+39
|
* fixed a bug in usbreceivebytesAndrew J Meyer2011-07-011-1/+5
| | | | bug prevented consecutive SerialUSB.read() calls from returning consecutive bytes
* systick.c: Updating systick_uptime_millis before handling user callback.Marti Bolivar2011-06-241-1/+1
| | | | Thanks to x893 for the suggestion.
* Merge branch 'freertos'Marti Bolivar2011-06-241-0/+13
|\
| * Make FreeRTOS changes comply with the coding standard.Marti Bolivar2011-06-241-2/+4
| | | | | | | | | | Don't modify the core FreeRTOS code; only change source that's specific to libmaple.
| * FreeRTOS: Added FreeRTOS 7.0.1, including hook in libmaple/systick.c and ↵Nis Sarup2011-06-211-0/+11
| | | | | | | | example blinky.
* | systick.h: Comment typoMarti Bolivar2011-06-211-1/+1
|/
* DMA: Fix non-working DMA interrupts.Marti Bolivar2011-06-201-7/+7
| | | | | | | | | | | | | | | | | | | | | | libmaple/dma.c defines DMA interrupts __irq_dma_channel[1-7], consistent with what is specified by support/ld/names.inc. However, names.inc is inconsistent with what support/ld/libcs3_stm32_src/ expects. Specifically, it contradicts the files - support/ld/libcs3_stm32_src/stm32_isrs.S - support/ld/libcs3_stm32_src/stm32_vector_table.S Which use the names __irq_dma1_channel[1-7]. Change names.inc and dma.c to use the correct IRQ names. The original names.inc/libcs3_stm32_src inconsistency was introduced in 43d6921658cd29b8022af4424d340a90fbcb9a7f, but dma.c had the correct names until ec3cf2903f4b03bc1dae5e159495c9e5ef0938ca, where they were renamed for consistency with names.inc. At that point, DMA interrupts stopped working. (This was documented in the commit message). Thanks to forum user robodude666 for tracking this down.
* rcc.c: Trivial comment tweak.Marti Bolivar2011-06-201-1/+0
|
* gpio.h: Fix zero/oh comment mixup.Marti Bolivar2011-06-141-1/+1
|
* adc.h: Clarify adc_smp_rate Doxygen comment.Marti Bolivar2011-06-111-1/+5
| | | | Thanks to gbulmer for the clarifying remarks.
* stm32.h: Don't blindly assume PCLK1 and PCLK2 values.Marti Bolivar2011-06-111-0/+4
| | | | | Put the PCLK1 and PCLK2 within #ifndef guards. This assumption is biased towards LeafLabs boards.
* Keep it 80-column clean.Marti Bolivar2011-06-0727-378/+432
| | | | | | | | | | | | | | | | | | | | | | | | | | | Go through overlong source code lines and convert as many of them as appropriate to be 80-column clean. This mostly affects license headers. Overlong lines are determined by running following from the libmaple base directory: $ ack-grep --nocolor --nogroup --cpp --cc --ignore-dir=usb -- '.{80}' Note that this excludes libmaple's usb subdirectory, which is still full of ST code that doesn't follow the libmaple source code guidelines. Contents of ~/.ackrc (these won't matter, but are included for completeness): --ignore-dir=docs --ignore-dir=build --type-set ld=.ld --type-set rst=.rst --type-set txt=.txt --type-set mk=.mk
* delay.h: Add missing include.Marti Bolivar2011-06-061-0/+2
|
* flash.h: Add missing include.Marti Bolivar2011-06-061-1/+2
|
* scb.h: Add missing include.Marti Bolivar2011-06-061-0/+2
|
* bitband.h: Add missing include.Marti Bolivar2011-06-061-0/+2
|
* i2c.h: Add missing includes.Marti Bolivar2011-06-061-0/+5
| | | | | The missing includes are a bug in general, and prevent usage of i2c.h from within Maple IDE in particular.
* usart.h: Allow the environment to determine USART_RX_BUF_SIZE.Marti Bolivar2011-05-271-0/+2
| | | | | | | Place the USART_RX_BUF_SIZE #define within an #ifndef to allow users to pick their own buffer size. See http://forums.leaflabs.com/topic.php?id=803
* Tweak some register map base pointers.Marti Bolivar2011-05-269-18/+18
| | | | | | | | | | | | Replace #define XXX_BASE ((xxx_reg_map*)0xDEADBEEF) with #define XXX_BASE ((struct xxx_reg_map*)0xDEADBEEF) for increased GDB-friendliness.
* Moving Doxygen comments from declarations to definitions.Marti Bolivar2011-05-236-10/+9
|
* adc.c: Giving adc_dev variables static linkage.Marti Bolivar2011-05-231-2/+2
|
* adc: Moving ADC[123] Doxygen comments to definitionsMarti Bolivar2011-05-232-3/+3
|
* spi.h: DoxygenMarti Bolivar2011-05-201-3/+3
|
* dma: DoxygenMarti Bolivar2011-05-202-4/+5
|
* timer.h: DoxygenMarti Bolivar2011-05-201-10/+23
|
* usart.h: Doxygen.Marti Bolivar2011-05-201-6/+6
|
* i2c.h: Documentation fixes.Marti Bolivar2011-05-201-31/+31
|
* usart: Moving Doxygen comments to points of definitionMarti Bolivar2011-05-192-5/+5
| | | | In keeping with convention.
* timer: Shortening long names.Marti Bolivar2011-05-192-22/+19
| | | | | Various names in timer.h were too unwieldy. Making these slightly more bearable.
* timer: Moving some Doxygen comments.Marti Bolivar2011-05-192-8/+8
| | | | From declaration to definition, to keep with convention.
* timer.h: Naming tweaks.Marti Bolivar2011-05-191-4/+4
| | | | | | Renamed timer_reg_map_union -> timer_reg_map. Named the anonymous timer_type.
* systick.h: Doxygen commentsMarti Bolivar2011-05-191-1/+14
|
* spi: Comment fixupsMarti Bolivar2011-05-192-3/+3
| | | | | Moving SPIn Doxygen comments to point of definition in keeping with libmaple conventions.
* spi.h: Naming anonymous enums.Marti Bolivar2011-05-191-4/+4
| | | | Named spi_mode, spi_baud_rate, spi_cfg_flag, spi_interrupt.
* scb.h: Comment/line length fixupsMarti Bolivar2011-05-191-18/+20
|
* ring_buffer.h: Comment fix.Marti Bolivar2011-05-191-1/+1
|
* rcc.h: Better names for the prescaler divider enums.Marti Bolivar2011-05-191-8/+8
| | | | | | | | | | | The various clock divider enums suitable for passing to rcc_set_prescaler() were badly named. They have been renamed as follows: * adc_prescaler_divider -> rcc_adc_divider * apb1_prescaler_divider -> rcc_apb1_divider * apb2_prescaler_divider -> rcc_apb2_divider * ahb_prescaler_divider -> rcc_ahb_divider
* rcc.h: Naming anonymous rcc_clk_id enumMarti Bolivar2011-05-191-1/+1
|
* pwr.h: Whitespace/comment cleanupsMarti Bolivar2011-05-191-10/+26
|
* pwr: removing unused device.Marti Bolivar2011-05-192-16/+0
|
* i2c: Renaming, type changes, exposing i2c_init(), documentation.Marti Bolivar2011-05-192-91/+137
| | | | | | | | | | | | | | | | | Changes to struct i2c_dev members: - uint8 clk_line's type is changing and is being renamed, is now rcc_clk_id clk_id - uint8 ev_nvic_line's type is changing to nvic_irq_num - uint8 er_nvic_line's type is changing to nvic_irq_num Previous names were badly typed and inconsistent with the rest of libmaple. Exposing i2c_init(), also for consistency. Adding/editing many Doxygen comments, for documentation and general housekeeping.
* i2c.h: fixing type of i2c_dev state member.Marti Bolivar2011-05-191-1/+1
| | | | | It's an i2c_state; calling it one. Previous uint8 type was broken since I2C_STATE_ERROR is negative.