1. 31 May, 2016 1 commit
  2. 30 May, 2016 1 commit
    • Johny Mattsson's avatar
      Boot to (nonresponsive) Lua prompt on RTOS! · 56789592
      Johny Mattsson authored
      Uart driver currently disabled as it's not (yet) compatible with RTOS.
      
      Running Lua task with excessive stack to avoid smashing it; need to work out
      what's using so much stack space.
      
      Changed some flash reading functions to not attempt to drop an entire 4k
      flash page onto the stack.
      
      Ensure the task pump doesn't attempt to retrieve from uninitialised queues.
      56789592
  3. 24 May, 2016 2 commits
    • Johny Mattsson's avatar
      Reimplemented the NodeMCU task interface on top of RTOS. · 5c39a1f6
      Johny Mattsson authored
      Not yet hooked up to an RTOS task, however.
      5c39a1f6
    • Johny Mattsson's avatar
      Initial pass at switching to RTOS SDK. · f3e2a3af
      Johny Mattsson authored
      This compiles, links, and starts the RTOS without crashing and burning.
      
      Lua environment does not yet start due to the different task architecture.
      
      Known pain points:
      
        - task implementation needs to be rewritten for RTOS (next up on my TODO)
      
        - secure espconn does not exist, all secure espconn stuff has been #if 0'd
      
        - lwip now built from within the RTOS SDK, but does not appear to include
          MDNS support. Investigation needed.
      
        - there is no access to FRC1 NMI, not sure if we ever actually used that
          however. Also #if 0'd out for now.
      
        - new timing constraints introduced by the RTOS, all use of ets_delay_us()
          and os_delay_us() needs to be reviewed (the tsl2561 driver in particular).
      
        - even more confusion with ets_ vs os_ vs c_ vs non-prefixed versions.
          In the long run everything should be switched to non-prefixed versions.
      
        - system_set_os_print() not available, needs to be reimplemented
      
        - all the RTOS rodata is loaded into RAM, as it apparently uses some
          constants while the flash isn't mapped, so our exception handler can't
          work its magic. This should be narrowed down to the minimum possible
          at some point.
      
        - with each task having its own stack in RTOS, we probably need change
          flash-page buffers from the stack to the heap in a bunch of places.
          A single, shared, page buffer *might* be possible if we limit ourselves
          to running NodeMCU in a single task.
      
        - there's a ton of junk in the sdk-overrides now; over time the core code
          should be updated to not need those shims
      f3e2a3af
  4. 17 Feb, 2016 1 commit
    • TerryE's avatar
      Add New Tasking I/F and rework GPIO, UART, etc to support it · 49733f6f
      TerryE authored
      As with the last commit this rolls up the follwowing, but include the various
      review comments on the PR.
      
      -   **Documentation changes**. I've added the taks FAQ as a stub new Extension
      developer FAQ, and split the old FAQ into a Lua Developer FAQ and a Hardware
      FAQ.
      
      -   **Tasking I/F**.  New `app/task/Makefile`, `app/task/task.c`,
      `app/include/task/task.h` and `app/Makefile` as per previous commit.  Cascade
      changes to `app/driver/uart.c`, `app/include/driver/uart.h`,
      `app/user/user_main.c` and `app/modules/node.c`
      
      -   **GPIO Rework** to `app/modules/gpio.c` and `pin_map.[hc]`, `platform.[hc]`
      in `app/platform`
      
      -   **Other Optimisations** Move the `platform_*_exists()` from
      `app/platform/common.c` to static inline declarations in `platform.h` as
      this generates faster, smaller code. Move lgc.a routines out of iram0.
      49733f6f