우리의 ASIC에는 두 개의 프로세서가 있습니다. 이것은 두 가지 다른 컴파일러가 약간 다르게 작동한다는 것을 의미합니다. 우리는 통신을 위해 둘 사이에 데이터로 가득 찬 구조체를 전달합니다. 이것은 매우 자주 초당 발생하기 때문에 여기에서 구울 시간이별로 없습니다.멀티 프로세서 데이터 통신을위한 구조 패킹
문제는 두 컴파일러 모두 패딩을 다르게 처리한다는 것입니다. 따라서 한 도메인에서 다른 도메인으로 데이터를 복사 할 때 올바르게 정렬되지 않은 값을 얻습니다. 초기 솔루션은 속성 ((포장 된))을 구조 내부의 모든 것에 넣는 것이 었습니다. 이것이 대부분의 시간 동안 작동하는 것처럼 보이지만 결코 이식성이 없습니다. 코드를 다른 플랫폼으로 옮기고 있기 때문에 모든 컴파일러가 속성 ((packed))을 이해하고있는 것은 아니며 코드를 이식성있게 유지하고 싶습니다.
이 문제를 다루는 사람이 있습니까? 무엇을 추천하나요?
미리 감사드립니다.
'#pragma pack'? – alk
endianess도 잊지 마세요. 패킹의 아이디어는 이식 가능해야하지만, * 구문 *은 덜 복잡 할 수 있습니다. –