시스템에 ARM Cortex-R4를 사용하고 있습니다. 메모리 관리 장치 대신 메모리 보호 장치가 있습니다. 사실상 이것은 메모리 보호를위한 전용 하드웨어가 있지만 물리적 주소와 가상 주소 사이에 일대일 매핑이 있음을 의미합니다. 나는 약간의 리눅스에 대해 혼란 스럽다. 표준 리눅스 커널 (MMU 사용 불가 또는 uCLinux).ARM Cortex-R4에서 MMU가없는 Linux 실행
ARM의 평가 보드에서 MMU를 사용하지 않도록 컴파일 된 표준 커널을 실행했습니다. 공식 ARM 웹 사이트에서 구할 수있는 cramfs 파일 시스템을 사용했습니다. 커널을 부팅 한 후에 나는 쉘에 있지만 대부분의 경우 셸이 응답을 멈추는 것을 발견하면서 많은 실험을 할 수 없었습니다 (특히 자동 완성을 위해 "탭"을 누르면).
그래서 올바른 파일 시스템을 사용하면 MMU가없는 커널이 원활하게 실행되어야하는지 확실하지 않습니다. 또한 VM웨어가 아닌 Linux를 위해 어떤 배포판 (buildroot?)을 사용해야합니까?
모든 아이디어 나 제안을 환영합니다.
마치 커널이나 파일 시스템이라고 추측하는 것보다 정확히 무엇이 충돌하고 왜 있는지 알아 내야 할 필요가 있다고 생각합니다. 보드에 두 번째 경로를 확보 할 수 있다면 (uart와 네트워크 모두), 다른 노드가 멈추더라도 살아있을 지 알 수 있듯이 도움이됩니다. 사용자 공간 데몬이 터미널 (또는 커널 모듈 printk)에 주기적으로 "여전히 여기"라고 말하도록하는 것과 같은 일을 할 수 있습니다 - 최소한 시스템의 나머지 부분이 실행되는 동안 쉘이 멈추는 지 확인하는 데 도움이 될 것입니다. 커널이 걸려있는 경우. 또는 gpio 버튼에 대한 응답으로 ... –
printk() 제안은 아마 사용자 공간 프로세스보다 낫습니다. Real in Running = 가상 모드는 기껏해야 도전적입니다. 내 투표는 uCLinux를위한 것입니다. –