From 83f6dde86017781875cb4f2f3d0fc2c0dcf7a941 Mon Sep 17 00:00:00 2001 From: sc <2401809606@qq.com> Date: Mon, 26 Jan 2026 01:49:05 +0800 Subject: [PATCH] xx --- .config | 2 ++ .cproject | 2 +- .project | 2 +- applications/data/DATA_comm.c | 12 +++++------ applications/data/Variable.c | 10 ++++----- applications/data/Variable.h | 10 ++++----- applications/disk/QSPI_elmfatfs.c | 2 +- applications/sql/DB_SQLite.c | 10 ++++++++- drivers/board.c | 2 +- packages/sqlite/sqlite_config_rtthread.h | 10 +++++++++ rt-thread/include/rtthread.h | 1 + rt-thread/src/memheap.c | 27 ++++++++++++++++++++++++ 12 files changed, 68 insertions(+), 22 deletions(-) diff --git a/.config b/.config index 8628bee..2194d37 100644 --- a/.config +++ b/.config @@ -583,6 +583,7 @@ CONFIG_PKG_LVGL_VER="v8.3.10" # CONFIG_PKG_USING_U8G2 is not set # end of u8g2: a monochrome graphic library +# CONFIG_PKG_USING_NES_SIMULATOR is not set # CONFIG_PKG_USING_OPENMV is not set # CONFIG_PKG_USING_MUPDF is not set # CONFIG_PKG_USING_STEMWIN is not set @@ -1162,6 +1163,7 @@ CONFIG_PKG_RS485_VER="v1.06" # CONFIG_PKG_USING_ISOTP_C is not set # CONFIG_PKG_USING_IKUNLED is not set # CONFIG_PKG_USING_INS5T8025 is not set +# CONFIG_PKG_USING_ST7305 is not set # CONFIG_PKG_USING_SPI_TOOLS is not set # end of peripheral libraries and drivers diff --git a/.cproject b/.cproject index 163db0e..b85ef55 100644 --- a/.cproject +++ b/.cproject @@ -1526,7 +1526,7 @@ - + diff --git a/.project b/.project index f059ea4..350c330 100644 --- a/.project +++ b/.project @@ -1,6 +1,6 @@ - 828F + project diff --git a/applications/data/DATA_comm.c b/applications/data/DATA_comm.c index 413b149..0142862 100644 --- a/applications/data/DATA_comm.c +++ b/applications/data/DATA_comm.c @@ -408,20 +408,20 @@ void pasre_DAT(const char *api, const char *json_str) } else if (strcmp(api, "SC830") == 0) {//当前信息 - cJSON_AddItemToObject(dat,"ERR",cJSON_CreateBool(MACHINE_ERR)); - cJSON_AddItemToObject(dat,"LOCK",cJSON_CreateBool(MACHINE_LOCK)); + cJSON_AddItemToObject(dat,"ERR",cJSON_CreateNumber(MACHINE_ERR)); + cJSON_AddItemToObject(dat,"LOCK",cJSON_CreateNumber(MACHINE_LOCK)); cJSON_AddItemToObject(dat,"Status",cJSON_CreateString(Message)); cJSON_AddItemToObject(dat,"Work",cJSON_CreateString(Work)); cJSON_AddItemToObject(dat,"ReDye",cJSON_CreateNumber(Redye)); cJSON_AddItemToObject(dat,"Process",cJSON_CreateString(Process)); cJSON_AddItemToObject(dat,"Step",cJSON_CreateString(Step)); - cJSON_AddItemToObject(dat,"User",cJSON_CreateBool(MACHINE_USER)); - cJSON_AddItemToObject(dat,"UserB",cJSON_CreateString("False")); + cJSON_AddItemToObject(dat,"User",cJSON_CreateNumber(MACHINE_USER)); + cJSON_AddItemToObject(dat,"UserB",cJSON_CreateNumber(0)); cJSON_AddItemToObject(dat,"InfoS",cJSON_CreateNumber(UserInfoStart)); cJSON_AddItemToObject(dat,"Info",cJSON_CreateString(Info)); cJSON_AddItemToObject(dat,"RUN",cJSON_CreateNumber(RUN)); cJSON_AddItemToObject(dat,"STEPID",cJSON_CreateNumber(STEPID)); - cJSON_AddItemToObject(dat,"CALL",cJSON_CreateBool(MACHINE_CALL)); + cJSON_AddItemToObject(dat,"CALL",cJSON_CreateNumber(MACHINE_CALL)); cJSON_AddItemToObject(dat,"MST",cJSON_CreateNumber(MST)); cJSON_AddItemToObject(dat,"MTT",cJSON_CreateNumber(MTT)); cJSON_AddItemToObject(dat,"MTL",cJSON_CreateNumber(MTL)); @@ -431,8 +431,6 @@ void pasre_DAT(const char *api, const char *json_str) cJSON_AddItemToObject(dat,"STLA",cJSON_CreateNumber(STLA)); cJSON_AddItemToObject(dat,"STTB",cJSON_CreateNumber(STTB)); cJSON_AddItemToObject(dat,"STLB",cJSON_CreateNumber(STLB)); - cJSON_AddItemToObject(dat,"STTC",cJSON_CreateNumber(STTC)); - cJSON_AddItemToObject(dat,"STLC",cJSON_CreateNumber(STLC)); } else if (strcmp(api, "SC831") == 0) {//当前步骤信息 diff --git a/applications/data/Variable.c b/applications/data/Variable.c index db157b0..9f22193 100644 --- a/applications/data/Variable.c +++ b/applications/data/Variable.c @@ -21,11 +21,11 @@ char machine_name[16]; char machine_ID[3]; // 状态标志 -char MACHINE_ERR = 0; -char MACHINE_LOCK = 0; -char MACHINE_AUTO = 0; -char MACHINE_CALL = 0; -char MACHINE_USER = 0; +rt_bool_t MACHINE_ERR = 0; +rt_bool_t MACHINE_LOCK = 0; +rt_bool_t MACHINE_AUTO =0; +rt_bool_t MACHINE_CALL = 0; +rt_bool_t MACHINE_USER = 0; // 字符串变量(RAM 中可修改) char Work[25]="SC----------"; diff --git a/applications/data/Variable.h b/applications/data/Variable.h index 1a016dd..976bb31 100644 --- a/applications/data/Variable.h +++ b/applications/data/Variable.h @@ -22,11 +22,11 @@ extern char machine_name[16]; extern char machine_ID[3]; // ===== 布尔变量 ===== -extern char MACHINE_ERR; -extern char MACHINE_LOCK; -extern char MACHINE_AUTO; -extern char MACHINE_CALL; -extern char MACHINE_USER; +extern rt_bool_t MACHINE_ERR; +extern rt_bool_t MACHINE_LOCK; +extern rt_bool_t MACHINE_AUTO; +extern rt_bool_t MACHINE_CALL; +extern rt_bool_t MACHINE_USER; // ===== 字符串 ===== extern char Work[25]; diff --git a/applications/disk/QSPI_elmfatfs.c b/applications/disk/QSPI_elmfatfs.c index a635689..add9767 100644 --- a/applications/disk/QSPI_elmfatfs.c +++ b/applications/disk/QSPI_elmfatfs.c @@ -112,7 +112,7 @@ int qspi_fal(void) { LOG_E("Format memory sysdata"); /* 格式化文件系统 */ - dfs_mkfs("lfs", "sysdata"); + //dfs_mkfs("lfs", "sysdata"); /* 挂载 littlefs */ if (dfs_mount("sysdata", "/sys", "lfs", 0, NULL) == RT_EOK) { diff --git a/applications/sql/DB_SQLite.c b/applications/sql/DB_SQLite.c index 896c164..b117331 100644 --- a/applications/sql/DB_SQLite.c +++ b/applications/sql/DB_SQLite.c @@ -13,6 +13,7 @@ #include #include "DB_SQLite.h" #include "sqlite3.h" +#include #define DB_NAME "/sddisk/SC828.db" int db_HelperInit; @@ -180,6 +181,10 @@ void close_db_immediately(void) { void db_sqlite_init_full(void) { LOG_D("[DataBase] Init SQLite"); + + rt_uint8_t * ptr = rt_malloc(1024*4); + sqlite3_config(SQLITE_CONFIG_PAGECACHE, ptr, 4096, 1); + sqlite3_initialize(); if (access(DB_NAME, F_OK) != 0) @@ -194,6 +199,9 @@ void db_sqlite_init_full(void) } return; // } else{ + + sqlite3_exec(g_db, "PRAGMA cache_size = 8;", 0, 0, 0); + if(sqlite3_exec(g_db,sql_upgrade_workorder_steps, 0, 0, 0)==0) { LOG_D("[DataBASE]WorkorderSteps Created successfully "); @@ -339,7 +347,7 @@ static void db_sqlite(void *parameter) { continue; } else { //限制缓存大小 (KB) - sqlite3_exec(g_db, "PRAGMA cache_size = 8;", 0, 0, 0); + //sqlite3_exec(g_db, "PRAGMA cache_size = 8;", 0, 0, 0); //设置临时存储为文件模式 (节省内存) //sqlite3_exec(g_db, "PRAGMA temp_store = FILE;", 0, 0, 0); //rt_kprintf("Opened database: %s\n", DB_NAME); diff --git a/drivers/board.c b/drivers/board.c index e834b45..b32b56c 100644 --- a/drivers/board.c +++ b/drivers/board.c @@ -19,7 +19,7 @@ rt_weak void rt_hw_board_init() /* 允许未对齐访问(Cortex-M3/M4/M7 支持) */ //SCB->CCR |= SCB_CCR_UNALIGN_TRP_Msk; // ← 默认是 1(禁止) // 要允许,应该 CLEAR 这个位! - //SCB->CCR &= ~SCB_CCR_UNALIGN_TRP_Msk; + //SCB->CCR &= ~SCB_CCR_UNALIGN_TRP_Msk; extern void hw_board_init(char *clock_src, int32_t clock_src_freq, int32_t clock_target_freq); diff --git a/packages/sqlite/sqlite_config_rtthread.h b/packages/sqlite/sqlite_config_rtthread.h index fcc89e6..a5101e9 100644 --- a/packages/sqlite/sqlite_config_rtthread.h +++ b/packages/sqlite/sqlite_config_rtthread.h @@ -41,4 +41,14 @@ #define SQLITE_OS_RTTHREAD 1 #endif +#ifndef SQLITE_DISABLE_INTRINSIC +#define SQLITE_DISABLE_INTRINSIC 1 +#endif + +#ifndef SQLITE_BYTEORDER +#define SQLITE_BYTEORDER 0 +#endif + +#define SQLITE_OMIT_RBU 1 + #endif diff --git a/rt-thread/include/rtthread.h b/rt-thread/include/rtthread.h index 35b0893..d1a394d 100644 --- a/rt-thread/include/rtthread.h +++ b/rt-thread/include/rtthread.h @@ -344,6 +344,7 @@ rt_err_t rt_memheap_init(struct rt_memheap *memheap, rt_err_t rt_memheap_detach(struct rt_memheap *heap); void *rt_memheap_alloc(struct rt_memheap *heap, rt_size_t size); void *rt_memheap_realloc(struct rt_memheap *heap, void *ptr, rt_size_t newsize); +void *rt_memheap_calloc(struct rt_memheap *heap, rt_size_t count, rt_size_t size); void rt_memheap_free(void *ptr); void rt_memheap_info(struct rt_memheap *heap, rt_size_t *total, diff --git a/rt-thread/src/memheap.c b/rt-thread/src/memheap.c index 4b09fea..71d56e6 100644 --- a/rt-thread/src/memheap.c +++ b/rt-thread/src/memheap.c @@ -585,6 +585,33 @@ void *rt_memheap_realloc(struct rt_memheap *heap, void *ptr, rt_size_t newsize) } RTM_EXPORT(rt_memheap_realloc); +/** + * @brief This function will allocate a block of memory from the specified memheap, + * and initialize all bytes in the allocated block to zero. + * + * @param heap is a pointer to the memheap object from which to allocate memory. + * + * @param count is the number of elements to allocate. + * + * @param size is the size of each element. + * + * @return the allocated memory block address, or RT_NULL on failure. + */ +void *rt_memheap_calloc(struct rt_memheap *heap, rt_size_t count, rt_size_t size) +{ + void *p; + + /* allocate 'count' objects of size 'size' */ + p = rt_memheap_alloc(heap,count * size); + /* zero the memory */ + if (p) + { + rt_memset(p, 0, count * size); + } + return p; +} +RTM_EXPORT(rt_memheap_calloc); + /** * @brief This function will release the allocated memory block by * rt_malloc. The released memory block is taken back to system heap.