186 Commits

Author SHA1 Message Date
Piotr Esden-Tempski
d08d366e75 [doc] Added preliminary STM32 CAN documentation. 2012-11-12 15:43:45 -08:00
Piotr Esden-Tempski
d64ec3cf58 Merge pull request #62 "Documentation updates for new devices"
Merge remote-tracking branch 'ksarkies/doc'
2012-11-12 14:11:46 -08:00
Ken Sarkies
35c0863a75 Documentation updates 2012-11-12 21:44:52 +10:30
Piotr Esden-Tempski
020ec859df Fixed cut and paste typo for CAN banks. 2012-11-08 14:29:11 -08:00
Piotr Esden-Tempski
f714ee42c0 Merging pull request #60 Miscellaneous DMA fixes for F4
Merge remote-tracking branch 'bgamari/master'
2012-11-08 12:04:28 -08:00
Ben Gamari
f3557b8d60 stm32f4/dma: Fix DMA_ISR_OFFSET definition 2012-11-08 12:13:16 -05:00
Karl Palsson
ce8f47e7df Enable nvic and exti support for L1
And include an example that uses it.
2012-11-07 21:54:18 +00:00
Karl Palsson
25acaa5878 Add usart support for L1.
Only tested with basic tx blocking, ie, the same example code as on
F2/F4, but the description of the block is almost identical.
2012-11-07 21:50:27 +00:00
Karl Palsson
4941286454 STM32L1 support, rebased onto upstream generalizations branch.
Working example again.
2012-11-07 21:50:27 +00:00
Karl Palsson
e4f84278f2 Add most of the rcc functions.
(Add the forgotten gpio.c file from before)
2012-11-07 21:50:27 +00:00
Karl Palsson
9aed64a19d Finish RCC definitions => Working example! 2012-11-07 21:50:27 +00:00
Karl Palsson
8318384cf1 More progress towards L1 support.
Believe gpio is complete, but untested without finishing at least the
RCC defines.

RCC defines are a work in progress
2012-11-07 21:50:27 +00:00
Karl Palsson
2011941b55 Vectors and Memory Map for STM32L1 series 2012-11-07 21:50:27 +00:00
Piotr Esden-Tempski
f5df25d6de Merge pull request #55 STM32F4: New adc module
Merge remote-tracking branch 'ksarkies/adc-f4'
2012-10-31 13:38:51 -07:00
Piotr Esden-Tempski
60aa32e2b9 Merge pull request #53 CAN fixes
Merge remote-tracking branch 'tdaede/master'
2012-10-31 13:37:19 -07:00
Ken Sarkies
68e6818761 STM32F4 New: headers and source code for DMA
This has been tested with some dac, timer and (as yet uncommitted) adc examples.
2012-10-31 13:36:07 -07:00
Ken Sarkies
5a6b1a1934 STM32F1 Addition to DMA to add interrupt flag read and clear.
Additional macros and defines added to header for the purpose.
Also disable of increment modes (seem to have been omitted originally).
2012-10-31 13:35:59 -07:00
Piotr Esden-Tempski
6b2ca89f48 Merge pull request #22 fixing usb and f4 alignment issues
Merge remote-tracking branch 'jdk/master'

Conflicts:
	lib/stm32/f1/Makefile
	lib/stm32/f4/Makefile
2012-10-31 13:34:18 -07:00
Ken Sarkies
0bd415365d STM32F4: New adc module
Note adc.h was provided by Matthew Lai but was never merged.
adc.c is new.
2012-10-30 10:22:52 +10:30
chrysn
a01e5c201b Merge branch 'generalizations'
this merges common c and header files of different architectures, adds a
dispatch mechanism and yaml descriptions of interrupt handlers from which the
whole interrupt table setup c code is generated.
2012-10-29 14:34:42 +01:00
Thomas Daede
0fd7cc3559 Fix CAN standard ID mask to be 11 bits. 2012-10-28 02:56:22 -05:00
Karl Palsson
e55a9e3875 Missing EXTI ports and flag numbers for F4
(Also missing for forthcoming L1)
2012-10-22 22:37:44 +00:00
chrysn
bc5146b710 unified systick handling
the only change this results in in the example binaries is in the
hackrf-jellybean/systick example, where the the check in
systick_set_clocksource for overflowing from the stm32 area gets used.
2012-10-18 22:48:14 +02:00
chrysn
e20f1c0d8f unify scb (system control block)
these register definitions are common to all cortex mcus. some of the
registers might not be implemented everywhere (especially the floating
point registers), but defining them does no harm.

this modification does not result in any changes in the example
binaries.
2012-10-18 21:45:20 +02:00
chrysn
5ceb377a37 switch all interrupt lists to yaml format 2012-10-18 16:52:48 +02:00
chrysn
a8a6eb39e9 add irq cound to existing nvic.h files 2012-10-18 13:19:55 +02:00
chrysn
f705d1cd6e dispatch for chip specific nvic 2012-10-18 12:46:30 +02:00
chrysn
837de3ff97 nvic.h factored out (incomplete) 2012-10-18 10:27:51 +02:00
chrysn
7c33025c31 Merge branch 'master' into generalizations
Conflicts:
	lib/lm3s/vector.c -- split out to lm3s/irq.h
	lib/stm32/f4/vector.c -- put the floating point initialization code into a function like in lpc43xx
2012-10-17 18:55:54 +02:00
Felix Ruess
4e4496f70d [fix] GCC < 4.5 that does not accept any argument for the deprecated attribute. 2012-10-17 11:45:52 +02:00
Ken Sarkies
0c779512d6 Initial documentation for SPI, I2C and CRC
(no code changes)
2012-10-16 14:08:04 -07:00
Ken Sarkies
c4b7e2a76a Additional stm32/usart.c functions to enable/disable Rx/Tx
interrupts, return a status flag and check for interrupt source.
2012-10-16 14:07:34 -07:00
Ken Sarkies
6ee8e44bd7 Initial documentation for stm32/usart.c, usart.h
Some minor documentation corrections to timer.h
2012-10-16 14:07:27 -07:00
Ken Sarkies
0834f41383 stm32f1:
Add object files to Makefile to include new modules into lib.

Correct typo in pwr.c

Add two new functions to timer.c to preset the counter (for use
with deadman style timeouts) and to identify an interrupt
source.

Also noticed lib/makefile.include didn't clean lib/stm32, which
isn't a target. Added a fix.
2012-10-16 14:05:45 -07:00
Piotr Esden-Tempski
9e77f8c361 Merging pull request #28 Random number generator defenition and example.
Merge remote-tracking branch 'tiltit/master'
2012-10-05 13:08:03 -07:00
Piotr Esden-Tempski
cb60e37608 Merging pull request #37 Adds hard-float support to stm32f4, with a nice mandelbrot example
Merge remote-tracking branch 'schodet/hard-float'
2012-10-05 13:03:58 -07:00
Ken Sarkies
7d0611609b Code changes to stm32f1 adc.c and adc.h
remove rcc_set_adc_clk - use rcc version
Added functions:
 - adc_power_on
 - adc_start_conversion_direct
 - adc_set_dual_mode
 - adc_eoc
 - adc_eoc_injected
 - adc_read_regular
 - adc_read_injected
 - adc_set_injected_offset
Tested dual mode scanned regular, but no tests of injected yet.
Changes: "discontinuous" was misspelled.
 - adc_set_discontinuous_mode_regular - added "length" parameter
 - adc_disable_discontinuous_mode_regular - name change
 - adc_enable_discontinuous_mode_injected - name change
 - adc_enable_automatic_injected_group_conversion - disable triggers
 - adc_enable_jeoc_interrupt - name change to match common usage in lib
 - adc_disable_jeoc_interrupt - ditto
 - adc_enable_external_trigger_regular - remove incorrect test on parameter
 - adc_enable_external_trigger_injected - ditto
 - adc_set_sample_time - name change to match function's purpose
 - adc_set_conversion_time_on_all_channels - ditto
 - adc_set_injected_sequence - changed order of register loading (ref Barlow's issue)
 - adc_enable_analog_watchdog_on_all_channels - flipped AWDSGL
 - adc_enable_analog_watchdog_on_selected_channel - ditto
added aliases for expected commonly used functions to avoid sudden user code breakage

In adc.h, corrected errors in SQR names
added "deprecated" compiler warnings to adc_on and to aliases defined in adc.c
2012-10-05 13:50:42 +09:30
chrysn
a69d83d312 unified vector table initialization
the cortex generic interrupts get moved to lib/cm3/vector.c, the
platorms' individual irq names, initialization and handler prototypes go
to platoform specific irq.h files.

as the vector.c file heavily depends on platoform specific headers, it
can't be built once-and-for-all in lib/cm3/, so there are inclusion
stubs in the various architecture dirs; this might be better solved with
Makefile / include path handling.

one particular file is lib/lpc43xx/vector.c; that platform's
initialization code contains an additional section to copy everything
from flash to ram (which probably performs better there). that code
still resides in the inclusion stub, and gets mashed in using defines.
would need a cleaner implementation together with the Makefile solution.

this commit contains some files of the upcoming efm32 branch, from which
it was cherry-picked.

the .bin files produced from before and after this commit only differ in
lpc43xx, where the startup sequence was subtly modified.
2012-10-05 00:55:24 +02:00
Daniel Serpell
c9ab75878f Add all SCB registers mentioned in ARM DDI 0403D manual.
See table B3-4 and B3-5 for the definitions and B3-24 for the
bit assignments of SBC_CPACR.
2012-09-27 23:12:18 +02:00
Nicolas Schodet
7851515c5c Fix merge error
This line was removed in commit acc276a612d4, but it has been restored in the
merge 02ea612142fb.
2012-09-17 17:27:50 -07:00
Ken Sarkies
ff83a1ae1c Setup to document entire project using doxygen.
New doc directory with config files and generated html, LaTeX/pdf.
Makefile provided for autogeneration and explanatory README.

The project structure is hostile to doxygen, which can't cope with functions
of the same name. Doxygen is run for each family separately, and separately
for LaTeX generation. Customized layout files sort of "integrate" HTML, and
separate pdfs are generated for each family. Not ideal but seems the best
solution until doxygen changes, if at all.
2012-09-15 12:51:46 +09:30
Jason Kotzin
34beeae925 USB core updated for reentrance based on Christian Cier-Zniewski's branch 2012-09-13 10:43:35 -07:00
Piotr Esden-Tempski
02ea612142 Merge pull request #25 "Add support for C++ and fix some comments typo"
Merge remote-tracking branch 'schodet/master'

Conflicts:
	include/libopencm3/stm32/f1/adc.h
2012-09-10 12:21:21 -07:00
Oliver Dille
e99896120b Random number generator register definitions. 2012-09-07 22:03:36 +02:00
Nicolas Schodet
5ad8f26ede Fix comments typo 2012-09-02 17:15:13 +02:00
Nicolas Schodet
3aab6220d8 Add C linkage declaration for C++ usage 2012-09-02 17:12:58 +02:00
Ken Sarkies
9af50d6e5c STM32F1xx Additional minor changes to adc.h and adc.c 2012-08-31 21:47:30 +09:30
Ken Sarkies
acc276a612 ADC documentation added
In adc.h additional defines needed to assist documentation - lines 172-191
added, and 384,436-451 are duplicates of earlier defines to complete
parameter sets (compiler has no trouble with these).

Minor doc corrections to other files.

No code changes (apart from additional defines).
2012-08-31 09:54:31 +09:30
Piotr Esden-Tempski
d98dab6ae2 Merging pull request #23 Changed markup to get more control over documentation.
Merge remote-tracking branch 'ksarkies/doc'
2012-08-25 15:16:50 -07:00
Ken Sarkies
52533a6e3d STM32F1xx: Changed markup to get more control over documentation, each
file having its own group module rather than using @file.

No code changes except for the following:

gpio: Added function to map the eventout signal plus two Remap functions
dma: Prevent changing base addresses while channel enabled (see datasheet)
pwr: Added pwr.c (new file)
timer: Removed the last function that I introduced recently; there is already
an equivalent function present. Changed some parameter names for consistency.
2012-08-20 17:19:20 +09:30