307 Commits

Author SHA1 Message Date
Piotr Esden-Tempski
a2c5b6391d Merging pull request #19 "STM32F timers. Doxygen markup added, and some code changes" by Ken Sarkies.
Merge remote-tracking branch 'ksarkies/timer'
2012-08-11 14:00:06 -07:00
Ken Sarkies
52fd7c7976 STM32F timers. Doxygen markup added, and some code changes:
1. Remove the extra mask (TIM_DIER(timer_peripheral) & flag)
in timer_get_flag. Not all flags in SR relate to IRQs and the flags that
do might be useful even if interrupts not enabled.

2. In a number of functions (e.g. timer_set_output_idle_state) that only
apply to advanced timers, add test for TIM1 and TIM8, as done in some others.

3. Added timer_force_event to manipulate the EG register

TBD DMA burst - can't get my head around why this would be useful.
Someone must have thought so!
2012-07-10 09:32:47 +09:30
Ken Sarkies
9cff0c962b Fix compile error 2012-07-09 17:12:27 +09:30
Ken Sarkies
cba9561e89 NVIC_Set_Interrupt_Priority: change to use 4-bit fields.
(viz STM32F10xxx Cortex-M3 programming manual PM0056 and
Cortex-M3-Generic-User-Guide.pdf)

Doxygen commentary added
2012-07-09 16:54:01 +09:30
Ken Sarkies
0e02438a80 Code for DAC module STM32Fxxx series
Add prototypes to dac.h and small change to simplify alignment enum
2012-06-30 16:56:14 +09:30
Karl Palsson
83d62e9bfc Add linker scripts with memory maps for F100 series.
These definitions are a physical property of the device for most purposes.
No reason not to supply them premade.
2012-06-29 02:10:53 -07:00
Karl Palsson
450c3e00a1 Basic helper routines for CRC
Note, the CRC block is pretty useless for interoperability.  It only operates on 32bit
chunks, and in a different bit order.  No attempt to make full helpers for compatibility
with other implementations has been done.

https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2Fcortex_mx_stm32%2FCRC%20computation&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&currentviews=2006
2012-06-29 02:08:53 -07:00
Piotr Esden-Tempski
98174e4a0c Merge pull request #13 "Code for iwdg module STM32F series"
Merge remote-tracking branch 'ksarkies/iwdg-dev'
2012-06-27 14:02:02 -07:00
Piotr Esden-Tempski
a70eabb3e1 Merge pull request #11 "Add helper function for max clock on HSI for f100"
Merge remote-tracking branch 'karlp/hsi_f1_24'
2012-06-27 13:58:14 -07:00
Piotr Esden-Tempski
4a17185791 Merge pull request #10 "Add Device Electronic Signature support."
Merge remote-tracking branch 'karlp/desig'
2012-06-27 13:56:55 -07:00
Piotr Esden-Tempski
db505a87f7 Merging pull request #7 "Use ODR instead of IDR to toggle an output GPIO"
Merge remote-tracking branch 'schodet/gpio-toggle'
2012-06-27 13:49:26 -07:00
Piotr Esden-Tempski
3bfeeedceb Merge pull request #6 "Doxygen markup and grouping structrue"
Merge remote-tracking branch 'ksarkies/doc'

Conflicts:
	include/libopencm3/cm3/common.h
2012-06-27 13:30:45 -07:00
Ken Sarkies
0fabe4462b Fix Typo 2012-06-14 19:45:46 +09:30
Ken Sarkies
2f4cd29324 Code for iwdg module STM32F series 2012-06-13 22:14:53 +09:30
Karl Palsson
62849f043c Add helper function for max clock on HSI for f100
Based on existing HSI code. Tested with f100c8, on custom board with no
external crystals or resonators.
2012-06-12 20:56:34 +00:00
Karl Palsson
71a3a7f2b1 Add Device Electronic Signature support.
Working unique id support, but not 100% convinced that this is the "least surprise"
path.  ST's docs provide the bits from low to high, in 2xu16 and 2xu32.
But to get it back as a "u96" the highest bits should be first?
2012-06-12 20:53:59 +00:00
Nicolas Schodet
12a73ce052 Use ODR instead of IDR to toggle an output GPIO
IDR represents the level on pin input while ODR is the value requested by the
programmer. This makes a difference for example when using the output as open
drain.
2012-05-31 00:08:23 +02:00
Ken Sarkies
06620040aa Header files for Doxygen group structure, layout changes to headings, example markup in stm32f1/ rcc 2012-05-28 21:38:55 +09:30
Gareth McMullin
154f67598b Fixed setting of interrupt priorities. 2012-05-26 20:47:47 +12:00
Piotr Esden-Tempski
7011d47c70 Mark reg32 variables as used. So that the compiler does not complain. 2012-05-25 17:56:15 -07:00
Piotr Esden-Tempski
3596075ee0 Fixed the linker scripts to be the way Tomaz Solc proposed.
Something went wrong when cherrypicking his commits in the pull request.
Sorry about that. :(
2012-04-25 17:34:07 +02:00
Piotr Esden-Tempski
3b20a5e34e Removed the load address statement from the .bss section.
Otherwise the linker will complain: "section has both a load address and
a load region"
2012-04-24 09:34:39 +02:00
Tomaz Solc
bf65589183 Support for exception handling in linker scripts.
This is needed even in plain C when 64 bit variable (e.g. long long int)
arithmetic is used. For example it is required when newlib is compiled with
--enable-newlib-io-long-long.

Conflicts:

	lib/stm32/f1/libopencm3_stm32f1.ld
	lib/stm32/f2/libopencm3_stm32f2.ld
2012-04-24 09:16:22 +02:00
Tomaz Solc
5510e1fe3b Wait for writes to finish upon exiting RTC config
This fixes race condition when rtc_get_counter_val() call immediately follows
rtc_set_counter_val().
2012-04-24 09:06:32 +02:00
Gareth McMullin
8820277f09 Added functions for configuring timers in slave mode. 2012-04-08 14:12:21 +12:00
Gareth McMullin
a8ec86a527 Added functions for timer input capture polarity and enable/disable. 2012-04-08 13:55:16 +12:00
Gareth McMullin
4b041697f4 Added convenience function for timer input selection. 2012-04-08 11:56:42 +12:00
Gareth McMullin
a62473fbdf Added convenience funcions for timer input capture filter and prescaler. 2012-04-08 11:11:52 +12:00
Gareth McMullin
567faa9b61 Corrected parameters of timer_set_mode() to u32. 2012-04-07 20:31:56 +12:00
Piotr Esden-Tempski
26de4cb9d6 Constand value for resetting CAN_TDTxR was too big. Fixed. 2012-03-19 23:09:18 -07:00
Piotr Esden-Tempski
ec34e21ead Changed parameter size for trigger enable. 2012-03-19 20:20:05 -07:00
Piotr Esden-Tempski
451a5e227d Started some cleanup in the ADC headers and convenience code. 2012-03-19 17:38:24 -07:00
Piotr Esden-Tempski
4fbd42148a Added basic exception handling to the stm32 linker scripts. Thanks Mike Smith! 2012-03-18 22:59:31 -07:00
Piotr Esden-Tempski
06d6f3e0e6 Made spi_init_master ignore CRC and SPE bits. 2012-03-14 21:00:53 -07:00
Piotr Esden-Tempski
789ae97212 Some additional LGPL3+ license change cleanups.
Changed the license to LGPL3+ for some makefiles that got ommited in the
previous big patch commit.

Corrected a find and replace error in a linker file.
2012-03-02 15:39:15 -08:00
Piotr Esden-Tempski
43561de329 License change of the library to LGPL, version 3 or later.
Agreed to by all the significant contributors to the library.
2012-03-02 14:44:49 -08:00
Piotr Esden-Tempski
ec904f176b Cleaned up and streamlined DMA support for f1. Definitely needs a bunch of testing! 2012-02-29 16:02:51 -08:00
Piotr Esden-Tempski
20c5e56234 Fixed spi convenience reset function to compile properly. 2012-02-29 12:02:36 -08:00
Piotr Esden-Tempski
c49f505df4 Added spi reset convenience function. 2012-02-28 11:28:29 -08:00
Piotr Esden-Tempski
2b3f07ee08 Added reset function to i2c convenience functions. 2012-02-24 17:14:50 -08:00
Piotr Esden-Tempski
cbef43ddd8 Added set priority group convenience function. 2012-02-24 16:43:37 -08:00
Gareth McMullin
03e44e91e3 Linker scripts provide stack pointer at the top of RAM.
Thanks to Tomaz Solc.
2012-02-12 15:00:09 -08:00
Mike Smith
5310cd1b57 Flash sector erase requires the FLASH_SER bit set. 2012-02-12 15:00:08 -08:00
Piotr Esden-Tempski
1a3ad6e998 Added the entry point definiton to all stm32 linker scripts. This allows gdb to reset the target correctly on exit. 2012-02-11 22:24:41 -08:00
Uwe Hermann
9532195e65 More coding-style and cosmetic fixes. 2012-02-06 23:39:06 +01:00
Fergus Noble
3e47a46c5c Fix numerous bugs in NVIC convenience functions, doing an |= on a clear register will clear ALL currently enabled irqs, not just the one you specified and other things of that sort. Also changed to support the full range of irq numbers supported by ARMv7M, not just the first 68 used in the STM32F1 series. 2012-02-06 23:08:07 +01:00
Fergus Noble
477c410be4 Added functions to enable and disable DMA from stm32 USART. 2012-02-06 23:08:07 +01:00
Fergus Noble
7c67322f75 Change stm32 usart baud rate generation to round rather than floor for more accurate divisor selection. 2012-02-06 23:08:07 +01:00
Fergus Noble
ac29b654a9 Fix nasty bug with GPIO alternate function setup on F2/F4 (sorry guys). 2012-02-06 23:08:06 +01:00
Fergus Noble
5dce4172a8 Fix bug with F4 clock settings, change HPRE to PPRE. 2012-02-06 23:08:06 +01:00