PIC32를 벤치마킹하기 위해 Dhrystone을 실행하려고합니다.C에서 dhrystone 실행, malloc() 충돌 유형
내가 오래 사용, 특히 건물에서 그것을 방해하는 하나의 문제가 있어요 소스 코드 : 오류 :
extern char *malloc();
....
....
Next_Ptr_Glob = (Rec_Pointer)
malloc (sizeof (Rec_Type));
Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type));
Ptr_Glob->Ptr_Comp = Next_Ptr_Glob;
Ptr_Glob->Discr = Ident_1;
Ptr_Glob->variant.var_1.Enum_Comp = Ident_3;
Ptr_Glob->variant.var_1.Int_Comp = 40;
strcpy (Ptr_Glob->variant.var_1.Str_Comp,
"DHRYSTONE PROGRAM, SOME STRING");
strcpy (Str_1_Loc, "DHRYSTONE PROGRAM, 1'ST STRING");
//rest of program
*의 malloc에 (의 선언은) 컴파일러 메시지를 생성 충돌 유형 'malloc'을 위해. 그 라인을 주석 처리 할 때 프로그램을 실행할 수는 있지만 Ptr_Glob-> Ptr_Comp = Next_Ptr_Glob에 런타임 오류가 있다고 생각합니다. ... 나는 런타임 오류를 디버그하기 위해 LED를 사용하고 있으며, 그 시점까지 작동 할 것이다. 왜 내가이 문제를 겪고 있는지에 대한 아이디어가 있습니까? 어떻게하면 malloc()으로 문제를 해결할 수 있습니까?
다시의 malloc에 추가하는 것입니다. 그러나 코드 (http://homepages.cwi.nl/~steven/dry.c?)는 오래되어 모든 종류의 어리석은 트릭을 실행합니다. 두 가지 질문이 있습니다. 첫째, 컴퓨터에서 실행됩니까? 둘째로, 당신은 * "sh dry.c"를 통해 그것을 실행하고 있습니다, 당신은 그렇지 않습니까? – loreb
PIC32는 그런 코드를 정당화하기에는 오래되지 않았습니다! 그런 MCU에서'malloc '을 사용하는 것은 PIC32가 시작될 때 적절한 프로토 타입을 필요로했던 몇 년 전의 결함있는 디자인, C99 방식의 신호입니다. 프로그래머가 나쁜 일을 한 것처럼 보입니다. – Olaf