PyVmMonitor имеет живой просмотр, который может помочь вам там (вы можете подключиться к работающей программе и получить статистические данные из нее).
Похоже, причина вашей проблемы в обновленном тексте вопроса:
ОБНОВЛЕНИЕ : этот фрагмент кода является частью гораздо большего проекта, и нет смысла в разработке проекта. У меня есть пользовательский Makefile с опцией LDFLAG
blockquote>"-mfloat-abi=hard -mfpu=fpv4-sp-d16 -u _printf_float".
Предполагая, что эти параметры являются изменениями по сравнению со значениями по умолчанию, вы говорите компилятору сгенерировать код для другого ABI из экосистемы библиотеки вашего набора инструментов , Код, сгенерированный для
main
, ожидает результатаatof
в регистре с плавающей запятой, ноatof
использует стандартный ABI, который передает аргументы с плавающей запятой и возвращаемые значения в регистрах общего назначения. Таким образом,main
просто читает все ненужное, оставленное в регистрах с плавающей запятой, используемых для возвращаемых значений.Посмотрите, исчезнет ли ваша проблема, если вы удалите
-mfloat-abi=hard
. Если это так, вы, вероятно, нашли свою проблему. Вам нужно либо создать набор инструментов и библиотек для ABI на жестком диске, либо придерживаться принятого по умолчанию соглашения о вызовах не на жестком диске.
Во-первых, в вашем вопросе отсутствует минимальный, полный и проверяемый пример .
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char test[] = "0";
float val1;
double val2;
val1 = atof(test);
printf("%f\n", val1);
val2 = atof(test);
printf("%f\n", val2);
}
0.000000
0.000000
< °))) < ()
Или ваша стандартная реализация библиотеки - fubar.