Commit Graph

79 Commits

Author SHA1 Message Date
Dave Hylands
51dabac096 Add pin mapping code.
This commit also introduces board directories and moves board
specific config into the appropriate board directory.

boards/stm32f4xx-af.csv was extracted from the STM32F4xx datasheet
and hand-tweaked.

make-pins.py takes boards/stm32f4xx-af.csv, boards/stm32f4xx-prefix.c,
and boards/BOARD-NAME/pins.csv as input and generates the file
build/pins_BOARD_NAME.c

The generated pin file for PYBOARD4 looks like this:
https://gist.github.com/dhylands/9063231

The generated pins file includes all of the supported alternate
functions, and includes upsupported alternate functions as comments.

See the commnet block at the top of stm/pin_map.c for details on
how to use the pin mapper.

I also went ahead and modified stm/gpio.c to use the pin mapper.
2014-02-17 21:20:38 -08:00
Damien George
46239413d0 stm: Implement mp_import_stat.
To follow up pull request #309.
2014-02-17 22:44:20 +00:00
Damien George
402dc31aa7 stm: Factor out GPIO code to its own file. Add functions to set GPIO mode.
GPIO functions are crude, and need to be replaced with better ones!
2014-02-16 23:44:23 +00:00
Damien George
2abbae3419 stm: Rename mma -> accel. 2014-02-16 21:41:57 +00:00
Damien George
754a8dd827 stm: Put REPL functions in own file; add raw REPL mode.
Raw REPL mode is activated by CTRL-A, and allows you to more easily
communicate with the pyboard over the serial channel.  In particular,
automated communication using, eg, pyserial on the PC side.
2014-02-16 21:36:03 +00:00
Damien George
a71c83a1d1 Change mp_obj_type_t.name from const char * to qstr.
Ultimately all static strings should be qstr.  This entry in the type
structure is only used for printing error messages (to tell the type of
the bad argument), and printing objects that don't supply a .print method.
2014-02-15 11:34:50 +00:00
Damien George
780ba22bb8 stm: Copy COPT style from unix port. 2014-02-12 20:55:33 +00:00
Paul Sokolovsky
287d9620fc Enable link map file generation. 2014-02-11 14:42:20 +02:00
Damien George
23177088d2 stm: Mount SD card on 1:/ if present.
If SD card is present on (soft) reset then it's mounted on 1:/ and files
can be openned using, eg, open('1:/test.txt', 'r'), or 'w' for writing.
2014-02-08 16:00:15 +00:00
Damien George
01156d510c stm: Add support for ctrl-C to interrupt running Python.
Using PendSV interrupt at lowest priority, code can now raise an
exception during an interrupt by calling pendsv_nlr_jump.  The exception
will be raised when all interrupts are finished.  This is used to trap
ctrl-C from the USB VCP to break out of running Python code.
2014-02-01 16:04:34 +00:00
Damien George
39631bc312 Fix Makefiles: -O3 option was not being applied; mkdir for STM. 2014-01-30 22:16:51 +00:00
Damien George
75abee206d stm: USB host mode working! Restructure stm library directories. 2014-01-26 17:41:01 +00:00
Damien George
449dd0a69e stm: Put gc_collect code in separate file; define _ram_start in .ld.
To partly address Issue #220.
2014-01-25 00:44:31 +00:00
Damien George
58b8a6202a Merge pull request #219 from dhylands/add-deps
Rework makefiles. Add proper dependency checking.
2014-01-24 15:03:39 -08:00
Dave Hylands
c89c681a9f Rework makefiles. Add proper dependency checking. 2014-01-24 08:46:48 -08:00
mux
40048adabc Move file obj to separate module 2014-01-24 17:14:13 +02:00
Damien George
3257d3543b stm: Remove unnecessary #includes; small other changes. 2014-01-23 22:16:15 +00:00
mux
638179fb9c Move RTC to Separate Module
* Move RTC code from main to a separate module.
2014-01-23 13:49:06 +02:00
Damien George
b5d13c309f stm: Fix USART3 init. Small edits to Makefile and other things. 2014-01-22 22:55:07 +00:00
Damien George
2c30256382 stm: Clean up main.c; disable libgcc by default.
f2d and d2f functions from libgcc does not work correctly, most likely
due to the ABI being incorrect.  libgcc disabled for now.
2014-01-21 23:28:03 +00:00
Damien George
d51cfd155c stm: Put HSE_VALUE and other defines in mpconfigport.h.
mpconfigport.h is now included by stm32f4xx.h so that all STM files have
access to these defines.
2014-01-21 22:32:51 +00:00
Damien George
eb380d7261 stm: Put TARGET in mpconfigport.h; support PYBv4. 2014-01-21 22:20:50 +00:00
Damien George
8517bce6b1 Merge pull request #202 from iabdalkader/master
Remove hardcoded PLL_M value
2014-01-21 14:05:49 -08:00
Damien George
55baff4c9b Revamp qstrs: they now include length and hash.
Can now have null bytes in strings.  Can define ROM qstrs per port using
qstrdefsport.h
2014-01-21 21:40:13 +00:00
mux
4578ced209 Add OSC_VALUE to Makefile
* Add the option to pass OSC frequency on command line.
2014-01-21 15:57:01 +02:00
Damien George
b2ebb161d4 stm: Upgrade ST peripheral library from 1.1.0 to 1.3.0. 2014-01-19 17:40:35 +00:00
Damien George
1277753812 stm: Upgrade to latest CMSIS libraries.
CMSIS V3.01 -> V3.20. Now in stm/cmsis to keep separate from ST
libraries.
2014-01-19 16:43:33 +00:00
Damien George
0367ad6214 stm: Include libgcc for __aeabi_d2f and __aeabi_f2d functions.
Thanks to Dave Hylands for this.
2014-01-14 23:48:11 +00:00
mux
3591285091 Implement initial ADC support
* Add simple ADC driver, with support for ADC1 and all channels.
* Export MicroPython ADC object with read_channel function.
* Add stm32f4xx_adc.c and adc.c to Makefile.
2014-01-14 19:57:51 +02:00
Damien George
328708eb25 stm: Re-instate C debugging USART port (disabled by default).
See pyb_usart_global_debug variable.

Also did some work on USB OTG, but nothing working yet.
2014-01-13 00:20:06 +00:00
mux
e78e2dd305 Fix Makefile typo 2014-01-09 13:45:29 +02:00
mux
74269f86b9 Add DEBUG flag to Makefile
* Add a DEBUG flag to Makefile, enables: "-O0 -ggdb"
2014-01-09 13:42:18 +02:00
Dave Hylands
4646801181 Make build output quieter.
Use make V=1e make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.

This should fix issue #117
2014-01-08 10:30:06 -08:00
Dave Hylands
c1db58799d Update stm/Makeile to use OBJCOPY and SIZE macros
While updating the teensy Makfile, I noticed that the stm Makefile
was using calling arm-none-eabi-objcopy and size rather than
$(OBJCOPY) and $(SIZE), so I added these 2 for consistency.
2014-01-08 09:07:29 -08:00
Damien George
9193f89296 Move lexerstr to main py directory (everyone uses it). 2014-01-08 15:28:26 +00:00
Dave Hylands
9b7b947b01 Updated teensy to use common code from stm directory.
Updated mconfigport.h to enable GC
2014-01-08 00:29:44 -08:00
Damien George
d3ebe4829d Factor and simplify Makefile's and mpconfig, part 2. 2014-01-07 15:20:33 +00:00
mux
50d5420deb Add Initial Support for STM32F4DISCOVERY Board
* Add a TARGET definition to Makefile (default PYBOARD).
* Add support for discovery LEDs in led module.
* Add support for discovery user switch in usersw
* Add EXTI interrupt handler for discovery user switch on (PA0).
* Parameterize led and usrsw modules pins and port.
* Issue #83
2014-01-05 19:38:41 +02:00
mux
de7fcc0c06 Move user switch code into a separate module
* Move user switch code from main.c into a separate module (usrsw)
* Add usrsw.c to Makefile
2014-01-05 14:56:46 +02:00
Damien George
71c5181a8d Convert Python types to proper Python type hierarchy.
Now much more inline with how CPython does types.
2014-01-04 20:21:15 +00:00
Paul Sokolovsky
5830fae26f Don't error out if build/ directory already exists. 2014-01-04 18:55:44 +02:00
Paul Sokolovsky
1c6de11f77 Add basic implementation of slice object.
So far, only start and stop integer indexes are supported. Step is
not supported, as well as objects of arbitrary types.
2014-01-04 02:35:48 +02:00
Paul Sokolovsky
b372bfca21 Rename default config file to mpconfig.h, and port's to mpconfigport.h.
mpconfig.h will automatically pull mpconfigport.h.
2014-01-03 19:03:11 +02:00
Damien George
c2e21bb7d9 Merge pull request #45 from iabdalkader/master
Change dfu.py to be Python 2/3 compatible
2014-01-03 07:02:17 -08:00
Damien George
66028ab6dc Basic implementation of import.
import works for simple cases.  Still work to do on finding the right
script, and setting globals/locals correctly when running an imported
function.
2014-01-03 14:03:48 +00:00
mux
1a1ba4d555 Change dfu.py to be Python 2/3 compatible
* Chane dfu.py to use Python 3 syntax to avoid dependency on Python 2.
* Update Makefile to call python instead of python2
* Fix #33
2014-01-03 08:51:02 +02:00
Damien George
aae7847508 Change old use of module creation to new proper use. 2014-01-03 00:10:22 +00:00
Damien George
2870862601 Add module object, to be used eventually for import. 2014-01-02 21:30:26 +00:00
Paul Sokolovsky
e1151e463d Use rm -rf to remove build dir, so it doesn't error out if dir doesn't exist. 2013-12-30 21:02:10 +02:00
Damien George
8cc96a35e5 Put unicode functions in unicode.c, and tidy their names. 2013-12-30 18:23:50 +00:00