2014-11-28 8 views

답변

7

나는이 내용이 "버그가 아니며 기능"배너에 해당한다고 생각합니다.

ARM 아키텍처 M (마이크로 컨트롤러) 프로파일에는 A 및 R 프로파일과 완전히 다른 예외 모델이 있습니다. R 프로파일과 같은 A 프로파일은 이전 ARM 프로세서와의 역 호환성을 유지합니다. M- 프로파일은 이것을 벗어나는 것이 허용되었으므로 C/C++ (asm이없는)에서 완전히 프로그래밍하기 쉽도록 설계되었습니다.

따라서 명령어 대신 주소가 포함 된 벡터 엔트리를 작성한 후 동일한 방법으로 SP를 설정하지 않는 이유는 무엇입니까? 예외 항목이 자동으로 저장됩니다. 말했다 unixsmurf

+0

통찰력을 공유해 주셔서 감사합니다. –

2

모든 ...

기존의 암 접근

이 좀 이상했다가, 일반적인 접근 방식은 주소 목록이 아닌 지침의 테이블입니다. 그래서 그것이 요인일지도 모릅니다. 그러나 그들은 벡터 패밀리가 단지 하나의 벡터 블록이 아니라 (벡터 테이블은 128/256 깊이에 불과합니다) 의심 할 여지없이 벡터 테이블을 호출하기 전에 모든 인터럽트를 래핑해야한다는 점에 의심의 여지가 없습니다. 모드 및 레지스터 보존을 위해이 패키지를 모두 함께 사용합니다. 리셋 벡터를 포함하여 C 핸들러의 주소를 테이블에 넣을 수 있습니다. 리셋 벡터를 얻으려면 전화하기 전에 스택 포인터를 최소한으로 설정해야합니다. 따라서 사용자에게 스팟이 필요합니다. 스택 포인터의 초기 값을 나타냅니다.