우리의 임베디드 시스템은 enea가 제조 한 hw/sw 플랫폼을 기반으로합니다. 플랫폼이 최근에 업데이트 된 후에 우리는 전역 변수에 대한 일부 연산이 시스템을 계속 충돌시키는 것을 발견했습니다.플랫폼 변경 후 전역 변수가 변경되지 않음
예를 들어 일부 데이터가 들어있는 글로벌지도 구조가 있습니다. 한 번 또는 두 번지도를 삽입/반복 할 수 있습니다. 그런 다음지도의 요소 주소가 0x0 또는 0x1d와 같은 금지 된 주소로 갑자기 변경되어 시스템이 중단됩니다.
플랫폼 업데이트 전후의 유일한 차이점은 다음과 같습니다. 1) sw 부분 : C++ 소프트웨어이며 컴파일러가 gcc에서 gcc로 변경되었습니다. 2) hw 부분 : 우리는 새 보드를 가지고 있지만, CPU는 여전히 powerpc405입니다.
가능한 모든 방법을 시도했지만 그 이유를 아직 알 수 없습니다. 이견있는 사람?
고맙습니다. MSalters. 나는 가능한 한 빨리이 해결책을 시도 할 것이다. 그러나 충돌이 발생하기 전에 글로벌 데이터 구조에서 한두 번 작동 할 수 있다고 설명 할 수 있습니까? – Lenciel