37 Commits

Author SHA1 Message Date
Johny Mattsson
f3e2a3afd9 Initial pass at switching to RTOS SDK.
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
2016-05-24 16:05:02 +10:00
Philip Gladstone
5b4b1e0388 Autobaudrate detection by default -- to reduce problems with speed change (#1215)
* Auto autobaud detection by default

* Added stopping the autobaud if explicitly configured

* Add note about auto-baud to the uart.md
2016-04-17 23:44:18 +02:00
Jason Follas
e16204d4f4 Corrected SPI CPOL/CPHA relationships
* Corrected CPOL/CPHA relationships

* Simplified to remove duplicated code

* Removed comments about when MISO is sampled. ESP seems to sample MISO on same clock edge as when MOSI is set.
2016-04-02 19:26:07 +02:00
philip
84487d300b Remove unusedcode 2016-03-20 12:54:16 -04:00
philip
d40ee50a8e Squashed commit of the following:
commit 2c7c3fc3985cc32866e8af496abea9971eaee90a
Merge: 9179dae 41022c3
Author: philip <philip@gladstonefamily.net>
Date:   Sun Feb 28 14:47:47 2016 -0500

    Merge remote-tracking branch 'upstream/dev' into rotary_2

commit 9179dae0824e6b35ad09e5113aacc26dc91692c0
Author: philip <philip@gladstonefamily.net>
Date:   Fri Feb 26 20:53:27 2016 -0500

    Review comments

commit 67741170e20ccb2b636e701f0664feff2aafbb4c
Author: philip <philip@gladstonefamily.net>
Date:   Fri Feb 26 20:59:49 2016 -0500

    Squashed commit of the following:

    commit 8c9a64731c4a8b9aedda18a399b433b173d2199f
    Merge: 085935f 19d3c1d
    Author: philip <philip@gladstonefamily.net>
    Date:   Fri Feb 26 20:58:10 2016 -0500

        Merge remote-tracking branch 'upstream/dev' into rotarymod

        Conflicts:
        	app/platform/platform.c

    commit 085935fc56986d607ff5e05d1663970331959c34
    Author: philip <philip@gladstonefamily.net>
    Date:   Fri Feb 26 20:53:27 2016 -0500

        Review comment

    commit 7732fd2d1044f28b8fcf5b0aa0f76d76fe80f449
    Author: philip <philip@gladstonefamily.net>
    Date:   Sat Feb 20 12:10:38 2016 -0500

        Module to handle rotary decoders

        Eliminate ROTARY_DEBUG

        Remove unused file

Eliminate a malloc call

Cleaned up the register code. Now 0x114 bytes

Fix bug with clearing bits in one case

Fix the type in the #define name
2016-02-29 08:21:12 -05:00
Arnim Läuger
8743319b02 Merge pull request #1000 from devsaurus/sigma_delta
Add sigma_delta module.
2016-02-20 20:11:42 +01:00
devsaurus
8982650df9 Add sigma_delta module. 2016-02-18 21:35:58 +01:00
philip
669543bbf2 Hardware timer support and convert the PWM module to use it 2016-02-17 21:07:33 -05:00
TerryE
49733f6f6d Add New Tasking I/F and rework GPIO, UART, etc to support it
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.
2016-02-17 17:13:17 +00:00
Marcel Stör
2e37a52aaa Merge pull request #1030 from devsaurus/spi_pinconfig
Enable spi functionality on pins after internal config has been applied.
2016-02-10 07:06:13 +01:00
devsaurus
5d8848ecaf Enable spi functionality on pins after internal config has been applied. 2016-02-09 23:26:40 +01:00
devsaurus
dc2e1efefb Extend data type for spi miso/mosi buffer offset to 16 bit. 2016-02-09 22:05:05 +01:00
devsaurus
9f54c8f5d4 enable -std=gnu11 for driver dir with corrected os_printf* decls 2016-01-23 11:22:03 +01:00
Johny Mattsson
182d45f928 Enable -std=gnu11 for modules dir.
Plus boat-load of fixes to actually make that build.
2016-01-20 19:40:47 +11:00
jfollas
bf74b617d0 SPI: Implemented CPOL=1
Reference: http://bbs.espressif.com/viewtopic.php?f=49&t=1570
2016-01-13 22:39:15 -05:00
devsaurus
6cbe716db0 uart: fix parity and stopbit generation 2015-12-21 17:51:43 +01:00
btsimonh
b2345857e9 Added uart.alt(n) to swap to use alternate rx/tx lines.
if n = 0 -> std pinout.
if n != 0 -> alternate pinout (gpio13 and gpio15)
2015-11-28 22:51:01 +00:00
TerryE
583049f620 Merge Onewire changes from Master into Dev
Master contained two OW changes one of which was already reimplemented in dev using the
correct macros.  The second was from hazarkarabay (f6d0c0c) that onewire_search()
returns a device address vector even when no device is found.  I've reimplemented this
but using the correct index, rom_byte_number, rather than declaring a new temp index i.
2015-11-23 01:23:41 +00:00
devsaurus
9444ae28df simplify spi api
duplex_mode configuration enables/disables receiving with spi.send()
spi.send_recv removed
2015-10-27 23:30:33 +01:00
devsaurus
7d77398921 introduce full/half duplex transactions and add spi.send_recv() 2015-10-25 22:58:06 +01:00
devsaurus
19092712e5 remove obsolete spi_mast_send and rename platform_spi_send 2015-10-18 11:13:56 +02:00
devsaurus
f238673772 rework of (H)SPI API 2015-10-18 11:13:55 +02:00
devsaurus
9cde0bbb83 add SPI transaction support 2015-10-18 11:13:55 +02:00
Johny Mattsson
fe6289a6c2 Switch Lua input to event driven instead of polled.
The Lua input timer has been the thorn in the side which prevents a lot of
potential sleeping, unnecessarily.
2015-10-12 13:26:05 +11:00
Johny Mattsson
d2ac5f1712 Changed os_intr_xxx to ets_intr_xxx.
The os_intr_xxx macros no longer exist in the SDK.
2015-10-12 13:26:04 +11:00
Johny Mattsson
c674d191e4 Upgraded open-source LWIP.
From Espressif's lwip_open_src_template_proj_for_v1.3.0.zip
2015-10-12 13:26:04 +11:00
devsaurus
4cf5f37450 address SPI_CLKDIV_PRE requirements
* respect N-1
* avoid range overflow
2015-10-04 16:57:50 +02:00
devsaurus
ac50f9c6a5 add divider for arbitrary HSPI clock frequencies 2015-10-04 00:40:21 +02:00
Johny Mattsson
346251dca6 1-Wire power fix, by Thomas Shaddack. 2015-08-20 11:09:12 +10:00
vowstar
32e9ac204a Fix PWM init bug, set all initial duty to 0. 2015-05-01 18:35:30 +08:00
funshine
1740841e4f fix #175 2015-02-05 01:42:14 +08:00
funshine
ad966146fc migrate to sdk 0.9.5 release version 2015-01-24 23:36:04 +08:00
iabdalkader
3c16014641 Add SPI Module
* Add SPI support (master mode only)
* Issue #50
2015-01-16 22:41:34 +02:00
funshine
acd9d0dc97 deep optimizing ram usage 2015-01-07 01:15:38 +08:00
HuangRui
c04f2578ec Updated SDK to v0.9.5 and optimized memory. 2015-01-05 10:09:51 +08:00
funshine
5209c099a0 modify uart.on api to read raw data from uart 2014-12-30 15:42:24 +08:00
funshine
cdd13b1af3 source file first commit, folder structure refact 2014-12-22 19:35:05 +08:00