aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/usart.c
Commit message (Collapse)AuthorAgeFilesLines
* Move public headers to include directories; related cleanups.Marti Bolivar2012-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move libmaple/*.h to (new) libmaple/include/libmaple/. The new accepted way to include a libmaple header foo.h is with: #include <libmaple/foo.h> This is more polite in terms of the include namespace. It also allows us to e.g. implement the Arduino SPI library at all (which has header SPI.h; providing it was previously impossible on case-insensitive filesystems due to libmaple's spi.h). Similarly for Wirish. The old include style (#include "header.h") is now deprecated. libmaple/*.h: - Change include guard #defines from _FOO_H_ to _LIBMAPLE_FOO_H_. - Add license headers where they're missing - Add conditional extern "C" { ... } blocks where they're missing (they aren't always necessary, but we might was well do it against the future, while we're at it.). - Change includes from #include "foo.h" to #include <libmaple/foo.h>. - Move includes after extern "C". - Remove extra trailing newlines Note that this doesn't include the headers under libmaple/usb/ or libmaple/usb/usb_lib. These will get fixed later. libmaple/*.c: - Change includes from #include "foo.h" to #include <libmaple/foo.h>. Makefile: - Add I$(LIBMAPLE_PATH)/include/libmaple to GLOBAL_FLAGS. This allows for users (including Wirish) to migrate their code, but should go away ASAP, since it slows down compilation. Wirish: - Move wirish/**/*.h to (new) wirish/include/wirish/. This ignores the USB headers, which, as usual, are getting handled after everything else. - Similarly generify wirish/boards/ structure. For each supported board "foo", move wirish/boards/foo.h and wirish/boards/foo.cpp to wirish/boards/foo/include/board/board.h and wirish/boards/foo/board.cpp, respectively. Also remove the #ifdef hacks around the .cpp files. - wirish/rules.mk: put wirish/boards/foo/include in the include path (and add wirish/boards/foo/board.cpp to the list of sources to be compiled). This allows saying: #include <board/board.h> instead of the hack currently in place. We can allow the user to override this setting later to make adding custom board definitions easier. - Disable -Werror in libmaple/rules.mk, as the current USB warnings don't let the olimex_stm32_h103 board compile. We can re-enable -Werror once we've moved the board-specific bits out of libmaple proper. libraries, examples: - Update includes accordingly. - Miscellaneous cosmetic fixups. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* usart: Add usart_rx().Marti Bolivar2011-10-071-0/+16
| | | | | usart_rx() is a nonblocking USART receive. Add it for symmetry with usart_tx().
* Typos.Marti Bolivar2011-08-111-1/+1
|
* usart: Moving Doxygen comments to points of definitionMarti Bolivar2011-05-191-0/+5
| | | | In keeping with convention.
* Adding nonblocking USART transmit, usart_tx().Marti Bolivar2011-04-251-10/+19
| | | | | Other USART transmission functions are still blocking, but are now implemented in terms of usart_tx().
* usart.c comment fixes.Marti Bolivar2011-04-151-15/+18
| | | | | License header made 80-column clean. usart_irq() comment for the USART_SAFE_INSERT case made easier to understand.
* USART bugfix.Marti Bolivar2011-04-111-1/+1
| | | | | USART refactor commit f6f9a1122706ed336c52c984d76219dee0594487 only worked for USART1.
* USART fixups.Marti Bolivar2011-04-081-2/+2
| | | | | | | * usart_enable(): Doxygen comment bugfix. * usart_disable(): previously, usart_disable() would nuke the entire CR1 register just to clear the UE bit.
* USART refactor.Marti Bolivar2011-04-071-150/+152
|
* Refactor linker scripts. Rename irq and exception handlers.Perry Hung2011-02-271-5/+5
| | | | | Add common linker scripts for ram and rom. Add medium and high density libraries for libcs3.
* Cleaned out libmaple.h; this had wide-ranging implications.Marti Bolivar2011-02-271-4/+8
| | | | | | | | | | | | | | | | | | | Many of the #defines in libmaple.h were board-specific, not MCU-specific. Most of these were only used by code under libmaple/usb/. These were moved into usb_config.h, and are clearly marked as being terrible hacks. I'm going to treat the USB stack as a black box that we'll deal with later. Further, instead of having a variety of #defines like "How many USARTS do I have?", we decide that based on the density of the chip. This is determined by testing for STM32_MEDIUM_DENSITY or STM32_HIGH_DENSITY defines. libmaple currently doesn't support low-density chips, so that suffices. The Makefile will set these automatically based on the MCU. Other offending #defines are ERROR_LED_PORT and ERROR_LED_PIN; these were made optional, but they're set in the Makefile as a hack to keep things working.
* Merge branch 'nzmichaelh-master' into master.Marti Bolivar2011-02-161-25/+39
|\ | | | | | | | | | | | | | | | | This provides DMA, IWDG, PWR, and BKP support, and fixes several bugs. Conflicts: libmaple/adc.h libmaple/libmaple.h libmaple/ring_buffer.h
| * undoing USART[45] -> UART[45] mistakeMarti Bolivar2011-02-151-14/+14
| |
| * [WIP] Code review picked up some bugs/issues.Marti Bolivar2011-01-261-29/+40
| |
* | docsMarti Bolivar2010-10-111-2/+0
|/
* whitespace cleanupsMarti Bolivar2010-09-271-42/+47
|
* Various fixes, working with Maplebnewbold2010-09-011-11/+48
|\
| * inital portability workbnewbold2010-08-251-0/+35
|/
* Cleaned up wirish/time, some interrupt handling refactoring:Perry Hung2010-08-041-1/+1
| | | | | | | | | Fixed millis(), it was just wrong, before. Added micros(), not extensively tested. New implementation of delayMicroseconds(). Should be more consistent now. Added a handful of nvic routines to enable/disable interrupts. Cleaned up systick
* New usart implementation:Perry Hung2010-08-041-239/+42
| | | | | | Fixed a bug where the maximum baud rate was incorrectly set to 225000 General cleanup Use new rcc and nvic APIs
* New reset and clock control apiPerry Hung2010-08-041-3/+3
|
* added Serial.flush()bnewbold2010-07-191-0/+23
|
* Licensing: Relicensed libmaple under the MIT License.Perry Hung2010-03-311-12/+17
| | | | | | Relicensed the bulk of libmaple under the more permissive MIT License, from GPLv3. Files that were largely or entirely derived from the Arduino, STM, or Lanchon retain their original licenses.
* Removed inttypes.hPerry Hung2010-03-311-4/+4
| | | | | Removed inttypes.h from libmaple. Will have another pass through to use the standard libmaple types, but will come in another commit.
* Merge branch 'master' into rcc-devPerry Hung2010-03-301-5/+5
| | | | | Conflicts: Makefile
* Major hierarchy reorganization; see README.bnewbold2010-03-311-0/+345
copy-to-ide and Makefile updated to conform; .gitignore added; LICENSE added