Adds a menu item to enable onboard profiling. This requires significant RAM and really only makes sense on devices with PSRAM to store the state. When the menu item is selected, allocates RAM and tracks function calls and periodically samples the PC to generate a histogram of application usage. The onboard gmon.out file can be written over Semihosting or some other way to transfer to a PC for analysis. Adds a profiling example with command lines.
84 lines
2.4 KiB
C
84 lines
2.4 KiB
C
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
#include <Ilabs2040WiFiClass.h>
|
|
#endif
|
|
|
|
#define PINS_COUNT (26u)
|
|
#define NUM_DIGITAL_PINS (26u)
|
|
#define NUM_ANALOG_INPUTS (4u)
|
|
#define NUM_ANALOG_OUTPUTS (0u)
|
|
#define ADC_RESOLUTION (12u)
|
|
|
|
// Connected to ESP8285
|
|
#define PIN_SERIAL1_TX (0u)
|
|
#define PIN_SERIAL1_RX (1u)
|
|
#define PIN_ESP_RESET (2u)
|
|
#define PIN_ESP_MODE (3u)
|
|
#define PIN_ESP_TXD PIN_SERIAL1_TX
|
|
#define PIN_ESP_RXD PIN_SERIAL1_RX
|
|
#define ESP_SERIAL_PORT Serial1
|
|
|
|
// Serial
|
|
#define PIN_SERIAL2_TX (8u)
|
|
#define PIN_SERIAL2_RX (9u)
|
|
|
|
// SPI
|
|
#define PIN_SPI0_MISO (24u)
|
|
#define PIN_SPI0_MOSI (23u)
|
|
#define PIN_SPI0_SCK (22u)
|
|
#define PIN_SPI0_SS (21u)
|
|
|
|
// Not pinned out
|
|
#define PIN_SPI1_MISO (31u)
|
|
#define PIN_SPI1_MOSI (31u)
|
|
#define PIN_SPI1_SCK (31u)
|
|
#define PIN_SPI1_SS (31u)
|
|
|
|
// Wire
|
|
#define PIN_WIRE0_SDA (4u)
|
|
#define PIN_WIRE0_SCL (5u)
|
|
|
|
// Not pinned out
|
|
#define PIN_WIRE1_SDA (31u)
|
|
#define PIN_WIRE1_SCL (31u)
|
|
|
|
#define SERIAL_HOWMANY (2u)
|
|
#define SPI_HOWMANY (1u)
|
|
#define WIRE_HOWMANY (1u)
|
|
|
|
static const uint8_t D0 = (0u); // Internal to the board
|
|
static const uint8_t D1 = (1u); // Internal to the board
|
|
static const uint8_t D2 = (2u); // Internal to the board
|
|
static const uint8_t D3 = (3u); // Internal to the board
|
|
static const uint8_t D4 = (4u);
|
|
static const uint8_t D5 = (5u);
|
|
static const uint8_t D6 = (6u);
|
|
static const uint8_t D7 = (7u);
|
|
static const uint8_t D8 = (8u);
|
|
static const uint8_t D9 = (9u);
|
|
static const uint8_t D10 = (10u);
|
|
static const uint8_t D11 = (11u);
|
|
static const uint8_t D12 = (12u);
|
|
static const uint8_t D13 = (13u);
|
|
static const uint8_t D14 = (14u);
|
|
static const uint8_t D15 = (15u);
|
|
static const uint8_t D16 = (16u);
|
|
static const uint8_t D17 = (17u);
|
|
static const uint8_t D18 = (18u);
|
|
static const uint8_t D19 = (19u);
|
|
static const uint8_t D20 = (20u);
|
|
static const uint8_t D21 = (21u);
|
|
static const uint8_t D22 = (22u);
|
|
static const uint8_t D23 = (23u);
|
|
static const uint8_t D24 = (24u);
|
|
static const uint8_t D25 = (25u);
|
|
static const uint8_t D26 = (26u);
|
|
static const uint8_t D27 = (27u);
|
|
static const uint8_t D28 = (28u);
|
|
static const uint8_t D29 = (29u);
|
|
|
|
static const uint8_t A0 = (26u);
|
|
static const uint8_t A1 = (27u);
|
|
static const uint8_t A2 = (28u);
|
|
static const uint8_t A3 = (29u);
|