2016-12-13 3 views
1

저는 엔지니어링 학생이며 현재 cortex m3 프로세서를 연구 중이며 예외 처리 모델입니다. 사용 오류, 버스 오류, 해당 오류 처리기로 하드 오류를 생성하고 테스트했습니다.cortex m3 기반 마이크로 컨트롤러에서 메모리 관리 오류를 생성하는 방법

하지만

메모리 관리 오류를 생성하는 다른 방법이 있나요 (컨텍스트에서 MPU를 복용하지 않고) 메모리 관리 오류 을 생성하는 방법을 몰라? 사전

+0

낮은 수준의 m3에 대한 직접적인 경험이 없으므로 긍정으로 대답 할 수 없지만 '잘못된 액세스'명령을 실행하면 MM 오류가 발생합니다. 디버거를 사용하여 디버거에 들어가거나 실행시 명령이 전송되도록하는 코드를 작성할 수 있습니다. – gelliott181

답변

0

에서

덕분에 Architecture Reference Manual (강조 광산을) 인용 :

MemManage 오류는 메모리 보호 장치 또는 고정 메모리 보호 제약 조건에 의해 결정됩니다 메모리 보호 오류 을 처리, 명령 및 데이터 메모리 트랜잭션 둘 다. 당신은 MPU를 프로그래밍하지 않으려면 즉

는, 당신은 그 고정 된 제약 조건 중 하나를 찾을해야 할거야, 찾고 시작하는 명백한 장소는 the memory map입니다. Cortex-M3 TRM이 다소 모호한 반면 ("오류 예외") 아키텍처는 다음과 같이 말합니다.

XN은 Execute Never 영역을 나타냅니다. XN 영역에서 코드를 실행하려고 시도하면 MemManage 예외가 생성됩니다.

우리가 간다. 가장 쉬운 방법은 MPU 구성에 관계없이 항상 XN이므로 시스템 영역 (0xE0000000 - 0xFFFFFFFF)으로 분기하는 것입니다.