Commit Graph

536 Commits

Author SHA1 Message Date
Fergus Noble b039504494 Moving stm32 f2/f4 flash code into the common area. 2013-05-10 18:34:55 -07:00
Fergus Noble 4d15da995e Adding basic support for v7m sync primatives and mutex convenience functions. 2013-05-10 14:30:17 -07:00
Alexandru Gagniuc 5507e14cd4 lm4f: Implement DMA enable/disable functions for the UART
Add basic rx/tx_dma_enable/disable functionality.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2013-05-10 14:20:12 -07:00
Alexandru Gagniuc a8fc67d569 lm4f: Implement UART interrupt control
Add a complete API for controlling the UART interrupts.
Doxygen documentation with inline code examples is also provided in this patch.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2013-05-10 14:20:11 -07:00
Alexandru Gagniuc 8112861b60 lm4f: Add basic UART implementation
Add basic functionality needed to setup the UART and send/recieve data.
Interrupts, DMA, and more advanced features are not implemented in this patch.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2013-05-10 14:20:11 -07:00
Michael Aherne b9a6bbe56e Minor fix to compile functions in rtc.h 2013-05-10 14:09:06 -07:00
Gareth McMullin 05fb6fa19f sam3x: Add usart funciton to enable rx interrupt. 2013-05-10 14:01:17 -07:00
Gareth McMullin e2eadfddb8 sam3x: Add convenince functions for setting clocks and usart baudrate. 2013-05-10 14:01:17 -07:00
Gareth McMullin c9cd2d9ab1 sam3x: Correct pmc_xtal_enable to use startup time parameter. 2013-05-10 14:01:16 -07:00
Gareth McMullin 614e26a3b1 sam3x: Add gpio_init convenience function. 2013-05-10 14:01:16 -07:00
Gareth McMullin f311966f09 sam3x: Add USART registers and come convenience functions. 2013-05-10 14:01:16 -07:00
Gareth McMullin fcd527d31b sam3x: Add some PMC convenience functions. 2013-05-10 14:01:16 -07:00
Gareth McMullin dde1d82fb1 sam3x: clean up gpio mess. 2013-05-10 14:01:16 -07:00
Gareth McMullin f0bace7838 sam3x support. 2013-05-10 14:01:16 -07:00
Alexandru Gagniuc f4eca5400e lm4f: Properly set PLL divisor
rcc_set_pll_divisor() would take the number we wanted to divide the 400MHz
clock and put it directly in the RCC2 register. This caused the clock to always
be one speed tier slower than expected. The value of the divisor must be
decremented by 1, so a divisor of 5 will be written as 4 in the RCC2.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2013-05-07 02:05:47 -05:00
Felix Ruess af98521301 [stm32] update doxy for usart_set_baudrate 2013-04-29 18:35:06 +02:00
Felix Ruess 1b818a3679 [stm32] usart6 for F2/F4 2013-04-29 18:14:36 +02:00
Ken Sarkies 92d1134a16 STM32: moved timer_ic_set_polarity from timer_common_all to
f1/timer.
Added timer_ic_set_polarity to timer_common_f24 with
the enum tim_ic_pol now including trigger on both edges.
Changed timer_slave_set_polarity to use enum tim_et_pol
rather than tim_ic_pol.

In response to suggestion of stinkydiver73 on 24 March that
timers in all families have an option for triggers on both
edges, except F1.
2013-04-26 15:30:07 +09:30
Ken Sarkies cbb4756440 As requested (6 Feb 2013) change DMA interrupt flag names
in STM32/common, for dma_common_f24, to match those used in dma_common_f13.
Examples compile OK
2013-04-26 12:12:03 +09:30
Andrey Smirnov 113e5c22e6 Change the way buffer for control requests data is allocated
Current way of having a globally, but weakly defined static buffer has
several shortcomings:
 - It forces user to have a certain "magic" byte array variable if
   they want to have a control buffer of different size.
 - Having a globally defined static array and a separate function to
   tell USB core about its size is error prone.
 - Its inner workings are not easily understandable form cursory look
   at API and one needs to go and look at the implementation code to
   connect all the pieces into a solid picture of how it works

This commit adds two parameters to 'usbd_init' call that allow user to
specify the pointer to the area of memory and a size of that memory
which would be used by the USB core to store the data received during
DATA stage of control requests. This approach, while further
complicating the prototype of 'usbd_init', provides user with more
flexibility allowing for any custom area of memory of any size to be
used as control buffer. It also forces user to provide both address
and memory size at the same time thus avoiding the possibility of user
redefining 'usbd_control_buffer', but not calling
'usbd_set_control_buffer_size' after that.
2013-04-25 17:24:27 -07:00
Matthew Peddie ea15d962ab Remove redundant access size argument in F4 flash code. 2013-04-25 17:13:51 -07:00
millerd 6313af8869 Small improvements of using FLASH memory in STM32F1XX 2013-04-24 15:55:15 -07:00
Nicolas Schodet b2df978eae Add support for static constructors and destructors 2013-04-24 22:49:25 +02:00
Nicolas Schodet cba01fff5e Synchronise linker scripts which are supposed to be identical
This also report bug fixes about data alignment and bss storage to EFM32 &
LM3S targets.

Note: removed chrysn copyright statement as the file is a verbatim copy of
previous files.
2013-04-24 22:49:25 +02:00
Felix Ruess a12614054c [stm32][f4] ld file for f405x6 2013-04-23 17:55:04 +02:00
Gautier Hattenberger a4b582f91d add 16MHz resonator for stm32f4 2013-04-23 17:52:27 +02:00
Piotr Esden-Tempski 8545d9d565 Using while(1) instead of exit.
The exit function can significantly increase code size, and adds
dependency on stdlibc.
2013-04-21 19:13:35 -07:00
Alan Braithwaite 67903bfbfe API change to remove dual loading default case for dac_load_data_buffer_single
Also change dac_data from u32 to u16
2013-04-20 00:31:30 +02:00
Ken Sarkies 1374d2622b Place generic USB header and source files into the documentation tree. 2013-04-19 10:26:01 +09:30
Alan Braithwaite 2288e35739 Fixed bug with dac_load_data_buffer_dual with register offsets 2013-04-17 09:36:28 +02:00
molnarkares 93007d20d9 Fixes:
CAN RX: ID conversion was incorrect
2013-04-16 17:12:10 -07:00
molnarkares 162522b3b2 can speed optimizations 2013-04-16 17:10:56 -07:00
molnarkares 9585e59df1 CAN2 on STM32F1 is slave and its filter banks are configured thru CAN1 FMR 2013-04-16 17:10:03 -07:00
molnarkares 867b57a1d2 can.c >> bug fixed in receive 2013-04-16 17:08:50 -07:00
Andrey Smirnov 6cb7d8abf3 Add a "noreturn" attribute to 'scb_reset_system'
Adding this attribute allows to avoid warnings issued by GCC in cases
when 'scb_reset_system' is used as a last call in a function with
"noreturn" attribute set(usually reset handler of some sorts)
2013-04-16 16:57:58 -07:00
Ken Sarkies 1627cd60c3 Documentation structures added to place the non-STM32 families into the documentation tree.
Actual documentation has not been added. Volunteers?
2013-04-14 15:30:02 +02:00
Karl Palsson 69902568d1 [stm32-l1] Turn on the DMA code.
It appears to be the same dma peripheral as in the F1 and F3, so just
enable it as is.
2013-04-14 14:51:30 +02:00
Karl Palsson 4636eb134c [stm32l1] Update linker scripts
Add the M+ and H density parts, and include the EEPROM sizes
2013-04-14 14:49:57 +02:00
Ken Sarkies 5b8953124e This mainly moves the STM32 timers' code to the common area.
F2 and F4 have a common section to deal with the options register (TIM2 and TIM5 only)
L1 has been made common with timer_common_all as its options register has very different settings to F2/F4. Code is in the L1/timer.c L1/timer.h files

Note that F3 and F05 timers should fit into this scheme, with F3 having additional features.

Bundled with this is L1/pwr.h to change a documentation setting
Also all the Doxyfiles have added "ENABLE_PREPROCESSING = NO" to fix a problem introduced by commit 118.
2013-03-09 14:39:01 +10:30
Ken Sarkies a9a85f080b Add test in common headers for improper inclusion of such files in application.
(prevents inclusion and also issues warning)
Changes to some source files to remove references to common headers.
Changes to rng.h to make guard symbols the same in f2 and f4.
2013-03-07 18:35:04 +10:30
Ken Sarkies e2022f5884 Repair to documentation (most documented files)
to remove errors, duplications and inconsistencies.
File lib/stm32/f1/pwr.c - all code removed as it duplicates that in common/pwr_common.c
Remaining changes do not affect code. Compiles OK.
TODO efm32 has no code so generates no modules
TODO F2 needs pwr.c
TODO L1 needs dma.h and dma.c
2013-03-07 11:14:06 +10:30
Austin Palmer 31aa3b6f5a EXTI: Added function to get flag status 2013-03-01 10:36:57 -08:00
Michael Aherne 93f2b1ad5b Fixing some errors introduced with #107.
Namely:
 - I never added rtc to the makefile, so it wasn't getting compiled
 - I missed 2 includes that are needed once it's actually compiling
2013-02-27 13:21:21 -08:00
Michael Aherne dd75633245 Adding some useful functions for wakeup timer interrupts 2013-02-26 21:22:58 -08:00
Michael Aherne a121769785 Adding f4-specific rtc functions
These should also work with the f2
2013-02-26 21:22:58 -08:00
Zachary Crockett 9d24a480ae Implement SPI clean disable from TODO comment 2013-02-26 19:59:15 -08:00
Piotr Esden-Tempski 3d3ddc7014 Fixed all warnings for examples. 2013-02-26 19:33:42 -08:00
Piotr Esden-Tempski 9c552e7585 Fix all remaining lib warnings. 2013-02-26 17:32:07 -08:00
Piotr Esden-Tempski ea67d6a36a Fixed all warnings in stm32l1 lib. 2013-02-26 17:28:20 -08:00
Piotr Esden-Tempski 1a025b5379 Fix all warnings for stm32f4 lib. 2013-02-26 17:19:22 -08:00