mirror of
https://github.com/esphome/esphome.git
synced 2025-11-16 14:55:50 +00:00
[nrf52,debug] add partition dump (#11839)
Co-authored-by: J. Nick Koston <nick+github@koston.org>
This commit is contained in:
@@ -49,9 +49,9 @@ void DebugComponent::dump_config() {
|
|||||||
}
|
}
|
||||||
#endif // USE_TEXT_SENSOR
|
#endif // USE_TEXT_SENSOR
|
||||||
|
|
||||||
#ifdef USE_ESP32
|
#if defined(USE_ESP32) || defined(USE_ZEPHYR)
|
||||||
this->log_partition_info_(); // Log partition information for ESP32
|
this->log_partition_info_(); // Log partition information
|
||||||
#endif // USE_ESP32
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebugComponent::loop() {
|
void DebugComponent::loop() {
|
||||||
|
|||||||
@@ -62,19 +62,19 @@ class DebugComponent : public PollingComponent {
|
|||||||
sensor::Sensor *cpu_frequency_sensor_{nullptr};
|
sensor::Sensor *cpu_frequency_sensor_{nullptr};
|
||||||
#endif // USE_SENSOR
|
#endif // USE_SENSOR
|
||||||
|
|
||||||
#ifdef USE_ESP32
|
#if defined(USE_ESP32) || defined(USE_ZEPHYR)
|
||||||
/**
|
/**
|
||||||
* @brief Logs information about the device's partition table.
|
* @brief Logs information about the device's partition table.
|
||||||
*
|
*
|
||||||
* This function iterates through the ESP32's partition table and logs details
|
* This function iterates through the partition table and logs details
|
||||||
* about each partition, including its name, type, subtype, starting address,
|
* about each partition, including its name, type, subtype, starting address,
|
||||||
* and size. The information is useful for diagnosing issues related to flash
|
* and size. The information is useful for diagnosing issues related to flash
|
||||||
* memory or verifying the partition configuration dynamically at runtime.
|
* memory or verifying the partition configuration dynamically at runtime.
|
||||||
*
|
*
|
||||||
* Only available when compiled for ESP32 platforms.
|
* Only available when compiled for ESP32 and ZEPHYR platforms.
|
||||||
*/
|
*/
|
||||||
void log_partition_info_();
|
void log_partition_info_();
|
||||||
#endif // USE_ESP32
|
#endif
|
||||||
|
|
||||||
#ifdef USE_TEXT_SENSOR
|
#ifdef USE_TEXT_SENSOR
|
||||||
text_sensor::TextSensor *device_info_{nullptr};
|
text_sensor::TextSensor *device_info_{nullptr};
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#include <zephyr/drivers/hwinfo.h>
|
#include <zephyr/drivers/hwinfo.h>
|
||||||
#include <hal/nrf_power.h>
|
#include <hal/nrf_power.h>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include <zephyr/storage/flash_map.h>
|
||||||
|
|
||||||
#define BOOTLOADER_VERSION_REGISTER NRF_TIMER2->CC[0]
|
#define BOOTLOADER_VERSION_REGISTER NRF_TIMER2->CC[0]
|
||||||
|
|
||||||
@@ -86,6 +87,37 @@ std::string DebugComponent::get_reset_reason_() {
|
|||||||
|
|
||||||
uint32_t DebugComponent::get_free_heap_() { return INT_MAX; }
|
uint32_t DebugComponent::get_free_heap_() { return INT_MAX; }
|
||||||
|
|
||||||
|
static void fa_cb(const struct flash_area *fa, void *user_data) {
|
||||||
|
#if CONFIG_FLASH_MAP_LABELS
|
||||||
|
const char *fa_label = flash_area_label(fa);
|
||||||
|
|
||||||
|
if (fa_label == nullptr) {
|
||||||
|
fa_label = "-";
|
||||||
|
}
|
||||||
|
ESP_LOGCONFIG(TAG, "%2d 0x%0*" PRIxPTR " %-26s %-24.24s 0x%-10x 0x%-12x", (int) fa->fa_id,
|
||||||
|
sizeof(uintptr_t) * 2, (uintptr_t) fa->fa_dev, fa->fa_dev->name, fa_label, (uint32_t) fa->fa_off,
|
||||||
|
fa->fa_size);
|
||||||
|
#else
|
||||||
|
ESP_LOGCONFIG(TAG, "%2d 0x%0*" PRIxPTR " %-26s 0x%-10x 0x%-12x", (int) fa->fa_id, sizeof(uintptr_t) * 2,
|
||||||
|
(uintptr_t) fa->fa_dev, fa->fa_dev->name, (uint32_t) fa->fa_off, fa->fa_size);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void DebugComponent::log_partition_info_() {
|
||||||
|
#if CONFIG_FLASH_MAP_LABELS
|
||||||
|
ESP_LOGCONFIG(TAG, "ID | Device | Device Name "
|
||||||
|
"| Label | Offset | Size");
|
||||||
|
ESP_LOGCONFIG(TAG, "--------------------------------------------"
|
||||||
|
"-----------------------------------------------");
|
||||||
|
#else
|
||||||
|
ESP_LOGCONFIG(TAG, "ID | Device | Device Name "
|
||||||
|
"| Offset | Size");
|
||||||
|
ESP_LOGCONFIG(TAG, "-----------------------------------------"
|
||||||
|
"------------------------------");
|
||||||
|
#endif
|
||||||
|
flash_area_foreach(fa_cb, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
void DebugComponent::get_device_info_(std::string &device_info) {
|
void DebugComponent::get_device_info_(std::string &device_info) {
|
||||||
std::string supply = "Main supply status: ";
|
std::string supply = "Main supply status: ";
|
||||||
if (nrf_power_mainregstatus_get(NRF_POWER) == NRF_POWER_MAINREGSTATUS_NORMAL) {
|
if (nrf_power_mainregstatus_get(NRF_POWER) == NRF_POWER_MAINREGSTATUS_NORMAL) {
|
||||||
|
|||||||
1
tests/components/debug/test.nrf52-xiao-ble.yaml
Normal file
1
tests/components/debug/test.nrf52-xiao-ble.yaml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<<: !include common.yaml
|
||||||
Reference in New Issue
Block a user