16 Commits

Author SHA1 Message Date
b32c52874d feat(esp8266): Add full icache mode
Use full 32 KB iram as icache.
2018-07-31 11:01:06 +08:00
48a173e358 feat(freertos): Add memory mark to trace heap over call levels 2018-07-18 16:03:06 +08:00
83ec6f3d58 feat(newlib): Use new private malloc function
Add return address to debug memory leak.
2018-07-05 10:55:59 +08:00
9d0b024433 feat(esp8266): Refactor ets system headler file 2018-06-27 11:39:50 +08:00
df9a5d6bb1 feat(spi_flash): Modify SPI flash driver 2018-06-08 18:04:38 +08:00
e518650b36 feat: Don't use c_types.h in SDK 2018-05-24 20:41:29 +08:00
91f7080231 fix: Fix all files when change to use standard typedef 2018-05-24 19:27:41 +08:00
b9922f5116 fix: Fix warning while esp_libc update 2018-05-24 14:47:14 +08:00
29f5577ac6 feat(esp8266): Don't use ICACHE_FLASH_ATTR in SDK side 2018-05-24 12:38:06 +08:00
d75ffa61eb feat(esp8266): Don't use ICACHE_RODATA_ATTR to let string to be in flash
rodata will be in flash by default.
2018-05-24 11:02:34 +08:00
2e1fb87aaf feat(heap): Fix heap parameters
Line = 0 will make it alloc memory at iram.
2018-05-24 10:26:17 +08:00
73f23833ec Make sure vShowMalloc() doesn't crash.
fix(freertos): Only show the file name if the pointer is not NULL. Try
to shorten the path to only the last components (mydir/foo.c =>
foo.c). Use fixed-width specifiers instead of tab characters.

Merges https://github.com/espressif/ESP8266_RTOS_SDK/pull/192
2018-05-24 08:57:36 +08:00
c31e4a3633 Improve pvPortMalloc() and family.
fix(freertos): Better implementation of realloc, calloc and zalloc.
Implement them with the same symmetry as malloc. Removes duplicate and
nearly identical implementations. Make the libc symbols aliases of the
non-tracing versions.

This improves on my previous patch for espressif/ESP8266_RTOS_SDK#189.
2018-05-24 08:57:29 +08:00
24ef94f811 Improve pvPortMalloc() and family.
fix(esp8266): If MEMLEAK_DEBUG is defined, create an alternate function
called `.._trace` that for each of `pvPortMalloc`, `pvPortZalloc`,
`pvPortCalloc` and `vPortFree`. The original function delegates to this new
tracing function but uses NULL and 0 for the file and line number. This ensures
that the pvPortMalloc exists as a symbol that can be used by the binary blobs
without any problems.

Example output from earlier usage:

~~~
--------Show Malloc--------
F:ppT	L:512	malloc 2064	@ 0x3ffefd08
F:pmT	L:256	malloc 1040	@ 0x3fff0518
F:tiT	L:512	malloc 2064	@ 0x3fff0928
F:uiT	L:640	malloc 2576	@ 0x3fff1138
F:IDLE	L:176	malloc 720	@ 0x3fff1b48
F:Tmr Svc	L:512	malloc 2064	@ 0x3fff1e18
~~~

fix(lwip): Remove declarations of `pvPortMalloc()` and family.

This fixes some of the issues in espressif/ESP8266_RTOS_SDK#189 but some of the
example applications fails. Not ready for merge but comments on my approach
will be appreciated.
2018-05-24 08:57:21 +08:00
f82e9be787 fix: Fixing lots of compilation warnings
- fix(esp8266):
  - Adding includes for missing symbols.
  - Removing unused variables.
  - Skip unsupported packing pragmas.
  - Add rom_functions.h for symbols that come from the ESP ROM. Add attributes on
ets_printf so GCC will check the syntax of the formatting string and types of
the arguments.
  - Add ETS_GPIO_INTR_EN(DIS)ABLE macro.
  - Use gpio_output_conf instead of gpio_output_set.

- fix(freertos):
  - Define functions that are useful.
  - Use correct printf symbols when printing.

- fix(lwip):
  - Ignore the warning in sntp.

- fix(mqtt):
  - `xTicksToWait` is unsigned, can't check for less than zero. Remove
unused variables.

- fix(newlib):
  - `_free_r()` returns `void`, not `void *`.
  - Adding includes for missing symbols.

- fix(ssl):
  - Make sure functions always return a value.

Merges https://github.com/espressif/ESP8266_RTOS_SDK/pull/188
2018-05-23 14:52:26 +08:00
ba4dfbed74 feat(freertos): Restructure freertos folder to support different platform 2018-05-20 21:29:56 +08:00