RAM tuning

This commit is contained in:
2017-09-05 01:48:37 +02:00
parent 6c9ae7e126
commit a82e14961c
9 changed files with 33 additions and 20 deletions
+8 -3
View File
@@ -11,8 +11,9 @@
#define LOOPBACK 0
#define SOCK_BUF_LEN 1024
static char sock_buff[SOCK_BUF_LEN];
#define HB_TIME 1500
#define SOCK_BUF_LEN 2000
volatile bool notify_available = true;
volatile bool notify_cooldown = false;
@@ -41,6 +42,8 @@ notifyContentTimCb(void *arg)
{
void *data = NULL;
int max_bl, total_bl;
char sock_buff[SOCK_BUF_LEN];
cgiWebsockMeasureBacklog(URL_WS_UPDATE, &max_bl, &total_bl);
if (!notify_available || notify_cooldown || (max_bl > 2048)) { // do not send if we have anything significant backlogged
@@ -71,6 +74,8 @@ notifyContentTimCb(void *arg)
static void ICACHE_FLASH_ATTR
notifyLabelsTimCb(void *arg)
{
char sock_buff[SOCK_BUF_LEN];
if (!notify_available || notify_cooldown) {
// postpone a little
TIMER_START(&notifyLabelsTim, notifyLabelsTimCb, 1, 0);
@@ -250,5 +255,5 @@ void ICACHE_FLASH_ATTR updateSockConnect(Websock *ws)
ws_info("Socket connected to "URL_WS_UPDATE);
ws->recvCb = updateSockRx;
TIMER_START(&heartbeatTim, heartbeatTimCb, 1000, 1);
TIMER_START(&heartbeatTim, heartbeatTimCb, HB_TIME, 1);
}
+2 -2
View File
@@ -29,7 +29,7 @@ HttpdBuiltInUrl routes[] = {
// --- Web pages ---
ROUTE_TPL_FILE("/", tplScreen, "/term.tpl"),
ROUTE_TPL_FILE("/about/?", tplAbout, "/about.tpl"),
ROUTE_FILE("/help/?", "/help.tpl"),
ROUTE_FILE("/help/?", "/help.html"),
// --- Sockets ---
ROUTE_CGI("/term/init", cgiTermInitialImage),
@@ -46,7 +46,7 @@ HttpdBuiltInUrl routes[] = {
ROUTE_REDIRECT("/cfg/?", "/cfg/wifi"),
ROUTE_TPL_FILE("/cfg/wifi/?", tplWlan, "/cfg_wifi.tpl"),
ROUTE_FILE("/cfg/wifi/connecting/?", "/cfg_wifi_conn.tpl"),
ROUTE_FILE("/cfg/wifi/connecting/?", "/cfg_wifi_conn.html"),
ROUTE_CGI("/cfg/wifi/scan", cgiWiFiScan),
ROUTE_CGI("/cfg/wifi/connstatus", cgiWiFiConnStatus),
ROUTE_CGI("/cfg/wifi/set", cgiWiFiSetParams),
+2
View File
@@ -201,6 +201,8 @@ terminal_apply_settings_noclear(void)
void ICACHE_FLASH_ATTR
screen_init(void)
{
dbg("Screen buffer size = %d bytes", sizeof(screen));
NOTIFY_LOCK();
screen_reset();
NOTIFY_DONE();
+1 -1
View File
@@ -50,7 +50,7 @@
#define SCR_DEF_TITLE "ESPTerm"
/** Maximum screen size (determines size of the static data array) */
#define MAX_SCREEN_SIZE (80*26)
#define MAX_SCREEN_SIZE (80*25)
#define TERMCONF_VERSION 1
+1 -1
View File
@@ -4,7 +4,7 @@
#include "ansi_parser.h"
#include "syscfg.h"
#define LOGBUF_SIZE 1500
#define LOGBUF_SIZE 2048
static char logbuf[LOGBUF_SIZE];
static u32 lb_nw = 1;
static u32 lb_ls = 0;
+11 -11
View File
@@ -45,9 +45,9 @@ UART_AsyncBufferInit(uint32 buf_size)
return NULL;
}
else {
struct UartBuffer *pBuff = (struct UartBuffer *) os_malloc(sizeof(struct UartBuffer));
struct UartBuffer *pBuff = (struct UartBuffer *) malloc(sizeof(struct UartBuffer));
pBuff->UartBuffSize = buf_size;
pBuff->pUartBuff = (uint8 *) os_malloc(pBuff->UartBuffSize);
pBuff->pUartBuff = (uint8 *) malloc(pBuff->UartBuffSize);
pBuff->pInPos = pBuff->pUartBuff;
pBuff->pOutPos = pBuff->pUartBuff;
pBuff->Space = (uint16) pBuff->UartBuffSize;
@@ -68,17 +68,17 @@ static void UART_WriteToAsyncBuffer(struct UartBuffer *pCur, const char *pdata,
uint16 tail_len = (uint16) (pCur->pUartBuff + pCur->UartBuffSize - pCur->pInPos);
if (tail_len >= data_len) { //do not need to loop back the queue
os_memcpy(pCur->pInPos, pdata, data_len);
memcpy(pCur->pInPos, pdata, data_len);
pCur->pInPos += (data_len);
pCur->pInPos = (pCur->pUartBuff + (pCur->pInPos - pCur->pUartBuff) % pCur->UartBuffSize);
pCur->Space -= data_len;
}
else {
os_memcpy(pCur->pInPos, pdata, tail_len);
memcpy(pCur->pInPos, pdata, tail_len);
pCur->pInPos += (tail_len);
pCur->pInPos = (pCur->pUartBuff + (pCur->pInPos - pCur->pUartBuff) % pCur->UartBuffSize);
pCur->Space -= tail_len;
os_memcpy(pCur->pInPos, pdata + tail_len, data_len - tail_len);
memcpy(pCur->pInPos, pdata + tail_len, data_len - tail_len);
pCur->pInPos += (data_len - tail_len);
pCur->pInPos = (pCur->pUartBuff + (pCur->pInPos - pCur->pUartBuff) % pCur->UartBuffSize);
pCur->Space -= (data_len - tail_len);
@@ -93,8 +93,8 @@ static void UART_WriteToAsyncBuffer(struct UartBuffer *pCur, const char *pdata,
*******************************************************************************/
void ICACHE_FLASH_ATTR UART_FreeAsyncBuffer(struct UartBuffer *pBuff)
{
os_free(pBuff->pUartBuff);
os_free(pBuff);
free(pBuff->pUartBuff);
free(pBuff);
}
u16 ICACHE_FLASH_ATTR UART_AsyncRxCount(void)
@@ -116,19 +116,19 @@ UART_ReadAsync(char *pdata, uint16 data_len)
uint16 len_tmp = 0;
len_tmp = ((data_len > buf_len) ? buf_len : data_len);
if (pRxBuffer->pOutPos <= pRxBuffer->pInPos) {
os_memcpy(pdata, pRxBuffer->pOutPos, len_tmp);
memcpy(pdata, pRxBuffer->pOutPos, len_tmp);
pRxBuffer->pOutPos += len_tmp;
pRxBuffer->Space += len_tmp;
}
else {
if (len_tmp > tail_len) {
os_memcpy(pdata, pRxBuffer->pOutPos, tail_len);
memcpy(pdata, pRxBuffer->pOutPos, tail_len);
pRxBuffer->pOutPos += tail_len;
pRxBuffer->pOutPos = (pRxBuffer->pUartBuff +
(pRxBuffer->pOutPos - pRxBuffer->pUartBuff) % pRxBuffer->UartBuffSize);
pRxBuffer->Space += tail_len;
os_memcpy(pdata + tail_len, pRxBuffer->pOutPos, len_tmp - tail_len);
memcpy(pdata + tail_len, pRxBuffer->pOutPos, len_tmp - tail_len);
pRxBuffer->pOutPos += (len_tmp - tail_len);
pRxBuffer->pOutPos = (pRxBuffer->pUartBuff +
(pRxBuffer->pOutPos - pRxBuffer->pUartBuff) % pRxBuffer->UartBuffSize);
@@ -136,7 +136,7 @@ UART_ReadAsync(char *pdata, uint16 data_len)
}
else {
//os_printf("case 3 in rx deq\n\r");
os_memcpy(pdata, pRxBuffer->pOutPos, len_tmp);
memcpy(pdata, pRxBuffer->pOutPos, len_tmp);
pRxBuffer->pOutPos += len_tmp;
pRxBuffer->pOutPos = (pRxBuffer->pUartBuff +
(pRxBuffer->pOutPos - pRxBuffer->pUartBuff) % pRxBuffer->UartBuffSize);