aboutsummaryrefslogtreecommitdiff
path: root/libmaple/include
AgeCommit message (Collapse)Author
2013-04-26We are very close to functional. Midi output works, sysex debugging needs to ↵HEADmasterDonald Delmar Davis
be revisited.
2013-04-24I am told that I need to commit at least once a day so people know I am alive...Donald Delmar Davis
2013-04-22Start dealing with packets instead of bytes.Donald Delmar Davis
2013-04-20This ain't pretty but it works...Donald Delmar Davis
2013-04-11fucking maple build system.Donald Delmar Davis
2013-04-10Initial pour of midi code from https://github.com/mlu/maple-ide --builds and ↵Donald Delmar Davis
enumerates.
2013-01-17Handle sending 0 byte packets.Manuel Odendahl
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-17Move endpoint definitions to include files (they are now needed outside in ↵Manuel Odendahl
usb_serial.cpp) Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
2012-09-02"Callback versions of functions now take voidArgumentFuncPtr. We can ↵Aditya Gaddam
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-08-31"Added ability to set callbacks for interrupts that get an argument. This ↵Aditya Gaddam
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-22Revert "Re-work the constraints on delay_us(). Ask GCC to allocate a register"Marti Bolivar
This reverts commit 715a63dccb3a39d7d0502fb39b900c8302a60a87. 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-22Re-work the constraints on delay_us(). Ask GCC to allocate a registerMichael Hope
instead of forcing r0. Use the same operand as input and output to remove the move. Signed-off-by: Michael Hope <michael.hope@linaro.org>
2012-08-14Make PRIMASK set/clear functions __always_inline.Marti Bolivar
This is just to ensure that -Os doesn't prevent these from getting inlined. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-04usb_cdcacm.h: Add convenience for declaring device descriptor.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-04<libmaple/usb.h>: Fix usb_descriptor_string.Marti Bolivar
uint16 is the wrong type for the bString array. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-04Move contents of usb_descriptors.h to <libmaple/usb.h>.Marti Bolivar
These form and name of structs etc. is basically determined by the USB spec and the libmaple style guide, so there's little reason for them to change, and less reason for them to stay hidden. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-04Prep usb_descriptors.h for removal.Marti Bolivar
Just change names and things to fit the libmaple style. Its contents will move to the top-level <libmaple/usb.h> header next. This API is still unstable, but we need to expose pieces of it in order to get the Maple-specific pieces of usb_cdcacm.c into Wirish. Adjust uses of the API appropriately. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-04usb_cdcacm: Expose line coding state.Marti Bolivar
This was already supported, so just move the line coding structure to the header and add some functions for accessing the current values. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-04usb_cdcacm: various fixups.Marti Bolivar
Mark internal state static. Properly reset the RX/TX state on USB reset. Choose better names for countTx and newBytes. Move the exposed configuration back into the .c; this information is not beneficial to hooks. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-08-01usb_cdcacm: Rename "notification" -> "management".Marti Bolivar
This keeps things in line with the specification, helping readability. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-07-31Move bootloader details out of libmaple.h.Marti Bolivar
Finally! Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-07-31Move bootloader reset signal detection to Wirish.Marti Bolivar
Use usb_cdcacm hooks to move the DTR edge and "1EAF" magic packet detection to usb_serial.cpp. We'll later be able to extend this system to support Leonardo-style reset signalling. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-07-31usb_cdcacm: Add usb_cdcacm_peek().Marti Bolivar
We need this so the bootloader reset signal detector can look ahead in the byte stream without stealing bytes from the user when "1EAF" isn't received. While we're doing this, take the time to fix a bunch of RX-related code (dead code removal, adding volatile, etc.) Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-07-31usb_cdcacm: Add hook system.Marti Bolivar
Provide hooks so users can reach into the CDC ACM callbacks with their own code. We'll use this to move the bootloader reset signals to Wirish. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-07-31usb_cdcacm: Expose some internal configuration and values.Marti Bolivar
Mark the API as unstable so people don't rely on these too hard. (This header is not part of the official libmaple docs). We'll need some of this configuration elsewhere later, and it doesn't make much sense to expose it piecemeal. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-07-13<libmaple/scb.h>: Add FIXME to check for F2 compatibility.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@lozenge.(none)>
2012-07-13<libmaple/scb.h>: Don't use BIT().Marti Bolivar
Also, assert copyright LeafLabs 2012. Signed-off-by: Marti Bolivar <mbolivar@lozenge.(none)>
2012-07-13<libmaple/scb.h>: Assert LeafLabs copyright.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@lozenge.(none)>
2012-06-28Doxygen hacks and fixups.Marti Bolivar
- Shut Doxygen up in various places - Fix some genuine docs bugs - Ignore sources we're not responsible for Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22<libmaple/i2c.h>: Add I2C_CCR_DUTY bit value definitions.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22i2c_dev: deprecate .gpio_port.Marti Bolivar
This won't work on F2, which at times has SDA and SCL on different ports (e.g. I2C3 SDA on PC9, SCL on PA8). Add .sda_port and .scl_port replacements, which are used when the now-deprecated .gpio_port is null. Use them correctly everywhere, with some new i2c_private.h helper functionality. Sigh. The F1 I2C code tries too hard to guess what you wanted; it's not porting well at all. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22I2C: Deprecate I2C_REMAP flag.Marti Bolivar
This is ad-hoc and nonportable. If you really want I2C mapped elsewhere, then mess with the I2C device fields and call afio_remap() yourself. (This is also cleaner for F2). Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22I2C: Move F1-only errata workarounds out of libmaple/i2c.c.Marti Bolivar
The IRQ priority hack is unnecessary on targets with properly functioning I2C IRQ handlers, so we shouldn't use it unless we have to. Add a mechanism so a series header can provide such a hack if necessary. Have the F1 series header use this mechanism. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22I2C: Add i2c_config_gpios(), i2c_master_release_bus().Marti Bolivar
These are necessary to pull out some calls to gpio_set_mode(). Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22<libmaple/i2c.h>: Fix Doxygen.Marti Bolivar
Existing Doxygen was commenting I2C_IRQ_ERROR instead of i2c_enable_irq(), as desired. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22libmaple/i2c.h: Better comments.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22<libmaple/i2c.h>: Move low-level routines to end of file.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22I2C: Fix Doxygen F1-isms.Marti Bolivar
I'm not sure these functions should even exist in their present form,, but I don't understand the code well enough to make a real fix. For now, just replace references to RM0008 with "chip reference manual". Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22i2c_set_input_clk(): fix an F1-ism.Marti Bolivar
i2c_set_input_clk()'s documentation says that the maximum peripheral clock frequency is 36 MHz, but that's a hard-coded magic number. The actual limit is the device's APB frequency or 46 MHz, whichever is lower (F2 and F4 share the 46 MHz limit). Fix the documentation to reflect that fact, and add an internal series-provided function to get the maximum clock frequency for a device. To help users porting to F2, have i2c_set_input_clk() assert-check that the provided frequency is less than that maximum value and the hard 46 MHz limit. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22Move i2c_dev and i2c_state into new i2c_common.h.Marti Bolivar
This is necessary to add series-specific infrastructure to clean up some F1-isms in <libmaple/i2c.h>'s inline functions. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22libmaple/i2c.h: Cosmetics.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22I2C: Restore on F1, refactoring prep for F2.Marti Bolivar
Bring back <libmaple/i2c.h> support on STM32F1 with a view towards how it'll be implemented on STM32F2. There are still many F1-isms in libmaple/i2c.c and <libmaple/i2c.h>, to be dealt with subsequently. Move device declarations and base pointer definitions to a new F1 <series/i2c.h>. The register maps and bit definitions themselves are identical on both series, so leave them in the libmaple header. Add i2c_private.h, which contains: - I2C_DEV(), a convenience macro for defining an i2c_dev, and - declarations for the event and error IRQ handlers. The IRQ handlers are large, and I2C is slow anyway, so I see no reason to make them inline in the private header (as we do for some other peripherals). We just expose the existing ones that were formerly static in libmaple/i2c.c, but prefix the names with underscore. Move the device declarations and IRQ handlers into new stm32f1/i2c.c. These use the i2c_private.h API. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22<libmaple/i2c.h>: Cosmetics.Marti Bolivar
Put CCR definitions after SR2, to keep them in register map order. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22<libmaple/i2c.h>: Cosmetics.Marti Bolivar
Reorder register bit definitions by descending bit number, for consistency with the rest of the library. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22<libmaple/i2c.h>: Add missing register bit defns.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22libmaple/i2c.h: Assert LeafLabs copyright.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22Fix I2C_CR2_FREQ bit definition.Marti Bolivar
The existing value clobbers the entire register. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22libmaple/i2c.h: Cosmetics.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-22libmaple/i2c.h: Don't use BIT().Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
2012-06-21<libmaple/dma.h>: Assert LeafLabs copyright.Marti Bolivar
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>