Add memory diagnostics and optimize PSRAM usage
This commit is contained in:
+11
-3
@@ -28,6 +28,7 @@
|
||||
|
||||
#define SSH_TRANSPORT_TASK_STACK_SIZE 20480U
|
||||
#define SSH_TRANSPORT_TASK_PRIORITY 5U
|
||||
#define SSH_TRANSPORT_TASK_CORE 1
|
||||
#define SSH_TRANSPORT_LOOP_DELAY_MS 10U
|
||||
#define SSH_TRANSPORT_COMMAND_TIMEOUT_MS 10000U
|
||||
#define SSH_TRANSPORT_RECONCILE_INTERVAL_US 250000LL
|
||||
@@ -984,9 +985,9 @@ esp_err_t ssh_transport_init(void)
|
||||
s_session_snapshots[index].socket_fd = -1;
|
||||
s_session_snapshots[index].state = SSH_TRANSPORT_SESSION_FREE;
|
||||
}
|
||||
BaseType_t created = xTaskCreate(transport_task, "ssh_transport",
|
||||
SSH_TRANSPORT_TASK_STACK_SIZE, NULL,
|
||||
SSH_TRANSPORT_TASK_PRIORITY, &s_task);
|
||||
BaseType_t created = xTaskCreatePinnedToCore(
|
||||
transport_task, "ssh_transport", SSH_TRANSPORT_TASK_STACK_SIZE, NULL,
|
||||
SSH_TRANSPORT_TASK_PRIORITY, &s_task, SSH_TRANSPORT_TASK_CORE);
|
||||
if (created != pdPASS) {
|
||||
s_task = NULL;
|
||||
vSemaphoreDelete(command_mutex);
|
||||
@@ -1127,12 +1128,15 @@ esp_err_t ssh_transport_get_snapshot(ssh_transport_snapshot_t *snapshot)
|
||||
taskEXIT_CRITICAL(&s_lock);
|
||||
return ESP_ERR_INVALID_STATE;
|
||||
}
|
||||
TaskHandle_t task = s_task;
|
||||
memset(snapshot, 0, sizeof(*snapshot));
|
||||
snapshot->initialized = s_initialized;
|
||||
snapshot->running = s_running;
|
||||
snapshot->transitioning = s_transitioning;
|
||||
snapshot->port = SSH_TRANSPORT_PORT;
|
||||
snapshot->last_error = s_last_error;
|
||||
snapshot->task_core_id = SSH_TRANSPORT_TASK_CORE;
|
||||
snapshot->task_stack_size = SSH_TRANSPORT_TASK_STACK_SIZE;
|
||||
snapshot->counters = s_counters;
|
||||
for (size_t index = 0U; index < SSH_TRANSPORT_MAX_SESSIONS; ++index) {
|
||||
snapshot->sessions[index] = s_session_snapshots[index];
|
||||
@@ -1141,6 +1145,10 @@ esp_err_t ssh_transport_get_snapshot(ssh_transport_snapshot_t *snapshot)
|
||||
}
|
||||
}
|
||||
taskEXIT_CRITICAL(&s_lock);
|
||||
if (task != NULL) {
|
||||
snapshot->task_stack_free_minimum =
|
||||
(uint32_t)uxTaskGetStackHighWaterMark(task);
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user