aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/rules.mk
Commit message (Collapse)AuthorAgeFilesLines
* Move RCC support for STM32F1 to libmaple/stm32f1/.Marti Bolivar2012-04-111-2/+1
| | | | | | | | | | | | This is a backwards-compatible change. Modify libmaple/rules.mk to include the family's include directory. This allows libmaple/include/libmaple/rcc.h to include the STM32F1 RCC header with #include <family/rcc.h>. We'll use this convention henceforth to distinguish between top-level and family-specific headers. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* libmaple/rules.mk: Reinstate -Werror.Marti Bolivar2012-04-111-1/+1
| | | | | | This is OK across all boards now that USB is its own submodule. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Make USB its own submodule.Marti Bolivar2012-04-111-13/+1
| | | | | | | | | | | | | | | Add libmaple/usb/rules.mk, which compiles the USB FS device firmware submodule. Move the logic for compiling the USB stack from libmaple/rules.mk into libmaple/usb/rules.mk. Move libmaple/usb/usb_cdacm.h to libmaple/include/libmaple/. Its API is sufficiently general that we'll be able to port it over to USB OTG (either FS or HS) eventually, and that lets us include it from Wirish using the new style for libmaple headers. Fix the includes for public libmaple headers within libmaple/usb. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Move public headers to include directories; related cleanups.Marti Bolivar2012-04-111-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Remove usb_int.h, usb_int.h, usb_int.c.Marti Bolivar2011-10-181-1/+0
| | | | | | No longer used. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* usb: Disentangle CDC ACM functionality.Marti Bolivar2011-10-181-2/+1
| | | | | | | | | | | | | | | | | | | | | Add new usb_cdcacm.h, which provides the virtual serial port API. This file (and new usb_cdcacm.c) consolidate the VCOM support, which was previously distributed through descriptors.[hc], usb.[hc], usb_callbacks.[hc], and usb_config.h. Add usb_init_usblib() to usb.h, as a way of initializing the USB peripheral in terms of the data structures required by usb_lib. This is used by the new usb_cdcacm_enable(). Create new usb_lib_globals.h, with declarations for the usb_lib global state which is most used throughout the rest of the libmaple USB stack. Remove descriptors.c and usb_callbacks.[hc]; they are no longer necessary. Update the USB README accordingly. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Add usb_reg_map.h and usb_reg_map.c.Marti Bolivar2011-10-181-0/+1
| | | | | | | | | | | usb_reg_map.h contains the usual register map and register bit definitions that libmaple convention requires. It also contains a variety of structs and convenience functions for accessing and manipulating endpoint registers, BTABLE entries, and PMA buffers. We'll be moving towards usb_reg_map.h instead of usb_lib/usb_regs.h. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Remove usb_hardware.c and usb_hardware.h.Marti Bolivar2011-10-181-1/+0
| | | | | | | These files contain a lot of duplicated and unused code. Move the relevant pieces that need to survive into usb.c and usb_callbacks.c. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* libmaple: Fix warnings in libmaple source filesPerry Hung2011-05-121-1/+1
| | | | | -Add -Wall, -Werror to libmaple/* -Fix warnings
* NVIC and SCB refactorMarti Bolivar2011-04-051-1/+1
|
* Initial timer refactor.Marti Bolivar2011-03-241-1/+1
| | | | | | | | | | | | | | | Basic PWM works. Had some problems in testing that might be due to USART bugs. HardwareTimer has been removed from the build for now; I will re-implement it in terms of the new libmaple API, but consider it deprecated. Let's come up with something better. Servo is implemented in terms of HardwareTimer, so it also has been temporarily removed from the build. pwmWrite() likely got a little bit less inefficient due to indirection, but the PIN_MAPs shrank by a pointer per PinMapping.
* Merge branch 'i2c-wip' into refactorPerry Hung2011-03-211-0/+1
|\ | | | | | | | | | | | | Conflicts: examples/test-fsmc.cpp libmaple/rules.mk wirish/boards.h
| * checkpointPerry Hung2011-02-261-0/+1
| |
* | Maple RET6 edition supportMarti Bolivar2011-03-161-0/+1
|/
* nzmichaelh's pull request mods compile and upload.Marti Bolivar2010-12-281-10/+13
| | | | renamed SysTick_Handler back to SysTickHandler since all of our linker magic/lanchon-stm32 depends on that name. added backup register support in order to test independent watchdog support; it seems to work. next major test target is DMA support.
* Enable USB auto-reset in a hard fault.Perry Hung2010-09-171-4/+7
| | | | | | | | Redirect thread-mode execution to a fail routine which throbs the LED to indicate a hard fault. Because the fail routine runs in thread mode with interrupts on, USB auto-reset should now work. Test by executing some bogus instruction (e.g. *(volatile int*)0xf34fdaa = 0;) and check that the auto-reset continues to work.
* basic working dac implementationbnewbold2010-08-071-0/+1
|
* partial progress on FSMC for SRAMbnewbold2010-08-051-0/+1
|
* make: Modularize makefiles, add dependency tracking, build-type trackingPerry Hung2010-06-251-0/+50
Major build system rewrite. New and exciting: 1. Proper dependency tracking. All source files including header files should be properly tracked and recompiled as necessary when they are changed. 2. Build-type tracking. If the target changes from 'ram' to 'flash,' for example, the build system will force a rebuild rather than incorrectly link modules to a different address. 3. New targets: The old 'ram,' 'flash,' and 'jtag' targets have been replaced with the environment variable MAPLE_TARGET, which controls the link address. Users can either export it to their environment, or pass MAPLE_TARGET on the command-line. Once this is set, sketches can be compiled with 'make sketch,' or simply 'make.' Note: the default is MAPLE_TARGET='flash.' The target 'install' now automagically uploads the sketch to the board using the appropriate method. The 'run' target has been renamed to 'debug.' It starts an openocd gdb server. 4. Odds and ends: -Verbose and 'quiet' modes. Set V=1 for verbose compilation, the default is quiet. -Object file sizes and disassembly information is generated and placed in build/$(BOARD).sizes and build/$(BOARD).disas, respectively. -Parallel make with -j should speed things up if you have multiple cores.