minor fixes

This commit is contained in:
Gabor Kiss-Vamosi
2022-07-21 23:09:54 +02:00
parent 59818094c5
commit efe47b17e4
4 changed files with 4 additions and 125 deletions

View File

@@ -317,7 +317,8 @@
<!-- src/misc-->
<file category="sourceC" name="src/misc/lv_style_gen.c" />
<file category="sourceC" name="src/misc/lv_fs.c" />
<file category="sourceC" name="src/misc/lv_mem_builtin.c" />
<file category="sourceC" name="src/misc/lv_malloc_builtin.c" />
<file category="sourceC" name="src/misc/lv_memcpy_builtin.c" />
<file category="sourceC" name="src/misc/lv_async.c" />
<file category="sourceC" name="src/misc/lv_txt_ap.c" />
<file category="sourceC" name="src/misc/lv_gc.c" />

View File

@@ -32,7 +32,7 @@
#include "../layouts/grid/lv_grid.h"
#if LV_USE_BUILTIN_MALLOC
#include "../misc/lv_mem_builtin.h"
#include "../misc/lv_malloc_builtin.h"
#endif
#include "../hal/lv_hal.h"
#include <stdint.h>

View File

@@ -139,128 +139,6 @@ void lv_free_builtin(void * p)
else cur_used = 0;
}
/**
* Same as `memcpy` but optimized for 4 byte operation.
* @param dst pointer to the destination buffer
* @param src pointer to the source buffer
* @param len number of byte to copy
*/
LV_ATTRIBUTE_FAST_MEM void * lv_memcpy_builtin(void * dst, const void * src, size_t len)
{
uint8_t * d8 = dst;
const uint8_t * s8 = src;
/*Simplify for small memories*/
if(len < 16) {
while(len) {
*d8 = *s8;
d8++;
s8++;
len--;
}
return dst;
}
lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK;
lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK;
/*Byte copy for unaligned memories*/
if(s_align != d_align) {
while(len > 32) {
_REPEAT8(_COPY(d8, s8));
_REPEAT8(_COPY(d8, s8));
_REPEAT8(_COPY(d8, s8));
_REPEAT8(_COPY(d8, s8));
len -= 32;
}
while(len) {
_COPY(d8, s8)
len--;
}
return dst;
}
/*Make the memories aligned*/
if(d_align) {
d_align = ALIGN_MASK + 1 - d_align;
while(d_align && len) {
_COPY(d8, s8);
d_align--;
len--;
}
}
uint32_t * d32 = (uint32_t *)d8;
const uint32_t * s32 = (uint32_t *)s8;
while(len > 32) {
_REPEAT8(_COPY(d32, s32))
len -= 32;
}
d8 = (uint8_t *)d32;
s8 = (const uint8_t *)s32;
while(len) {
_COPY(d8, s8)
len--;
}
return dst;
}
/**
* Same as `memset` but optimized for 4 byte operation.
* @param dst pointer to the destination buffer
* @param v value to set [0..255]
* @param len number of byte to set
*/
LV_ATTRIBUTE_FAST_MEM void lv_memset_builtin(void * dst, uint8_t v, size_t len)
{
uint8_t * d8 = (uint8_t *)dst;
uintptr_t d_align = (lv_uintptr_t) d8 & ALIGN_MASK;
/*Make the address aligned*/
if(d_align) {
d_align = ALIGN_MASK + 1 - d_align;
while(d_align && len) {
_SET(d8, v);
len--;
d_align--;
}
}
uint32_t v32 = (uint32_t)v + ((uint32_t)v << 8) + ((uint32_t)v << 16) + ((uint32_t)v << 24);
uint32_t * d32 = (uint32_t *)d8;
while(len > 32) {
_REPEAT8(_SET(d32, v32));
len -= 32;
}
d8 = (uint8_t *)d32;
while(len) {
_SET(d8, v);
len--;
}
}
size_t lv_strlen_builtin(const char * str)
{
size_t i = 0;
while(str[i]) i++;
return i + 1;
}
size_t lv_strncpy_builtin(char * dst, size_t dest_size, const char * src)
{
size_t i;
for(i = 0; i < dest_size - 1 && *src; i++) {
dst[i] = src[i];
}
dst[i] = '\0';
return i;
}
lv_res_t lv_mem_test_builtin(void)
{
if(lv_tlsf_check(tlsf)) {

View File

@@ -2,7 +2,7 @@
#if LV_BUILD_TEST
#include "lv_test_init.h"
#include "lv_test_indev.h"
#include "../../src/misc/lv_mem_builtin.h"
#include "../../src/misc/lv_malloc_builtin.h"
#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>