aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/util.c
Commit message (Collapse)AuthorAgeFilesLines
* Add a libc abort() implementation.RJ Ryan2011-09-161-5/+28
| | | | | | | | | | | The STL in particular relies on abort() for entering an error state. Without an abort() definition, the use of many STL primitives results in a link error because the default implementation of abort() uses _kill, _exit, and _getpid -- none of which are present. My abort() implementation writes an error message to the error USART and enters the throbbing-LED error state. Signed-off-by: RJ Ryan <rryan@mit.edu>
* Add an __assert_func assertion handler so that libc does not use itsRJ Ryan2011-09-161-0/+9
| | | | | | | default implementation. This allows the use of assert() from libc's assert.h. Signed-off-by: RJ Ryan <rryan@mit.edu>
* Added more doxygen file level headers. Documented a few more functions.Michael Hope2011-09-131-0/+1
| | | | Signed-off-by: Michael Hope <michaelh@juju.net.nz>
* Update outdated stm32.h usages.Marti Bolivar2011-09-071-1/+1
| | | | | stm32.h has been updated to prefix its definitions. Update the rest of libmaple to take this into account.
* util.c: Respect stm32.h.Marti Bolivar2011-09-071-1/+1
|
* Keep it 80-column clean.Marti Bolivar2011-06-071-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | Go through overlong source code lines and convert as many of them as appropriate to be 80-column clean. This mostly affects license headers. Overlong lines are determined by running following from the libmaple base directory: $ ack-grep --nocolor --nogroup --cpp --cc --ignore-dir=usb -- '.{80}' Note that this excludes libmaple's usb subdirectory, which is still full of ST code that doesn't follow the libmaple source code guidelines. Contents of ~/.ackrc (these won't matter, but are included for completeness): --ignore-dir=docs --ignore-dir=build --type-set ld=.ld --type-set rst=.rst --type-set txt=.txt --type-set mk=.mk
* USART refactor.Marti Bolivar2011-04-071-27/+26
|
* NVIC and SCB refactorMarti Bolivar2011-04-051-2/+2
|
* 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.
* [WIP] GPIO refactor: seems ok, ready for reviewMarti Bolivar2011-03-111-3/+3
|
* Set NONEBASETHRDENA on exception.Perry Hung2011-02-271-18/+32
|
* Cleaned out libmaple.h; this had wide-ranging implications.Marti Bolivar2011-02-271-0/+23
| | | | | | | | | | | | | | | | | | | 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.
* libmaple: Refactor ADC routinesPerry Hung2011-02-271-1/+1
| | | | | | ADC routines rewritten, support for ADC2, 3, added. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* docsMarti Bolivar2010-10-111-2/+0
|
* whitespace cleanupsMarti Bolivar2010-09-271-36/+36
|
* Enable USB auto-reset in a hard fault.Perry Hung2010-09-171-20/+31
| | | | | | | | 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.
* Portability fixesbnewbold2010-08-311-3/+3
| | | | Still not working but fixed a lot of merge errors
* Merge maple-native changes into portablebnewbold2010-08-311-10/+1
|\ | | | | | | This compiles for both maple and maple_native but is untested.
| * inital portability workbnewbold2010-08-251-10/+1
| |
* | partial progress on FSMC for SRAMbnewbold2010-08-051-5/+6
|/
* good quality vga leaf logo; usb+systick disabledbnewbold2010-07-201-1/+1
| | | | | refactored timers and added interrupt behavior. see notes and comments... also includes a crude vga hack that doesn't use timers.
* 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.
* Major hierarchy reorganization; see README.bnewbold2010-03-311-0/+103
copy-to-ide and Makefile updated to conform; .gitignore added; LICENSE added