The problem is when I use std:strtold to get a double precision value from string.
I use Code Composer 3.3 Version 3.3.82.13, and CGT v 5.2.9 and BIOS 5.33.03. and the target is TMS320F2812 / 28335.
In the following code snippets ( without BIOS) I have 3 different string inputs, but only the first one give correct result.
#include <stdio.h>
#include <cstring>
#include <cstdlib>
int main()
{
long double dValueOk = 0.0L;
long double dValueFailed = 0.0L;
long double dValueFailed_2 = 0.0L;
char szInputOk[] ={"3.123456789123456"};
char szInputFailed[] ={"3.1234567891234567"};
char szInputFailed_2[] ={"3.1234e-12"};
dValueOk = std::strtold(szInputOk, NULL); // correct result = 3.123456789123456
dValueFailed = std::strtold(szInputFailed, NULL); // failed result = 3.123456703989202
dValueFailed_2 = std::strtold(szInputFailed_2, NULL); // failed result = 3.123399914867293e-012
return 0;
}