minor fixes
This commit is contained in:
@@ -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" />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user