Commit Graph

245 Commits

Author SHA1 Message Date
Paul Sokolovsky
20632e4d3f stm: Provide malloc()/realloc()/free(), as forwarding to gc_*() functions.
Note: none of these functions are used by STM port, so they're provided
to have parity with pre gc refactor status quo, and in case they will be
needed in the future by some extension writers.
2014-02-11 18:09:50 +02:00
Paul Sokolovsky
b62c30b4bc Generalize malloc-via-gc-heap support, make it available to unix port. 2014-02-11 16:20:02 +02:00
Paul Sokolovsky
287d9620fc Enable link map file generation. 2014-02-11 14:42:20 +02:00
Damien George
181d190643 stm: Remove unused, useless and not-to-be-used strndup.
Addresses issue #275.
2014-02-10 22:55:15 +00:00
Damien George
f1081f400b Merge branch 'master' of github.com:micropython/micropython 2014-02-10 22:51:35 +00:00
Damien George
ed378cd12f stm: Tidy up memory labels; optimise GC root scanning.
Addresses issues #272 and #273.
2014-02-10 22:50:44 +00:00
Paul Sokolovsky
58ff93bc7c Get rid of calloc().
If there's malloc and memset, then there's no need for calloc, especially if
we need to implement it ourselves.
2014-02-10 18:40:00 +02:00
Damien George
698ec21e46 Make mp_obj_str_get_data return char* instead of byte*.
Can't decide which is better for string type, char or byte pointer.
Changing to char removes a few casts.  Really need to do proper unicode.
2014-02-08 18:17:23 +00: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
354d15a964 Implement fixed buffer vstrs; use them for import path. 2014-02-06 21:11:19 +00:00
Damien George
e09ffa1400 Search paths properly on import and execute __init__.py if it exists. 2014-02-05 23:57:48 +00:00
Paul Sokolovsky
9110896063 Remove older import helpers, no longer used. 2014-02-05 02:03:23 +02:00
Dave Hylands
1570a96cad Initial support for Netduino
This also fixes up the IRQ for the PYBOARD4 USERSW
although I was unable to test that functionality.
2014-02-03 23:26:05 -08:00
Damien George
d71cd86dc1 Merge branch 'iabdalkader-master'
Conflicts:
	stm/usb.c
	stm/usb.h
2014-02-01 16:17:06 +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
mux
565fdccfd2 Add usb_vcp_connected prototype to usb.h 2014-02-01 15:49:16 +02:00
mux
b2269b610e Detect VCP line state.
* Detect VCP line state, based on SET_CONTROL_LINE_STATE request
2014-02-01 13:28:29 +02: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
2d15c1216d stm: Add optional memory debugging output. 2014-01-29 20:33:20 +00:00
Damien George
01fa4a9164 stm: Fix gccollect ram range. 2014-01-29 19:21:17 +00:00
mux
bfb01e9da6 Fix unused function warning in main
* Add SD card test to fix warning
2014-01-29 15:07:04 +02:00
mux
8592d85b36 Remove redundant include in file.c
* Remove include mpconfigport.h from file.c
2014-01-29 15:05:53 +02:00
mux
76a6335b6e Move HEAP_END and RAM_END to linker script
* Issue #232
2014-01-29 12:52:03 +02:00
Damien George
217814cc63 stm: Increase timeout for RTC LSE startup; use backup regs. 2014-01-28 23:47:28 +00:00
Damien George
42647e64db stm: Remove unneccesary include of mpconfigport (already in mpconfig). 2014-01-27 23:52:47 +00:00
mux
8d3b0a9f74 Add LCD check to stdout_print_strn 2014-01-27 18:53:16 +02:00
mux
bd61a6cee8 Add missing LCD driver definitions for STM32F4DISC
* Add missing LCD definitions for STM32F4DISC target, current code
  breaks build.
2014-01-27 10:56:47 +02:00
Damien George
75abee206d stm: USB host mode working! Restructure stm library directories. 2014-01-26 17:41:01 +00:00
Damien George
51f3a6becd stm: Improved ADC module; add BOARD_NAME config value. 2014-01-25 16:30:47 +00:00
Damien George
b829b5caec Implement mp_parse_node_free; print properly repr(string). 2014-01-25 13:51:19 +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
Damien George
0004a84ec0 Revert "Move gc_collect to py/gc.c"
This reverts commit a215b09c0d.
2014-01-24 22:54:09 +00:00
mux
a215b09c0d Move gc_collect to py/gc.c
* Move gc_collect from main to py/gc.c
* Define GC's memory boundaries in linker script
* Issue #220
2014-01-24 21:33:19 +02: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
45ad9b405d Move LED defs to mpconfigport.h 2014-01-23 22:35:48 +02:00
Damien George
b080c7946b Merge branch 'master' of github.com:iabdalkader/micropython into iabdalkader-master
Conflicts:
	stm/main.c
2014-01-23 18:40:57 +00:00
Damien George
cfedd81c07 Merge branch 'master' of github.com:micropython/micropython 2014-01-23 18:11:05 +00:00
Damien George
26a00085fe stm: LCD support for PYBv4; fix MMA reading code. 2014-01-23 18:10:42 +00:00
mux
1d1e4e1bd5 Fix USB CORE PCGCCTL Wrong Address
* Fix PCGCCTL bug using address instead of value.
* Fix issue #211
2014-01-23 18:27:29 +02: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
mux
c4808dae0a Add More Feature Test Macros
* Add MICROPY_HW_HAS_LCD
* Add MICROPY_HW_HAS_WLAN
* Use feature test macros in main
2014-01-23 13:41:35 +02:00
Paul Sokolovsky
bc5b3f8c73 stm: Add memcmp() implementation. 2014-01-23 02:47:10 +02:00
Damien George
8bcc52e834 Merge branch 'master' of github.com:micropython/micropython 2014-01-22 22:56:17 +00:00
Damien George
b5d13c309f stm: Fix USART3 init. Small edits to Makefile and other things. 2014-01-22 22:55:07 +00:00
mux
3c7e71fb00 Fix Feature Macro Prefix 2014-01-22 20:34:02 +02:00
mux
630d8ff89f Remove Underscore from Macro Names 2014-01-22 18:11:48 +02:00
mux
28b23f09a4 Add Generic Feature Macros to mpconfigport
* Add some generic feature macros to mpconfigport
* Move pin and port definitions from usrsw.c to mpconfigport
2014-01-22 17:42:06 +02:00
Damien George
5fa93b6755 Second stage of qstr revamp: uPy str object can be qstr or not. 2014-01-22 14:35:10 +00:00
Damien George
8ae1c1beac Merge branch 'fix-stm-discovery' of github.com:dhylands/micropython into dhylands-fix-stm-discovery
Conflicts:
	stm/main.c
2014-01-22 11:56:24 +00:00
Dave Hylands
72a31162e9 Fix support for STM32F4DISCOVERY 2014-01-21 18:08:39 -08: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
mux
e9c01dea32 Remove hardcoded PLL_M value 2014-01-21 14:43:13 +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
a11ceca807 Change int to uint for n_args in function with variable arguments. 2014-01-19 16:02:09 +00:00
Damien George
136b149e41 py: Add full traceback to exception printing. 2014-01-19 12:38:49 +00:00
Damien George
08335004cf Add source file name and line number to error messages.
Byte code has a map from byte-code offset to source-code line number,
used to give better error messages.
2014-01-18 23:24:36 +00:00
Damien George
8161a10de1 stm: Add stm import support. 2014-01-16 22:09:13 +00:00
Damien George
613eb25545 stm: Fix print methods with new kind argument. 2014-01-15 23:02:53 +00:00
Damien George
4899ff9470 Merge branch 'str-repr' of github.com:pfalcon/micropython into pfalcon-str-repr
Conflicts:
	tests/basics/tests/exception1.py
2014-01-15 22:39:03 +00:00
Damien George
9528cd66d7 Convert parse errors to exceptions.
Parser no longer prints an error, but instead returns an exception ID
and message.
2014-01-15 21:23:31 +00:00
Paul Sokolovsky
76d982ef34 type->print(): Distinguish str() and repr() variety by passing extra param. 2014-01-15 02:15:38 +02: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
Damien George
a04a33fee7 Merge pull request #175 from iabdalkader/master
Add missing ADC driver
2014-01-14 15:41:05 -08:00
mux
8c10240722 Add ADC support for internal TEMP/VBAT/VREF
* Add ADC support for reading internal temperature sensor.
* Add ADC support for reading internal VREF/VBAT monitor.
2014-01-14 22:32:53 +02: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
mux
b4e374f138 Add missing ADC driver
* Add missing ADC driver from STM32F4xx_StdPeriph_Lib_V1.3.0
2014-01-14 19:51:15 +02:00
Paul Sokolovsky
5d2499c638 Add "buffer management" and "shrink" API calls to vstr.
vstr is initially intended to deal with arbitrary-length strings. By
providing a bit lower-level API calls, it will be also useful to deal
with arbitrary-length I/O buffers (the difference from strings is that
buffers are filled from "outside", via I/O).

Another issue, especially aggravated by I/O buffer use, is alloc size
vs actual size length. If allocated 1Mb for buffer, but actually
read 1 byte, we don't want to keep rest of 1Mb be locked by this I/O
result, but rather return it to heap ASAP ("shrink" buffer before passing
it to qstr_from_str_take()).
2014-01-13 23:31:06 +02:00
Damien George
f62d33aa1d Consolidate rt_make_function_[0123] to rt_make_function_n. 2014-01-13 19:50:05 +00:00
Damien George
f88a72a88e Merge pull request #168 from dhylands/add-strstr
Added public domain implementations of strchr and strstr.
2014-01-13 11:43:57 -08:00
Damien George
2300537c79 Cleanup built-ins, and fix some compiler warnings/errors. 2014-01-13 19:39:01 +00:00
Dave Hylands
c8effff937 Added public domain implementations of strchr and strstr. 2014-01-12 22:34:58 -08:00
Damien George
ed3a32b117 Merge pull request #157 from dhylands/printf-float
Added a hacky implementation for %g
2014-01-12 16:26:20 -08: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
Dave Hylands
b5f458278c Added a hacky implementation for %g 2014-01-12 10:45:17 -08:00
Dave Hylands
d80ee8bbfd Added memzip filesystem support for teensy
You can now append a zipfile (containining uncomressed python sources)
to the micropython.hex file.

Use MEMZIP_DIR=directory when you call make, or set that in your
environment to include a different tree of source files.

Added sample /boot.py, /src/main.py, /test.py and /src/test.py files.

Added run command so that you can execute scripts from REPL (until import is implemented).

Added build directory to .gitignore
2014-01-11 16:16:20 -08:00
Damien George
cf11c961b4 stm: Disable usart calls from C.
Fixes Issue #132.
2014-01-11 10:01:22 +00:00
mux
e98cc2b691 Fix usart_obj_tx_str
* Fix usart_obj_tx_str to send the actual string.
* Fix issue #126
2014-01-10 11:19:34 +02:00
Damien George
2d45429122 Use memcpy instead of strncpy; add usart.status to stm. 2014-01-09 22:04:45 +00:00
Damien George
0d4cab13dd Merge pull request #127 from iabdalkader/master
Add USART Micro Python Bindings
2014-01-09 14:00:56 -08:00
Damien George
004cdcebfe py: Implement base class lookup, issubclass, isinstance. 2014-01-09 21:43:51 +00:00
Damien George
062478e66d Improved type/class/instance code; mp_obj_type_t now has load_attr, store_attr.
Creating of classes (types) and instances is much more like CPython now.
You can use "type('name', (), {...})" to create classes.
2014-01-09 20:57:50 +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
mux
c70ac7bf71 Add USART Micro Python Bindings
* Add Micro Python bindings to usart.c
* Export USART python object to namespace pyb
2014-01-09 13:36:13 +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
Damien George
84a2c6fbda Merge pull request #118 from dhylands/stm-use-OBJCOPY-SIZE-macros
Update stm/Makeile to use OBJCOPY and SIZE macros
2014-01-08 09:40:01 -08:00
Damien George
38a2da68c2 py: Stuff qstr in object pointer; keys for mp_map_t are now always mp_obj_t. 2014-01-08 17:33:12 +00: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
ea9e441a75 Merge pull request #112 from iabdalkader/master
Use LSI OSC for RTC clock when LSE is not detected
2014-01-08 07:34:38 -08:00
Damien George
9193f89296 Move lexerstr to main py directory (everyone uses it). 2014-01-08 15:28:26 +00:00
mux
5df3d47ee0 Use LSI OSC for RTC clock when LSE is not detected
* Fix rtc_init to use LSI for RTC clock source when LSE is not detected.
2014-01-08 11:26:18 +02:00