얼마 전에 시작한 프로젝트의 일부를 마무리하고 있는데 적합한 코어가 필요합니다. 1us보다 큰 지연은 생성된 신호의 품질에 영향을 미칠 수 있으므로 일부 코드는 항상 실행되어야 합니다.
내 하드웨어는 ARM Cortex A-53, 4x1.2GHz, 1GB RAM일 가능성이 높습니다(Pine64 보드에서 테스트됨). 간단히 말해서 코드가 루프에서 실행되어 메모리의 데이터 변경 사항을 확인한 다음 신호를 계산하고 전송합니다. 따라서 콘솔에 출력 인쇄, 파일 열기, malloc/free 등과 같은 GPIO 핀 조작 이외의 시스템 호출은 없습니다. 이 모든 작업은 다른 코어에서 실행됩니다.
GUI 렌더링, OpenGL을 사용한 렌더링 머신의 간단한 에뮬레이션, 명령 수신 등 다른 3개 코어에서 사용하고 싶은 기능이 많기 때문에 Linux를 사용하고 싶습니다. 이렇게 작은 칩을 요구하는 것이 많다는 것을 알고 있지만 이를 달성할 수 있는 방법이 있습니까?
나는 isolcpus=3
Linux 커널에 인수를 전달하고 해당 CPU에서 irq를 비활성화하려고 시도했습니다. 그런 다음 다음 taskset
을 사용하여 간단한 프로세스를 생성했지만 5us의 지터가 있어서 예상대로 작동하지 않았습니다.
답변1
질문을 완전히 이해했는지는 모르겠습니다만,이 이전 질문비슷한 영역을 다루고 있는 것 같나요?