Commit Graph
83 Commits
Author SHA1 Message Date
Alexey Gerenkov eb2aa6fd67 apptrace: Adds HeapTraceEvent.callers property used by OpenOCD tests 2019-12-27 00:13:45 +03:00
Alexey Gerenkov 184e1785ff gcov: Fixes aborted calls to _lock_acquire_recursive from gcov stub 2019-12-16 19:15:37 +00:00
Alexey Gerenkov b81e537b7f apptrace: Extends SystemView heap & log example to run many allocator/freer tasks 2019-12-04 18:04:11 +03:00
Alexey Gerenkov 884717fb2f apptrace: Adds support for converting SystemView traces to JSON format 2019-12-04 18:04:07 +03:00
Alexey Gerenkov e092d6f858 coredump: Makes compatible with legacy binary core dumps
Also:
 - improves coredump versioning scheme
 - Moves some API funtions to respective flash/UART dependent code
2019-11-25 22:44:51 +03:00
Alexey Gerenkov 27ce4d13df coredump: change data format to ELF 2019-11-22 13:25:43 +08:00
Alexey Gerenkov 1626f827d3 docs: Updates OpenOCD configuration file names 2019-11-18 13:33:32 +03:00
Alexey Gerenkov 30ff7198b8 apptrace: Renames Kconfig options 2019-11-13 15:24:01 +03:00
Alexey Gerenkov 5909d3676c esp32s2: Adds apptrace support
Closes IDF-510.
Closes IDF-1032.
2019-11-13 15:24:01 +03:00
Alexey Gerenkov 5b83b198c6 gcov: Fixes libgcov and libapp_trace cross dependency linking issue
Closes IDF-834
2019-11-12 18:42:08 +03:00
Alexey Gerenkov 02e084e2b5 examples: Collects coverage info in component 2019-11-12 18:42:02 +03:00
Alexey Gerenkov e9faf132b4 tools: Update recommended OpenOCD version to v0.10.0-esp32-20190708 2019-07-17 13:11:24 +00:00
Alexey Gerenkov 2926cd09a2 gcov_example: Adds cmake target to generate report
Closes IDF-727
2019-07-05 12:44:35 +00:00
Alexey Gerenkov 3914f17d26 apptrace: Adds test for logtrace_proc script 2019-04-01 19:31:45 +03:00
Alexey Gerenkov 296c9549a4 sys_view: Adds heap & log tracing example 2019-04-01 19:31:45 +03:00
Alexey Gerenkov d2db2ef03c docs: Adds host-based heap tracing description 2019-04-01 19:31:45 +03:00
Alexey Gerenkov 8c6a924cdf sys_view: Adds processing scripts for heap & log traces 2019-04-01 19:31:45 +03:00
Alexey Gerenkov 5ef3a64c00 sys_view: Adds heap tracing API 2019-04-01 19:31:27 +03:00
Alexey Gerenkov 335576013e heap: Separate standalone and common part of tracing module 2019-04-01 15:56:15 +03:00
Alexey Gerenkov 2d52ac48f9 apptrace: Adds checks for user arguments in apptrace API 2019-04-01 15:56:14 +03:00
Alexey Gerenkov c0f37a324e apptrace: Fixes tracing xQueueGiveFromISR 2019-04-01 15:56:13 +03:00
Alexey Gerenkov b5ac319160 vfs: Adds example for semihosting VFS driver 2019-03-20 12:52:52 +03:00
Alexey Gerenkov 4fc14e8eb6 vfs: Adds semihosting VFS driver 2019-03-08 15:08:10 +03:00
Alexey Gerenkov 3dcc0ae908 docs: Adds watchpoints limit configuration to example gdbinit
Closes https://github.com/espressif/esp-idf/issues/2335
2018-12-20 06:09:23 +00:00
Alexey Gerenkov 3139b2d533 example: Adds SystemView tracing example app 2018-11-20 04:09:39 +00:00
Alexey Gerenkov 3eaba1c8ce esp32: Fixes SystemView lock's IRQ state restore 2018-11-20 04:09:39 +00:00
Alexey Gerenkov 78a7a152d1 esp32: Fixes freezing core dump process when flash write address checks are enabled 2018-11-15 06:13:48 +00:00
Alexey Gerenkov b152c1020c esp32: Adds logging level to core dump script 2018-11-15 06:13:48 +00:00
Alexey Gerenkov 76e02cadcc esp32: Adds support for core dump format version 2018-11-15 06:13:48 +00:00
Alexey Gerenkov 181a40ae30 esp32: Adds menuconfig option for max tasks number in core dump 2018-11-15 06:13:48 +00:00
Alexey Gerenkov 30e766ee6b esp32: Core dump API to retrieve current core data layout in flash 2018-11-15 06:13:48 +00:00
Alexey Gerenkov a55cc99f50 esp32: Replaces magic numbers with CRC for core dump in flash 2018-11-15 06:13:48 +00:00
Alexey Gerenkov e0f7e196f2 cxx: don’t define stubs for __throw_* functions
If exception support is disabled in IDF, and libstdc++ tries to throw
an exception, it will call __cxa_allocate_exception which is replaced
with abort in IDF.

We have a dramatically size reduction of the RO-section in binary when using '__throw_'-stubs in GCC5
In the case of using GCC8, we are faced with 'multiple definition' errors when using '__throw_'-stubs.
Good that we don't have the size problem due to gcc8
2018-09-20 18:53:15 +08:00
Alexey Gerenkov f0c15e749a gcov: use GCC API to control GCOV data dumps 2018-09-20 18:53:14 +08:00
Alexey Gerenkov 7e5c235b9d app_trace: Fix tmo initialization 2018-08-29 10:55:39 +08:00
Alexey Gerenkov ac07c23e37 docs: Adds description of OpenOCD command to configure custom app image location 2018-08-27 14:08:36 +03:00
Alexey Gerenkov 821fe3dc5a esp32: Adds SW flash breakpoints description 2018-07-26 13:56:45 +03:00
Alexey Gerenkov c2dc09304c gcc8_newlib3: Compilation warnings and errors not specific to newlib v3 2018-07-09 13:22:24 +03:00
Alexey Gerenkov 8fe2a77c46 coredump: Adds support for ROM ELF file to 'espcoredump' script 2018-07-05 22:20:20 +03:00
Alexey Gerenkov 95e26cd461 coredump: Fixes exception stack frame structure indicator
Initializes exception stack frame EXIT field to indicate stack frame format for 'espcoredump'.
2018-07-05 22:20:20 +03:00
Alexey Gerenkov 13384221a7 host_file_io: Fixes uninitialized 'offset' and 'whence' fseek args 2018-07-03 19:34:13 +03:00
Alexey Gerenkov 585df5cfdb docs: Corrects OpenOCD command usage in logtrace readme 2018-05-25 16:42:18 +03:00
Alexey Gerenkov 3fd199c54a docs: Makes core dump's documentation slightly clearer
Merges https://github.com/espressif/esp-idf/pull/1968
2018-05-22 20:24:29 +03:00
Alexey Gerenkov c1b6a37bb1 esp32: Adds GCOV debug stubs support
Adds the following functionality
 - Debug stubs infrastructure
 - Stub for retrieveing GCOV data without user source code modification
2018-05-18 16:16:03 +03:00
Alexey Gerenkov 439140d269 esp32: Adds support for SW breakpoints in flash
Disables app image integrity checks when running under OpenOCD control.
Allows setting breakpoints in flash before application start (just after reset).
2018-04-26 10:17:02 +03:00
Alexey Gerenkov 4e544f82bb esp32: Fixes apptrace down buffer management 2018-02-21 10:13:25 +03:00
Alexey Gerenkov f8c42369f1 freertos: Adds C11 TLS support 2018-02-07 18:46:57 +03:00
Alexey Gerenkov 7df96718a2 esp32: Adds C++ exceptions emergency pool size menuconfig option 2017-11-23 06:14:11 +03:00
Alexey Gerenkov 7ce945a9de pthread: Fixes memory leaks and stack overflow in tests
Also this commit replaces FreeRTOS list used for pthread internals
with simple one from rom/queue.h
2017-11-17 16:57:33 +03:00
Alexey Gerenkov 692a890232 esp32: Adds Stack Smashing Protection Feature
These changes add posibility to enable GCC stack protector via menuconfig
for all source files in project.
2017-11-17 12:08:36 +03:00
Alexey Gerenkov 5795ccc806 freertos: Fixes deadlock in pthread_once for init_routines calling pthread_once 2017-10-01 19:52:48 +03:00
Alexey Gerenkov 54a529f596 freertos: Fixes hangup upon pthread_join on finished thread 2017-10-01 19:52:48 +03:00
Alexey Gerenkov fe3b557fa8 esp32: Fixes double initialization of apptrace down ring buffer in dual core mode
Additional minor fixes:
 - Host file I/O code warnings
 - Initialization of down buffer for GCOV
2017-09-15 22:45:21 +03:00
Alexey Gerenkov b09f4acb27 Added proper handling of apptrace and pthread initialization errors 2017-09-14 20:47:43 +02:00
Alexey Gerenkov 4e0c3a0415 esp32: Fixes crash during core dump.
Removes piece of debugging code introduced by 8d43859b.
2017-09-11 17:20:42 +03:00
Alexey Gerenkov 891f0db31d esp32: Adds gcov over JTAG feature
Implements function to dump GCOV data to host via JTAG.
The following functionality was added:
 - Host file I/O
 - GCOV runtime I/O stubs
 - GCOV example
2017-09-07 18:13:16 +03:00
Alexey Gerenkov 5dea0fca15 esp_pthread_init constructor attr was removed 2017-09-06 10:30:23 +08:00
Alexey Gerenkov 5094965e98 According to comments 2017-09-06 10:30:23 +08:00
Alexey Gerenkov 20942421c3 According to review comments 2017-09-06 10:30:23 +08:00
Alexey Gerenkov 8859dab10c Cleanup 2017-09-06 10:30:23 +08:00
Alexey Gerenkov bf8ff8c98b 1) Thread detach functionality added
2) Recursive mutexes support
3) C++ test updated
2017-09-06 10:30:23 +08:00
Alexey Gerenkov c631c6b358 1) Mux API was added
2) C++ test for threading and mux functions
2017-09-06 10:30:23 +08:00
Alexey Gerenkov 0b09c7006d pthread: Initial version of thread API 2017-09-06 10:30:23 +08:00
Alexey Gerenkov fb8b0c534a esp32: Fixes infinite loop caused by exception during core dumping 2017-09-05 11:15:27 +08:00
Alexey Gerenkov cf29dd47a9 apptrace lock acquire function was re-designed to minimize waiting time with disabled IRQs 2017-09-04 20:44:11 +08:00
Alexey Gerenkov 7d86f167ee docs: Flashing over JTAG was added 2017-07-26 14:53:48 +08:00
Alexey Gerenkov 60c45ae2c4 Updated acc to comments 2017-07-24 20:07:21 +03:00
Alexey Gerenkov c2c9149a24 esp32: Apptrace API enhancement
- User down buffer configuration support
 - bugfix: ring buf - avalable write size undeflow
 - SysView down buf support updated
2017-07-24 19:57:44 +03:00
Alexey Gerenkov 8d43859b6a esp32: SEGGER SystemView Tracing Support
Implements support for system level traces compatible with SEGGER
SystemView tool on top of ESP32 application tracing module.
That kind of traces can help to analyse program's behaviour.
SystemView can show timeline of tasks/ISRs execution, context switches,
statistics related to the CPUs' load distribution etc.

Also this commit adds useful feature to ESP32 application tracing module:
 - Trace data buffering is implemented to handle temporary peaks of events load
2017-06-27 20:52:43 +03:00
Alexey Gerenkov 98895af68b esp32: Core dump sanity checks were added
- CRC for core dump flash partition config
 - Tasks with corrupted TCBs are skipped
 - Assertions to check that nothing is written beyond core dump flash partition
2017-04-26 21:13:02 +03:00
Alexey Gerenkov 77a92e6dcc esp32: Added dumping info from traceport upon reset by any WDT
- Last PC info and waiti mode indication are printed for both CPUs
 - Raw traceport regs values are printed only for log levels higher than DEBUG
2017-04-23 22:07:56 +03:00
Alexey Gerenkov 55f1a63faf esp32: Adds functionality for application tracing over JTAG
- Implements application tracing module which allows to send arbitrary
   data to host over JTAG. This feature is useful for analyzing
   program modules behavior, dumping run-time application data etc.
 - Implements printf-like logging functions on top of apptrace module.
   This feature is a kind of semihosted printf functionality with lower
   overhead and impact on system behaviour as compared to standard printf.
2017-04-17 23:26:29 +03:00
Alexey Gerenkov 0860f46220 spi_flash: Fixed bug in SPI flash ROM driver to work with embedded flash chip
1) fixed SPI_read_status: added check for flash busy flag in matrix mode
2) fixed SPI_page_program: enable write before writing data to SPI FIFO
3) SPI flash ROM funcs replacement is controlled via menuconfig option
2017-04-11 10:51:19 +08:00
Alexey Gerenkov c142b9b9e5 esp32: RWDT is used to reboot system in case of panic handler crash
also fixes TG1WDG protection bug in panic handler
2017-04-07 02:34:29 +03:00
Alexey Gerenkov a593d8a518 bugfix: fixed path to esptool when there is no compiled python module for it
bugfix: GDB inernal failure handling was added
2017-03-21 13:30:38 +03:00
Alexey Gerenkov 04acc88023 esp32: Fixes watchdog problem when printing core dump to uart
Also fixes generation of core dumps when flash cache is disabled
2017-02-01 18:39:28 +03:00
Alexey Gerenkov f512923791 esp32: Fixed search path for esptool 2017-01-26 19:28:13 +03:00
Alexey Gerenkov e6f8837152 esp32: Fixed and updated core dump docs 2017-01-26 18:47:10 +03:00
Alexey Gerenkov ad66fbe5ad esp32: Fixes issues discussed during code review of MR!341
The following issues mentioned during MR!341 review were fixed:
1) Core dump test application description
2) Usage of CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH and CONFIG_ESP32_ENABLE_COREDUMP_TO_UART
3) FLASH_GUARD_START macro usage is fixed in flash API
4) Core dump module logging facility
5) cache util functions doc updated
6) interactive delay before print core dump to uart
7) core dump partion support in build system
2017-01-12 19:38:19 +03:00
Alexey Gerenkov 50b3ce616f esp32: Adds documentation and comments to core dump feature files 2017-01-11 20:51:28 +03:00
Alexey Gerenkov 39ddc7b836 esp32: Fixes several issues in core dump feature
1) PS is fixed up to allow GDB backtrace to work properly
2) MR!341 discussion: in core dump module: esp_panicPutXXX was replaced by ets_printf.
3) MR!341 discussion: core dump flash magic number was changed.
4) MR!341 discussion: SPI flash access API was redesigned to allow flexible critical section management.
5) test app for core dump feature was added
6) fixed base64 file reading issues on Windows platform
7) now raw bin core file is deleted upon core loader failure by epscoredump.py
2017-01-11 20:51:28 +03:00
Alexey Gerenkov 23f836659d esp32: Add core dump printing to UART feature 2017-01-11 20:51:28 +03:00
Alexey Gerenkov 4a3e160888 esp32: Add core dump saving to flash feature
Complimentary changes:
1) Partition table definitions files with core dump partition
2) Special sub-type for core dump partition
3) Special version of spi_flash_xxx
4) espcoredump.py is script to get core dump from flash and print useful info
5) FreeRTOS API was extended to get tasks snapshots
2017-01-11 20:51:28 +03:00