Statistics: Posted by eriksl — Tue Aug 18, 2015 4:12 pm
Code:
void ICACHE_FLASH_ATTR
flashReadData(const void *addr, void *bufp, uint16_t cnt)
{
if ((bufp == NULL) || (cnt == 0))
return;
// reads from Flash must be done on 32-bit word boundaries
uint16_t part;
uint32_t ofst = (uint32_t)addr & 0x03;
uint8_t *datap = bufp;
union { uint32_t d; uint8_t b[4]; } data;
const char *p = (const char *)addr;
if (ofst)
{
// copy the bytes from the first partial word
if ((part = 4 - ofst) > cnt)
part = cnt;
cnt -= part;
data.d = *(uint32_t *)(p - ofst);
p += part;
while (part--)
*datap++ = data.b[ofst++];
}
// copy the remainder of the data
while (cnt)
{
if ((part = cnt) > 4)
part = 4;
data.d = *(uint32_t *)p;
p += part;
cnt -= part;
ofst = 0;
while (part--)
*datap++ = data.b[ofst++];
}
}
Statistics: Posted by dkinzer — Sat Aug 15, 2015 10:53 pm
Statistics: Posted by eriksl — Sat Aug 15, 2015 3:04 pm
Statistics: Posted by dkinzer — Sat Aug 15, 2015 7:32 am
Statistics: Posted by eriksl — Fri Aug 14, 2015 5:23 pm
Statistics: Posted by datltq — Fri Aug 14, 2015 11:25 am
Statistics: Posted by blubb — Fri Aug 14, 2015 2:04 am
Statistics: Posted by eriksl — Thu Aug 13, 2015 10:46 pm
Code:
double ICACHE_FLASH_ATTR test(void) {
return fmod(-10, 3);
}
Code:
/opt/Espressif/esp_iot_sdk_v1.3.0/lib/libmirom.a(lib_a-e_fmod.o):(.irom0.literal+0x0): undefined reference to `__ieee754_remainder'
/opt/Espressif/esp_iot_sdk_v1.3.0/lib/libmirom.a(lib_a-e_fmod.o): In function `__ieee754_fmod':
/home/wjg/Workspace/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libm/math/e_fmod.c:38: undefined reference to `__ieee754_remainder'
Statistics: Posted by blubb — Thu Aug 13, 2015 8:25 pm
https://github.com/espressif/esp_iot_rtos_sdk/
NEW VERSION: 1.0.4
1. memory optimize;
2. add irom version libm.a: libmirom.a;
Statistics: Posted by datltq — Thu Aug 13, 2015 3:08 pm
Statistics: Posted by blubb — Thu Aug 13, 2015 7:40 am