修改lvgl。cjson内存管理器
This commit is contained in:
1 parent
552a916705
commit
541738319d
11 files changed
+100
-26
No files matched your search
Binary file not shown.
@@ -29,6 +29,8 @@ static const mb_backend_param_t mb_bkd_prm = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern unsigned char sys_time[6];
|
extern unsigned char sys_time[6];
|
||||||
|
uint8_t r_buffer[16],w_buffer[16];
|
||||||
|
uint16_t r_regsD[128],w_regsD[128];
|
||||||
|
|
||||||
static void mb_plc_read_regs(mb_inst_t *hinst)
|
static void mb_plc_read_regs(mb_inst_t *hinst)
|
||||||
{
|
{
|
||||||
@@ -39,7 +41,7 @@ static void mb_plc_read_regs(mb_inst_t *hinst)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//输入m0000->rtu2000
|
//输入m0000->rtu2000
|
||||||
uint8_t r_buffer[(DI_TABLE_SIZE + 7) / 8];
|
//uint8_t r_buffer[(DI_TABLE_SIZE + 7) / 8];
|
||||||
//读取 Modbus bits
|
//读取 Modbus bits
|
||||||
int mrx = mb_read_bits(hinst, 2000, DI_TABLE_SIZE, r_buffer);
|
int mrx = mb_read_bits(hinst, 2000, DI_TABLE_SIZE, r_buffer);
|
||||||
if (mrx > 0)
|
if (mrx > 0)
|
||||||
@@ -53,7 +55,7 @@ static void mb_plc_read_regs(mb_inst_t *hinst)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 输出 m0256 -> RTU 2256
|
// 输出 m0256 -> RTU 2256
|
||||||
uint8_t w_buffer[(DO_TABLE_SIZE + 7) / 8]; // 关键:初始化为0
|
//uint8_t w_buffer[(DO_TABLE_SIZE + 7) / 8]; // 关键:初始化为0
|
||||||
// 打包 do_table 到 bit_buffer
|
// 打包 do_table 到 bit_buffer
|
||||||
for (int i = 0; i < DO_TABLE_SIZE; i++) {
|
for (int i = 0; i < DO_TABLE_SIZE; i++) {
|
||||||
const int byte_idx = i / 8;
|
const int byte_idx = i / 8;
|
||||||
@@ -73,7 +75,7 @@ static void mb_plc_read_regs(mb_inst_t *hinst)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//输入寄存器d0->6000
|
//输入寄存器d0->6000
|
||||||
u16 r_regsD[AI_TABLE_SIZE];
|
//u16 r_regsD[AI_TABLE_SIZE];
|
||||||
// 读 Modbus
|
// 读 Modbus
|
||||||
int mrd = mb_read_regs(hinst, 6000, AI_TABLE_SIZE, r_regsD);
|
int mrd = mb_read_regs(hinst, 6000, AI_TABLE_SIZE, r_regsD);
|
||||||
if (mrd > 0)
|
if (mrd > 0)
|
||||||
@@ -87,7 +89,7 @@ static void mb_plc_read_regs(mb_inst_t *hinst)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//输出寄存器d100->6100
|
//输出寄存器d100->6100
|
||||||
u16 w_regsD [AO_TABLE_SIZE];
|
//u16 w_regsD [AO_TABLE_SIZE];
|
||||||
for (int i = 0; i < AO_TABLE_SIZE; i++)
|
for (int i = 0; i < AO_TABLE_SIZE; i++)
|
||||||
{
|
{
|
||||||
w_regsD [i] = ao_table[i].current_Value;
|
w_regsD [i] = ao_table[i].current_Value;
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*
|
||||||
|
* Change Logs:
|
||||||
|
* Date Author Notes
|
||||||
|
* 2026-01-24 Administrator the first version
|
||||||
|
*/
|
||||||
|
#include <rtthread.h>
|
||||||
|
#include "lvgl.h"
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
extern struct rt_memheap sdram_heap; //
|
||||||
|
|
||||||
|
void *lv_custom_mem_alloc(size_t size)
|
||||||
|
{
|
||||||
|
return rt_memheap_alloc(&sdram_heap, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lv_custom_mem_free(void *ptr)
|
||||||
|
{
|
||||||
|
if (ptr) rt_memheap_free(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void *lv_custom_mem_realloc(void *ptr, size_t new_size)
|
||||||
|
{
|
||||||
|
return rt_memheap_realloc(&sdram_heap, ptr, new_size);
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*
|
||||||
|
* Change Logs:
|
||||||
|
* Date Author Notes
|
||||||
|
* 2026-01-24 Administrator the first version
|
||||||
|
*/
|
||||||
|
#ifndef APPLICATIONS_LVGL_LV_PORT_MEM_H_
|
||||||
|
#define APPLICATIONS_LVGL_LV_PORT_MEM_H_
|
||||||
|
|
||||||
|
void *lv_custom_mem_alloc(size_t size);
|
||||||
|
void lv_custom_mem_free(void *ptr);
|
||||||
|
void *lv_custom_mem_realloc(void *ptr, size_t new_size);
|
||||||
|
|
||||||
|
#endif /* APPLICATIONS_LVGL_LV_PORT_MEM_H_ */
|
||||||
@@ -190,8 +190,6 @@ void db_sqlite_init_full(void)
|
|||||||
if (g_db)
|
if (g_db)
|
||||||
{
|
{
|
||||||
sqlite3_close(g_db);
|
sqlite3_close(g_db);
|
||||||
//限制缓存大小 (100KB)
|
|
||||||
sqlite3_exec(g_db, "PRAGMA cache_size = 50;", 0, 0, 0);
|
|
||||||
g_db = RT_NULL;
|
g_db = RT_NULL;
|
||||||
}
|
}
|
||||||
return; //
|
return; //
|
||||||
@@ -286,7 +284,6 @@ static void db_sqlite(void *parameter) {
|
|||||||
if (first_wait_done)
|
if (first_wait_done)
|
||||||
{
|
{
|
||||||
first_wait_done = RT_FALSE;
|
first_wait_done = RT_FALSE;
|
||||||
sqlite3_exec(g_db, "PRAGMA shrink_memory;", 0, 0, 0);
|
|
||||||
sqlite3_close(g_db);
|
sqlite3_close(g_db);
|
||||||
g_db=RT_NULL;
|
g_db=RT_NULL;
|
||||||
op_link=0;
|
op_link=0;
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ static void idle_hook(void)
|
|||||||
|
|
||||||
static int wdt_sample()
|
static int wdt_sample()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
rt_thread_mdelay(5000);
|
||||||
|
|
||||||
rt_err_t ret = RT_EOK;
|
rt_err_t ret = RT_EOK;
|
||||||
rt_uint32_t timeout = 1; /* 溢出时间,单位:秒 */
|
rt_uint32_t timeout = 1; /* 溢出时间,单位:秒 */
|
||||||
char device_name[RT_NAME_MAX];
|
char device_name[RT_NAME_MAX];
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
*=========================*/
|
*=========================*/
|
||||||
|
|
||||||
/*1: use custom malloc/free, 0: use the built-in `lv_mem_alloc()` and `lv_mem_free()`*/
|
/*1: use custom malloc/free, 0: use the built-in `lv_mem_alloc()` and `lv_mem_free()`*/
|
||||||
#define LV_MEM_CUSTOM 0
|
#define LV_MEM_CUSTOM 1
|
||||||
#if LV_MEM_CUSTOM == 0
|
#if LV_MEM_CUSTOM == 0
|
||||||
/*Size of the memory available for `lv_mem_alloc()` in bytes (>= 2kB)*/
|
/*Size of the memory available for `lv_mem_alloc()` in bytes (>= 2kB)*/
|
||||||
#define LV_MEM_SIZE (64U * 1024U) /*[bytes]*/
|
#define LV_MEM_SIZE (64U * 1024U) /*[bytes]*/
|
||||||
@@ -54,9 +54,9 @@
|
|||||||
|
|
||||||
#else /*LV_MEM_CUSTOM*/
|
#else /*LV_MEM_CUSTOM*/
|
||||||
#define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
|
#define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
|
||||||
#define LV_MEM_CUSTOM_ALLOC malloc
|
#define LV_MEM_CUSTOM_ALLOC rt_memheap_alloc(&sdram_heap)
|
||||||
#define LV_MEM_CUSTOM_FREE free
|
#define LV_MEM_CUSTOM_FREE rt_memheap_free()
|
||||||
#define LV_MEM_CUSTOM_REALLOC realloc
|
#define LV_MEM_CUSTOM_REALLOC rt_memheap_realloc(&sdram_heap)
|
||||||
#endif /*LV_MEM_CUSTOM*/
|
#endif /*LV_MEM_CUSTOM*/
|
||||||
|
|
||||||
/*Number of the intermediate memory buffer used during rendering and other internal processing mechanisms.
|
/*Number of the intermediate memory buffer used during rendering and other internal processing mechanisms.
|
||||||
|
|||||||
@@ -23,9 +23,15 @@
|
|||||||
#ifdef RT_USING_HEAP
|
#ifdef RT_USING_HEAP
|
||||||
# define LV_MEM_CUSTOM 1
|
# define LV_MEM_CUSTOM 1
|
||||||
# define LV_MEM_CUSTOM_INCLUDE LV_RTTHREAD_INCLUDE
|
# define LV_MEM_CUSTOM_INCLUDE LV_RTTHREAD_INCLUDE
|
||||||
# define LV_MEM_CUSTOM_ALLOC rt_malloc
|
//# define LV_MEM_CUSTOM_ALLOC rt_malloc
|
||||||
# define LV_MEM_CUSTOM_FREE rt_free
|
//# define LV_MEM_CUSTOM_FREE rt_free
|
||||||
# define LV_MEM_CUSTOM_REALLOC rt_realloc
|
//# define LV_MEM_CUSTOM_REALLOC rt_realloc
|
||||||
|
|
||||||
|
extern struct rt_memheap sdram_heap;
|
||||||
|
#define LV_MEM_CUSTOM_ALLOC(x) rt_memheap_alloc(&sdram_heap,(rt_size_t)x)
|
||||||
|
#define LV_MEM_CUSTOM_FREE rt_memheap_free
|
||||||
|
#define LV_MEM_CUSTOM_REALLOC(x,y) rt_memheap_realloc(&sdram_heap,(x),(rt_size_t)(y))
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*====================
|
/*====================
|
||||||
|
|||||||
+3
-3
@@ -61,9 +61,9 @@
|
|||||||
|
|
||||||
#else /*LV_MEM_CUSTOM*/
|
#else /*LV_MEM_CUSTOM*/
|
||||||
#define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
|
#define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
|
||||||
#define LV_MEM_CUSTOM_ALLOC malloc
|
#define LV_MEM_CUSTOM_ALLOC rt_memheap_alloc(&sdram_heap)
|
||||||
#define LV_MEM_CUSTOM_FREE free
|
#define LV_MEM_CUSTOM_FREE rt_memheap_free()
|
||||||
#define LV_MEM_CUSTOM_REALLOC realloc
|
#define LV_MEM_CUSTOM_REALLOC rt_memheap_realloc(&sdram_heap)
|
||||||
#endif /*LV_MEM_CUSTOM*/
|
#endif /*LV_MEM_CUSTOM*/
|
||||||
|
|
||||||
/*Number of the intermediate memory buffer used during rendering and other internal processing mechanisms.
|
/*Number of the intermediate memory buffer used during rendering and other internal processing mechanisms.
|
||||||
|
|||||||
Vendored
+23
-3
@@ -176,9 +176,29 @@ static void * CJSON_CDECL internal_realloc(void *pointer, size_t size)
|
|||||||
return realloc(pointer, size);
|
return realloc(pointer, size);
|
||||||
}
|
}
|
||||||
#elif defined(__RTTHREAD__)
|
#elif defined(__RTTHREAD__)
|
||||||
#define internal_malloc rt_malloc
|
//#define internal_malloc rt_malloc
|
||||||
#define internal_free rt_free
|
//#define internal_free rt_free
|
||||||
#define internal_realloc rt_realloc
|
//#define internal_realloc rt_realloc
|
||||||
|
|
||||||
|
extern struct rt_memheap sdram_heap;
|
||||||
|
|
||||||
|
void *cjson_malloc(size_t size)
|
||||||
|
{
|
||||||
|
return rt_memheap_alloc(&sdram_heap, size);
|
||||||
|
}
|
||||||
|
void cjson_free(void *ptr)
|
||||||
|
{
|
||||||
|
if (ptr)
|
||||||
|
rt_memheap_free(ptr);
|
||||||
|
}
|
||||||
|
void* cjson_realloc(void *ptr, size_t new_size) {
|
||||||
|
return rt_memheap_realloc(&sdram_heap, ptr, new_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define internal_malloc cjson_malloc
|
||||||
|
#define internal_free cjson_free
|
||||||
|
#define internal_realloc cjson_realloc
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define internal_malloc malloc
|
#define internal_malloc malloc
|
||||||
#define internal_free free
|
#define internal_free free
|
||||||
|
|||||||
@@ -20727,13 +20727,13 @@ static malloc_zone_t* _sqliteZone_;
|
|||||||
** Use standard C library malloc and free on non-Apple systems.
|
** Use standard C library malloc and free on non-Apple systems.
|
||||||
** Also used by rt-thread systems if SQLITE_WITHOUT_ZONEMALLOC is defined.
|
** Also used by rt-thread systems if SQLITE_WITHOUT_ZONEMALLOC is defined.
|
||||||
*/
|
*/
|
||||||
extern struct rt_memheap sram_DTCMRAM;
|
/*extern struct rt_memheap sdram_heap;
|
||||||
#define SQLITE_MALLOC(x) rt_memheap_alloc(&sram_DTCMRAM,(rt_size_t)x)
|
#define SQLITE_MALLOC(x) rt_memheap_alloc(&sdram_heap,(rt_size_t)x)
|
||||||
#define SQLITE_FREE(x) rt_memheap_free(x)
|
#define SQLITE_FREE(x) rt_memheap_free(x)
|
||||||
#define SQLITE_REALLOC(x,y) rt_memheap_realloc(&sram_DTCMRAM,(x),(rt_size_t)(y))
|
#define SQLITE_REALLOC(x,y) rt_memheap_realloc(&sdram_heap,(x),(rt_size_t)(y))*/
|
||||||
//#define SQLITE_MALLOC(x) rt_malloc((rt_size_t)x)
|
#define SQLITE_MALLOC(x) rt_malloc((rt_size_t)x)
|
||||||
//#define SQLITE_FREE(x) rt_free(x)
|
#define SQLITE_FREE(x) rt_free(x)
|
||||||
//#define SQLITE_REALLOC(x,y) rt_realloc((x),(rt_size_t)(y))
|
#define SQLITE_REALLOC(x,y) rt_realloc((x),(rt_size_t)(y))
|
||||||
|
|
||||||
#if (!defined(SQLITE_WITHOUT_MSIZE)) \
|
#if (!defined(SQLITE_WITHOUT_MSIZE)) \
|
||||||
&& (defined(HAVE_MALLOC_H) && defined(HAVE_MALLOC_USABLE_SIZE))
|
&& (defined(HAVE_MALLOC_H) && defined(HAVE_MALLOC_USABLE_SIZE))
|
||||||
|
|||||||
Reference in new issue
Block a user