Commit Graph

1184 Commits

Author SHA1 Message Date
Michael Hope 828facd2b7 Use stdint.h to define the basic types.
Solves a problem when building in strict C++ mode, as GCC defines
uint32_t as unsigned long on systems where sizeof(long) == 4.  This
causes GCC to complain that uint32 != uint32_t as unsigned int !=
unsigned long.

Signed-off-by: Michael Hope <michaelh@juju.net.nz>
2013-06-30 21:07:59 +02:00
Daniel Nyström 4ab37d27d3 build-rules.mk: Add CROSS_COMPILE env var support
Since toolchains other then older Code Sourcery (Mentor Graphics)
might not use the arm-none-eabi triplet, make it possible to use
any triplet by just setting the CROSS_COMPILE environment variable
accordingly.

Signed-off-by: Daniel Nyström <daniel@nystrom.st>
2013-06-04 14:17:43 +02:00
Daniel Nyström ce07837e32 wirish/syscalls.c: Replace obsolete caddr_t with void *
caddr_t is obsolete in POSIX and thus unavailable in most modern
toolchains. caddr_t usage should be replaced by void *.

stddef.h includes the size_t typedef which was missing.

Signed-off-by: Daniel Nyström <daniel@nystrom.st>
2013-06-04 14:17:38 +02:00
Daniel Nyström ffa57f5f4a libmaple/timer.c: Sync enable_irq() declaration with it's definition
Signed-off-by: Daniel Nyström <daniel@nystrom.st>
2013-06-04 14:17:28 +02:00
Magnus Lundin f55297e7a3 Use linker symbol __text_start__ to setup base of nvic vector table.
Signed-off-by: Magnus Lundin <lundin@mlu.mine.nu>
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-05-03 19:10:21 -04:00
Magnus Lundin f66451de16 wirish/syscalls.c: add weak exit function.
For toolchains which require an exit function.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-05-02 11:39:24 -04:00
Marti Bolivar 0fca062e2d libmaple/usb/stm32f1/usb.c: cosmetics.
Whitespace and comments.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-04-30 09:22:31 -04:00
Marti Bolivar 07b56b89fb libmaple/usb/stm32f1/usb.c: fix build error.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-04-29 10:19:42 -04:00
Marti Bolivar 58794b59d4 Merge remote-tracking branch 'wesen/bug/usb-resume' 2013-04-26 12:49:55 -04:00
Manuel Odendahl 5315e3a239 Preserve previous usb state when suspending / restore on resume
Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2013-04-26 11:12:03 +02:00
Marti Bolivar 13635d539f usb_cdcacm: Reset transmitting flag in usbReset().
Thanks to Manuel Odenahl for the fix.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-04-15 15:01:58 -04:00
Marti Bolivar 048e70fc41 usb_cdcacm: Make USB lib globals weak symbols.
This allows users to override them.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-01-18 18:18:30 -05:00
Marti Bolivar 964279b9bf Merge branch 'bug/usb-full-ep'
This resolves issues related to sending full (64B) packets via USB
2.0. In this case, some hosts continue to expect more data. Add
infrastructure for sending 0-byte packets to signal end of
transmission, and use it in SerialUSB.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-01-18 18:12:21 -05:00
Marti Bolivar 0dbf94bf31 usb_cdcacm.c: Fixups for usb_cdcacm_tx().
- Check if we're transmitting (instead of how many bytes are left
  untransmitted) before bailing, in case we're transmitting a
  zero-length packet.

- Set transmitting=1 before setting the endpoint valid to avoid races
  with the USB interrupt.

- Eliminate some duplicated code.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-01-17 18:08:39 -05:00
Marti Bolivar df868dd75c Merge branch 'dbl-buf-usb'
For bulk double buffer support.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-01-17 17:49:24 -05:00
Marti Bolivar d12a5b14e1 usb_reg_map.c: Fix incorrect function name call.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-01-17 17:48:13 -05:00
Marti Bolivar 9e14f40c20 usb_reg_map.h: Fix incorrect register bit definitions.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-01-17 17:47:27 -05:00
Manuel Odendahl cea8158e97 Check if the last packet sent was the full endpoint size, in this case flush the host buffers by sending a 0 byte packet
Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2013-01-17 21:23:37 +01:00
Manuel Odendahl 7446068400 Handle sending 0 byte packets.
Added a flag to see if we are currently waiting on an interrupt to acknowledge the sending of the current
IN packet.
Added a method usb_cdcacm_is_transmitting() to check for that flag.

Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2013-01-17 21:17:00 +01:00
Marti Bolivar e4bbddf052 Merge remote-tracking branch 'wesen/bug/bkp'
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-01-17 15:11:14 -05:00
Manuel Odendahl 699f97fdcb Move endpoint definitions to include files (they are now needed outside in usb_serial.cpp)
Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2013-01-17 21:11:10 +01:00
Manuel Odendahl b3287225c5 Rename misleading ptr function
Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2013-01-17 21:09:07 +01:00
Manuel Odendahl e6a138499d Fix BKP write enable
Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2013-01-17 21:03:18 +01:00
Manuel Odendahl bbff6fbf78 Set DCNTR before starting DMA transfer.
I am not sure why this would work for most DMA transfers but I ran into trouble when doing
SDIO DMA.

Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2013-01-17 20:54:54 +01:00
Manuel Odendahl c95edd391e Refactor setting a USB EP rx count
Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2013-01-17 20:52:34 +01:00
Manuel Odendahl e0748ce668 Rename USB_EP_EP_KIND to USB_EP_EP_KIND_DBL_BUF
Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2013-01-17 20:52:25 +01:00
Manuel Odendahl 0c8ab1f655 Add double buffering routines
Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2013-01-17 20:51:58 +01:00
Dmitry Prokhorov 55aecffedf Add fix to support Summon/Linaro GCC ARM embedded toolchain.
Signed-off-by: Dmitry Prokhorov <dipspb@gmail.com>
2013-01-05 23:25:14 +04:00
Marti Bolivar e58051ea46 examples/blinky.cpp: Use toggleLED() instead of digitalWrite().
Keep things simple.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2013-01-01 20:11:14 -05:00
Marti Bolivar 4faf11574e Merge remote-tracking branch 'wesen/bug/high-density-irqs'
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-11-08 16:20:17 -05:00
Manuel Odendahl 8e14e7ff77 usb_cdcacm.c: reenable the endpoint if an empty bulk transfer was received.
It is possible to receive empty bulk transfers. This would lead to the endpoint never being reenabled as this was handled by the read routine. This caused the USB to hang.

Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2012-11-08 20:53:32 +01:00
Manuel Odendahl ec9a59bef8 stm32f1/rules.mk: update include path for assembler files
stm32f1/performance: load stm32.h in order to have STM32_HIGH_DENSITY when necessary

STM32_HIGH_DENSITY was not defined in isrs.S and vector_table.S for a high density STM32. This was because stm32.h where the flag is now defined (in contrast to being defined on the command line in an earlier version of libmaple) was not included. This led to crashes when using one of the high density peripherals.

Updated the ASFLAGS to have the correct include path in rules.mk.
Include stm32.h in the assembler files.

Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2012-11-07 20:25:37 +01:00
Marti Bolivar 50448497f8 Add some missing LeafLabs copyright notices.
Sigh; Emacs's elide-head feature makes it easy to forget to update
these.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-09-04 01:36:48 -04:00
Marti Bolivar e45697a65f exti.c: Use exti_num enumerators instead of magic values.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-09-03 18:31:50 -04:00
Marti Bolivar c5dfc108e6 Merge branch 'callback_interrupt_handlers' 2012-09-03 18:29:45 -04:00
Marti Bolivar d9f8b4f8c4 EXTI examples: whitespace fixups.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-09-03 18:28:48 -04:00
Marti Bolivar d3581c10d5 ext_interrupts.cpp: Doxygen fixups.
Keep the Doxygen in the header as per Wirish conventions.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-09-03 18:27:51 -04:00
Marti Bolivar ef280366bc Whitespace fixups to EXTI files.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-09-03 18:27:18 -04:00
Aditya Gaddam f86cbffa46 "Changed tabs to spaces. Changed some braces placement to match existing examples
Signed-off-by: Aditya Gaddam <adityagaddam@gmail.com>"
2012-09-03 18:05:57 -04:00
Aditya Gaddam bd703d8a4b "Added two examples for using attachInterrupt. One shows the use of a global function. While the second shows the use of a static class method as the event handler. Both work on Maple REVC
Signed-off-by: Aditya Gaddam <adityagaddam@gmail.com>"
2012-09-03 17:58:04 -04:00
Aditya Gaddam e77b2b7f46 "Callback versions of functions now take voidArgumentFuncPtr. We can probably use voidFuncPtr instead, but this way people can see that the function expects something different. Existing functions haven't changed in signature.
Signed-off-by: Aditya Gaddam <adityagaddam@gmail.com>"
2012-09-02 11:04:01 -04:00
Marti Bolivar 9992325cef Include <stdint.h> from wirish.h.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-31 16:12:28 -04:00
Marti Bolivar a62e15ab59 Fixups for Wire library builds.
Add libraries directory to global include path, so Wire sub-headers
can be included in a directory-independent way.

Tweak Wire global declaration and definition so it builds.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-31 16:12:14 -04:00
Aditya Gaddam f6f2601213 "Added ability to set callbacks for interrupts that get an argument. This argument can be the instance that needs to handle the interrupt, or just a random argument you might find useful later. Suggestions from mbolivar and iperry from pull53 on libmaple were taken into account.
Signed-off-by: Aditya Gaddam <adityagaddam@gmail.com>"
2012-08-31 14:19:57 -04:00
Marti Bolivar 853d0b1a5a HardwareSPI: move warning into .cpp from header.
This causes the warning to be emitted at most once. As is, it can be
emitted each time HardwareSPI.h is included, which is annoying.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-27 16:50:57 -04:00
Marti Bolivar 2022b933be usb_serial.cpp: Hackishly silence spurious warnings on VLDiscovery.
Guard hooks with BOARD_HAVE_SERIALUSB to keep GCC quiet.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-27 16:50:57 -04:00
Marti Bolivar 151ad0d460 notes/interrupts.txt: Fix typos and other errors.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-23 01:46:50 -04:00
Marti Bolivar 994c7b2683 Add notes/interrupts.txt.
This is a developer's doc explaining how interrupts are handled in
libmaple. It's time we exposed this information to enable people who
know what they're doing to move around more easily.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-23 01:25:16 -04:00
Marti Bolivar e8c974423c Revert "Re-work the constraints on delay_us(). Ask GCC to allocate a register"
This reverts commit 715a63dccb. It fails
to build using the 2010 CodeSourcery toolchain, which is still the latest
officially supported version.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-22 17:05:04 -04:00
Marti Bolivar 64e8a234bf usb_serial.cpp: Neaten up reset signal RX hook.
Move magic bytes from stack to Flash. De-magic-number sizeof magic
byte buffer. Use uintptr_t instead of unsigned int when casting
address of wait_reset().

Based on a patch by Michael Hope.

Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-22 13:26:43 -04:00