Closed
Description
Basic Infos
- This issue complies with the issue POLICY doc.
- I have read the documentation at readthedocs and the issue is not addressed there.
- I have tested that the issue is present in current master branch (aka latest git).
- I have searched the issue tracker for a similar issue.
- If there is a stack dump, I have decoded it.
- I have filled out all fields below.
Platform
- Hardware: [other (ESP-12 compatible)] (AE-ESP-WROOM-02: see https://akizukidenshi.com/catalog/g/gK-09758/)
- Core Version: [bf6f3e7]
- Development Env: [Arduino IDE]
- Operating System: [Windows]
Settings in IDE
- Module: [Generic ESP8266 Module]
- Flash Mode: [qio]
- Flash Size: [4MB]
- lwip Variant: [v2 Lower Memory]
- Reset Method: [nodemcu]
- Flash Frequency: [80Mhz]
- CPU Frequency: [160MHz]
- Upload Using: [SERIAL]
- Upload Speed: [115200]
Problem Description
pgm_read_float_unaligned()
in 'tools/xtensa-lx106-elf/xtensa-lx106-elf/include/sys/pgmspace.h' should use pgm_read_dword_with_offset()
instead of pgm_read_with_offset()
, as per pgm_read_dword_unaligned()
.
MCVE Sketch
void setup() {
// put your setup code here, to run once:
static const float SPECIMEN = 3.14159265359F;
static uint8_t __attribute__((aligned(4))) buffer[8];
memset(buffer, 0, sizeof(buffer));
uint8_t* unaligned_location = &buffer[1];
memcpy(unaligned_location, &SPECIMEN, sizeof(SPECIMEN));
Serial.begin(115200);
Serial.print("\n\n"
"** pgm_read_float_unaligned() test **\n"
"specimen: ");
Serial.println(SPECIMEN, 6);
Serial.print("readout: ");
Serial.println(pgm_read_float_unaligned(unaligned_location), 6);
}
void loop() {
// put your main code here, to run repeatedly:
}
Debug Messages
** pgm_read_float_unaligned() test **
specimen: 3.141593
readout: 0.000000
With the abovementioned way,
** pgm_read_float_unaligned() test **
specimen: 3.141593
readout: 3.141593
Metadata
Metadata
Assignees
Labels
No labels