summaryrefslogtreecommitdiffstatshomepage
path: root/stmhal/main.c
Commit message (Collapse)AuthorAge
* stmhal: Make TIM3 available for use by the user.Damien George2016-01-29
| | | | | | | TIM3 is no longer used by USB CDC for triggering outgoing data, so we can now make it available to the user. PWM fading on LED(4) is now gone, but will be reinstated in a new way.
* py/runtime: mp_stack_ctrl_init() should be called immediately on startup.Paul Sokolovsky2016-01-29
| | | | | | | | | Calling it from mp_init() is too late for some ports (like Unix), and leads to incomplete stack frame being captured, with following GC issues. So, now each port should call mp_stack_ctrl_init() on its own, ASAP after startup, and taking special precautions so it really was called before stack variables get allocated (because if such variable with a pointer is missed, it may lead to over-collecting (typical symptom is segfaulting)).
* stmhal: Print exception information in nlr_jump_failedDave Hylands2015-12-07
| | | | | | | | | Currently nlr_jump_fail prints that there was an uncaught exception but nothing about the exception. This patch causes nlr_jump_failed to try to print the exception. Given that printf was called on the line above, I think that the call to mp_obj_print_exception has about as much likelyhood of succeeding as the printf does.
* stmhal: Execute boot.py and main.py when formatting the file system.Dave Hylands2015-12-07
| | | | | | | | When you use the USER button to perform a filesystem reset at boot time then it wipes out the filesystem and creates a new boot.py and main.py. With this patch these files are executed after formatting, ensuring that pyb and machine modules get imported.
* stmhal: Add option to free up TIM3 from USB VCP polling.Damien George2015-12-04
| | | | | | | | This is a hack to free up TIM3 so that it can be used by the user. Instead we use the PVD irq to call the USB VCP polling function, and trigger it from SysTick (so SysTick itself does not do any processing). The feature is enabled for pyboard lite only, since it lacks timers.
* stmhal: Add rtc.init() method to force RTC to re-initialise.Damien George2015-12-04
|
* stmhal: Implement delayed RTC initialization with LSI fallback.T S2015-11-23
| | | | | | | | | | | | | | | | | If RTC is already running at boot then it's left alone. Otherwise, RTC is started at boot but startup function returns straight away. RTC startup is then finished the first time it is used. Fallback to LSI if LSE fails to start in a certain time. Also included: MICROPY_HW_CLK_LAST_FREQ hold pyb.freq() parameters in RTC backup reg MICROPY_HW_RTC_USE_US option to present datetime sub-seconds in microseconds MICROPY_HW_RTC_USE_CALOUT option to enable RTC calibration output CLK_LAST_FREQ and RTC_USE_CALOUT are enabled for PYBv1.0.
* lib/pyexec: Move header pyexec.h from stmhal directory.Damien George2015-11-09
|
* all: Add py/mphal.h and use it in all ports.Damien George2015-10-31
| | | | | | py/mphal.h contains declarations for generic mp_hal_XXX functions, such as stdio and delay/ticks, which ports should provide definitions for. A port will also provide mphalport.h with further HAL declarations.
* stmhal: Early version of machine module for stmhal.Dave Hylands2015-10-19
|
* Rename "Micro Python" to "MicroPython" in REPL, help, readme's and misc.Damien George2015-10-12
|
* stmhal: Add "opt" arg to pyb.main, to set mp_optimise_value.Tom Soulanille2015-09-12
| | | | | Use this to set the global optimisation value when executing the main script (and all scripts it imports).
* stmhal: Enable SPI support for F7 MCUs.Dave Hylands2015-08-05
|
* stmhal: Enable I2C support for F7 MCUs.Dave Hylands2015-08-05
|
* stmhal: Factor out USRSW boot-up code and support boards with 1 LED.Damien George2015-08-03
| | | | Thanks to Dave Hylands for the patch.
* stmhal: Add STM32F7DISC and associated changes.Dave Hylands2015-07-30
|
* stmhal: Move debug UART repl to after uart_init0 call.Dave Hylands2015-05-06
|
* stmhal: Include fatfs headers using lib/fatfs prefix.Damien George2015-03-04
| | | | This helps make files reusable across other ports.
* stmhal: Add support for CAN rx callbacks.Henrik Sölver2015-02-15
|
* stmhal: Make pybstdio usable by other ports, and use it.Damien George2015-02-13
| | | | | Now all ports can use pybstdio.c to provide sys.stdin/stdout/stderr, so long as they implement mp_hal_stdin_* and mp_hal_stdout_* functions.
* stmhal: Properly define pyb.usb_mode() semantics.Damien George2015-02-13
|
* stmhal: Add "CDC" option to pyb.usb_mode, for CDC device only.Damien George2015-02-13
|
* stmhal: Add Python-configurable USB HID mode.Damien George2015-02-13
| | | | | Different HID modes can be configured in Python. You can either use predefined mouse or keyboard, or write your own report descriptor.
* stmhal: Reclaim 72 bytes of stack by factoring out flash init code.Damien George2015-01-09
|
* stmhal: Collect all root pointers together in 1 place.Damien George2015-01-07
| | | | | A GC in stmhal port now only scans true root pointers, not entire BSS. This reduces base GC time from 1700ms to 900ms.
* stmhal: Prefix includes with py/; remove need for -I../py.Damien George2015-01-01
|
* stmhal: Change fresh boot.py and main.py to use \r\n newlines.Damien George2014-10-25
| | | | This is so it's compatible with Windows.
* Add pyb.hard_reset, and make sys.exit() or raise SystemExit do a soft reset.Dave Hylands2014-10-22
|
* stmhal: Overhaul UART class to use read/write, and improve it.v1.3.4Damien George2014-10-21
| | | | | | | | | | | | UART object now uses a stream-like interface: read, readall, readline, readinto, readchar, write, writechar. Timeouts are configured when the UART object is initialised, using timeout and timeout_char keyword args. The object includes optional read buffering, using interrupts. You can set the buffer size dynamically using read_buf_len keyword arg. A size of 0 disables buffering.
* stmhal: Remove long-obsolete pybwlan.[ch] files from old CC3k driver.Damien George2014-10-06
|
* stmhal: Add network and usocket module.Damien George2014-09-30
| | | | | | | | | | | | | | | | | As per issue #876, the network module is used to configure NICs (hardware modules) and configure routing. The usocket module is supposed to implement the normal Python socket module and selects the underlying NIC using routing logic. Right now the routing logic is brain dead: first-initialised, first-used. And the routing table is just a list of registered NICs. cc3k and wiznet5k work, but not at the same time due to C name clashes (to be fixed). Note that the usocket module has alias socket, so that one can import socket and it works as normal. But you can also override socket with your own module, using usocket at the backend.
* stmhal: Add label to internal flash drive on creation.Damien George2014-09-29
|
* stmhal: Initialise stack pointer correctly.Damien George2014-09-23
| | | | | | | | | | | | | Stack is full descending and must be 8-byte aligned. It must start off pointing to just above the last byte of RAM. Previously, stack started pointed to last byte of RAM (eg 0x2001ffff) and so was not 8-byte aligned. This caused a bug in combination with alloca. This patch also updates some debug printing code. Addresses issue #872 (among many other undiscovered issues).
* py: Move definition of mp_sys_exit to core.Damien George2014-09-15
| | | | | | | | sys.exit always raises SystemExit so doesn't need a special implementation for each port. If C exit() is really needed, use the standard os._exit function. Also initialise mp_sys_path and mp_sys_argv in teensy port.
* Add save/restore_irqDave Hylands2014-08-25
| | | | Factored irq functions into a separate file.
* stmhal: In safe mode, still mount SD card and present as MSD over USB.Damien George2014-08-16
| | | | | | | | It's still "safe" because no scripts are run. Remove the SD card if you want to access the internal flash filesystem. Addresses issue #616. Also: remove obsolete pyb.source_dir setting, and reset pyb.main and pyb.usb_mode settings on soft-reset.
* doc: Document gc, sys, math, cmath.Damien George2014-08-10
|
* stmhal: Clean up reset/soft-reset code; fix bug init'ing VCP exc.Damien George2014-08-04
| | | | | | | | | | | Make a clearer distinction between init functions that must be done before any scripts can run (xxx_init0) and those that can be safely deferred (xxx_init). Fix bug initialising USB VCP exception. Addresses issue #788. Re-order some init function to improve reliability of reset/soft-reset.
* Put call to qstr_init and mp_init_emergency_exc_buf in mp_init.Damien George2014-08-04
| | | | | | | qstr_init is always called exactly before mp_init, so makes sense to just have mp_init call it. Similarly with mp_init_emergency_exception_buf. Doing this makes the ports simpler and less error prone (ie they can no longer forget to call these).
* stmhal: Change 0:/ and 1:/ to /flash and /sd; add CWD support.Damien George2014-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some important changes to the way the file system is structured on the pyboard: 1. 0: and 1: drive names are now replaced with POSIX inspired directories, namely /flash and /sd. 2. Filesystem now supports the notion of a current working directory. Supports the standard Python way of manipulating it: os.chdir and os.getcwd. 3. On boot up, current directory is /flash if no SD inserted, else /sd if SD inserted. Then runs boot.py and main.py from the current dir. This is the same as the old behaviour, but is much more consistent and flexible (eg you can os.chdir in boot.py to change where main.py is run from). 4. sys.path (for import) is now set to '' (current dir), plus /flash and /flash/lib, and then /sd and /sd/lib if SD inserted. This, along with CWD, means that import now works properly. You can import a file from the current directory. 5. os.listdir is fixed to return just the basename, not the full path. See issue #537 for background and discussion.
* Add support for storing args during an exception raised by an irq.Dave Hylands2014-07-25
| | | | | | | | | | | | | | | | | The user code should call micropython.alloc_emergency_exception_buf(size) where size is the size of the buffer used to print the argument passed to the exception. With the test code from #732, and a call to micropython.alloc_emergenncy_exception_buf(100) the following error is now printed: ```python >>> import heartbeat_irq Uncaught exception in Timer(4) interrupt handler Traceback (most recent call last): File "0://heartbeat_irq.py", line 14, in heartbeat_cb NameError: name 'led' is not defined ```
* stmhal: Fix REPL printing by cooking output sent to stdout_obj.Damien George2014-07-20
| | | | | | Recent changes to builtin print meant that print was printing to the mp_sys_stdout_obj, which was sending data raw to the USB CDC device. The data should be cooked so that \n turns into \r\n.
* stmhal: Some reordering of code/functions.Damien George2014-07-02
|
* Merge branch 'add-timer-deinit' of github.com:dhylands/micropython into ↵Damien George2014-07-02
|\ | | | | | | dhylands-add-timer-deinit
| * Add timer_deinit and call it just before doing a soft-restartDave Hylands2014-06-30
| | | | | | | | This fixes #733.
* | stackctrl: Add "mp_" prefix.Paul Sokolovsky2014-07-01
| |
* | Merge pull request #710 from iabdalkader/assertDamien George2014-06-30
|\ \ | | | | | | Fix assert_func warning/error
| * | Add NORETURN to __fatal_errormux2014-06-21
| | |
| * | Fix asser_func warning/errormux2014-06-21
| | | | | | | | | | | | | | | * Add while(1) to assert_func to avoid func returns warning * Define a weak attr in mpconfig.h
* | | stmhal: Include mpconfig.h before all other includes.Paul Sokolovsky2014-06-28
| |/ |/| | | | | | | | | It defines types used by all other headers. Fixes #691.