Commit Graph

46 Commits

Author SHA1 Message Date
Johny Mattsson e49f2bb13f Remove conflicting libc, rename c_xx and os_xx to xx.
c_strtod and c_getenv are kept since strtod doesn't appear in the SDK's libc,
and we want our own c_getenv to initialize the Lua main anyway.
2016-05-26 18:50:20 +10:00
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
devsaurus 8db93bcabf make delay optional 2016-01-29 18:52:38 +01:00
devsaurus 3a597f1698 implement architecture dependent delay functions for esp8266 port 2016-01-29 18:52:38 +01:00
Johny Mattsson 4e8ef87d03 Reworked module registration, removed modules.h
Module creation & registration now made a lot simpler. In essence,
each module file is now self-contained and only needs a

  NODEMCU_MODULE(MYNAME, "myname", myname_map, luaopen_myname);

line to both be automatically recognised by the Lua initialization
as well as honor the LUA_USE_MODULES_MYNAME #define.
2015-12-16 16:09:16 +11:00
TerryE b773290b8c Major cleanup of module registration pass 2.
carrying on Johny's edits as per my comments on #810
2015-12-16 11:21:40 +11:00
Johny Mattsson 6b6456be47 Major cleanup of module registration.
As per #810 & #796, only LUA_OPTIMIZE_MEMORY=2 & MIN_OPT_LEVEL=2 are
supported when building. This commit effects that limitation.

With this change modules/auxmods.h no longer needs to be updated for
every new module, nor do module writers need to cater for a hypothetical
LUA_OPTIMIZE_MEMORY < 2 scenario.
2015-12-12 15:03:40 +11:00
devsaurus 19092712e5 remove obsolete spi_mast_send and rename platform_spi_send 2015-10-18 11:13:56 +02:00
devsaurus ca1bc2cb18 clean u8g 2015-08-09 16:38:08 +02:00
devsaurus 9d8c3a7b82 fix u8g device destructor
don't free unallocated memory
2015-08-05 21:52:56 +02:00
devsaurus f4f62fb255 fix display table construction 2015-07-21 20:37:44 +02:00
devsaurus 6fd106afac added more displays:
sh1106_128x64_i2c
    ssd1306_64x48_i2c
    ssd1309_128x64_i2c
    ssd1327_96x96_gr_i2c
    uc1611_dogm240_i2c
    uc1611_dogxl240_i2c
    ld7032_60x32_hw_spi
    pcd8544_84x48_hw_spi
    pcf8812_96x65_hw_spi
    sh1106_128x64_hw_spi
    ssd1306_64x48_hw_spi
    ssd1309_128x64_hw_spi
    ssd1322_nhd31oled_bw_hw_spi
    ssd1322_nhd31oled_gr_hw_spi
    ssd1325_nhd27oled_bw_hw_spi
    ssd1325_nhd27oled_gr_hw_spi
    ssd1327_96x96_gr_hw_spi
    ssd1351_128x128_332_hw_spi
    ssd1351_128x128gh_332_hw_spi
    ssd1351_128x128_hicolor_hw_spi
    ssd1351_128x128gh_hicolor_hw_spi
    ssd1353_160x128_332_hw_spi
    ssd1353_160x128_hicolor_hw_spi
    st7565_64128n_hw_spi
    st7565_dogm128_hw_spi
    st7565_dogm132_hw_spi
    st7565_lm6059_hw_spi
    st7565_lm6063_hw_spi
    st7565_nhd_c12832_hw_spi
    st7565_nhd_c12864_hw_spi
    uc1601_c128032_hw_spi
    uc1608_240x128_hw_spi
    uc1608_240x64_hw_spi
    uc1610_dogxl160_bw_hw_spi
    uc1610_dogxl160_gr_hw_spi
    uc1611_dogm240_hw_spi
    uc1611_dogxl240_hw_spi
    uc1701_dogs102_hw_spi
    uc1701_mini12864_hw_spi
2015-07-20 23:11:13 +02:00
devsaurus b837726013 simplify device/display macros 2015-07-20 22:07:59 +02:00
devsaurus 8bd3d7d2bf introduce lua_api_name parameter when building the display table
keeps the API as before and gets rid of hw_spi vs sw_spi topics
2015-07-19 21:57:14 +02:00
devsaurus 1bc156e4d1 move display constructors into template-based functions
+ uniform generaration
+ addition of further displays
- slight unneccesary heap allocation when display drivers are included but not used
2015-07-16 23:23:43 +02:00
devsaurus 02d473dab0 revert local changes to u8glib 2015-07-16 21:31:00 +02:00
devsaurus 277c6d0116 move u8g progmem constants to new .rodata sections
this simplifies the overall memory handling based on the irom support by @jmattsson
2015-06-25 00:38:11 +02:00
devsaurus 5b588b7bd3 implement getStrWidth() and setFontLineSpacingFactor() 2015-05-15 21:32:28 +02:00
devsaurus de56cb084e sort member functions 2015-05-15 21:13:59 +02:00
devsaurus 2d254bd47c use correct function for stop in U8G_COM_MSG_WRITE_BYTE 2015-03-18 22:33:16 +01:00
devsaurus 3b37f0920c res optional 2015-03-13 22:22:57 +01:00
devsaurus 429bf57d67 add pcd8544 2015-03-12 23:09:41 +01:00
devsaurus b387ba93ec introduce u8g_config.h 2015-03-12 21:50:57 +01:00
devsaurus 4f55ee4e34 validate SPI comm interface with ssd1306_128x64_spi 2015-03-11 21:53:45 +01:00
devsaurus 5f1d324059 remove caching 2015-03-01 23:45:25 +01:00
devsaurus 32774d428c handle font data as light userdata 2015-03-01 23:11:24 +01:00
devsaurus 7ae293d566 set free'd pointer to NULL 2015-02-25 23:17:08 +01:00
devsaurus 2cfb86b5b5 improve device and page buffer initialization 2015-02-20 21:15:38 +01:00
devsaurus e3ed4fc0da fix typo 2015-02-20 18:24:53 +01:00
devsaurus 6c0adbf980 SPI comm function, untested 2015-02-20 11:07:52 +01:00
devsaurus 81be529d68 preparation for adding more display devices: allocate and construct page buffer
dynamically to save heap for unused device types
2015-02-19 16:47:41 +01:00
devsaurus 8e42631a81 implement drawBitmap 2015-02-19 12:12:14 +01:00
devsaurus a287020096 implement drawXBM 2015-02-18 23:57:34 +01:00
devsaurus 5fa0a0bc46 cache pgm read data 2015-02-10 22:04:43 +01:00
devsaurus fdab682776 implement begin() 2015-02-08 21:41:02 +01:00
devsaurus 0b7ef1f485 implement further functions 2015-02-08 21:21:26 +01:00
devsaurus 27d99643df rotation functions 2015-02-08 17:59:09 +01:00
devsaurus 145a0f01c8 add scaling functions 2015-02-08 17:17:04 +01:00
devsaurus d7f04a1de8 further reduce RAM usage, consolidate font memory and "PROGMEM" 2015-02-06 23:02:56 +01:00
devsaurus 5fbc4b2b2f route i2c sla to com driver function via u8g_t struct 2015-02-04 23:57:13 +01:00
devsaurus 9f0b167832 improve font handling
* macros established to build a table of fonts which get compiled into the image
* font data is mapped to irom0 to save dram space
* quirky function to retrieve font data 4-byte aligned from irom0
2015-02-04 00:08:39 +01:00
devsaurus 6dfb82dbba factor out integer argument processing 2015-02-03 00:29:11 +01:00
devsaurus ed8681f956 implemented full graphics_test 2015-02-01 17:27:20 +01:00
devsaurus 6b3abb004a * increase irom0_0_seg size to accomodate u8glib code
* implement first functions for graphics test
2015-02-01 17:27:19 +01:00
devsaurus a2672113aa * add u8glib
* initializer for SSD1306 display with I2C driver
* disabled mqtt and ow modules to avoid irom0_0_seg overflow
  check ld script to increase size
2015-02-01 17:27:19 +01:00
devsaurus 33601462ef add u8g module stubs 2015-02-01 17:27:19 +01:00