perf: Enable 512KB LVGL image cache on PSRAM and move modified lvgl to local components

This commit is contained in:
Adolfo Reyna
2026-07-09 22:27:55 -04:00
parent df93252281
commit c4ec7ead55
3999 changed files with 813776 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
/**
* @file lv_utils.h
*
*/
#ifndef LV_UTILS_H
#define LV_UTILS_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#include "lv_types.h"
#include "../draw/lv_draw_buf.h"
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/** Searches base[0] to base[n - 1] for an item that matches *key.
*
* @note The function cmp must return negative if it's first
* argument (the search key) is less that it's second (a table entry),
* zero if equal, and positive if greater.
*
* @note Items in the array must be in ascending order.
*
* @param key Pointer to item being searched for
* @param base Pointer to first element to search
* @param n Number of elements
* @param size Size of each element
* @param cmp Pointer to comparison function (see unicode_list_compare()
* as a comparison function example)
*
* @return a pointer to a matching item, or NULL if none exists.
*/
void * lv_utils_bsearch(const void * key, const void * base, size_t n, size_t size,
int (*cmp)(const void * pRef, const void * pElement));
/**
* Save a draw buf to a file
* @param draw_buf pointer to a draw buffer
* @param path path to the file to save
* @return LV_RESULT_OK: success; LV_RESULT_INVALID: error
*/
lv_result_t lv_draw_buf_save_to_file(const lv_draw_buf_t * draw_buf, const char * path);
/**
* Reverse the order of the bytes in a 32-bit value.
* @param x a 32-bit value.
* @return the value `x` with reversed byte-order.
*/
static inline uint32_t lv_swap_bytes_32(uint32_t x)
{
return (x << 24)
| ((x & 0x0000ff00U) << 8)
| ((x & 0x00ff0000U) >> 8)
| (x >> 24);
}
/**
* Reverse the order of the bytes in a 16-bit value.
* @param x a 16-bit value.
* @return the value `x` with reversed byte-order.
*/
static inline uint16_t lv_swap_bytes_16(uint16_t x)
{
return (x << 8) | (x >> 8);
}
/**********************
* MACROS
**********************/
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif