좋아, 이것은 매우 일반적인 질문 일지 모르지만 나는 그 주제에 익숙하지 않고 어떤 힌트도 기쁘게 생각하지 않는다.베어 메탈에 pthreads를 사용하는 크로스 컴파일 프로그램
ARM (arm-xilinx-linux-gnueabi-) 용 SoucereyCodeBench의 크로스 컴파일 도구 체인을 사용하고 있습니다. 컴파일러를 사용하는 라이브러리를 컴파일했습니다. 옵션 : -DSC_INCLUDE_FX -DSC_USE_PTHREADS -pthreads -fPIC -DPIC
베어 메탈 프로그램에 libary를 사용하려면 베어 메탈 컴파일러 (arm-xilinx-eabi-)에 pthread가 필요합니다.
그렇지 않으면 내 프로그램이 우연히 실행되거나 컴파일되지 않습니다. 그럼 베어 메탈을위한 pthread를 컴파일 할 수 있습니까?
** 베어 메탈 ** 프로젝트에서 누가 * 스레드 *를 관리 할 것입니까? 기본적으로이 작업을 수행하려면 OS가 있어야하며 ** 베어 메탈 ** 프로젝트가 더 이상 필요하지 않습니다. –
당신은 [setjmp()/longjmp()] (http://stackoverflow.com/questions/2560792/multitasking-using-setjmp-longjmp)를 사용하는 스레딩을 할 수 있습니다. ** ** ** pthreads * .이런 방식으로 제한된 멀티 태스킹이나 스레딩을 할 수 있습니다. 일반적으로 사용자 공간 스레딩이라고합니다. 그러나, 만약 당신이 전체 날려 * pthreads *, 그럼 당신은 OS를 가지고 수도 있습니다. 베어 메탈 * 컨텍스트 *에서 사용자 공간 스레딩 *은 원시 OS입니다. –
RAM에서 8MB의 사용량이 많은 상자를 시도했지만 응용 프로그램을 방해하는 일부 프로세스가 포함되어있어 2 초의 에버리를 처리합니다. 내가 알기를 원하지 않고 커널 우선 순위를 nice로 변경하고 커널 옆에있는 모든 프로세스를 운이없는 상태로 닫았다. – eactor