Automotive Software

아답티브 오토사에서의 에러 처리 (Error Handling on Adaptive Autosar) 본문

아답티브 오토사 (Adaptive AUTOSAR)/코어 (Core)

아답티브 오토사에서의 에러 처리 (Error Handling on Adaptive Autosar)

AutoSW 2023. 12. 4. 19:55

아답티브 오토사는 서비스 인터페이스 호출 후 결과 확인 시 해당 동작의 에러 여부를 확인하고 처리하는 방식을 C++에서 정의된 방식과 유사한 방법으로 제시하고 있다.

  • 아답티브 오토사에서의 비정상 동작 결과 타입
    • 에러 (Error)
      • 런타임에서 발생 가능 / 회복 가능
      • 허용되지 않은/예상되지 못한 입력값에 의해 특정 기능의 불능상태가 초래된 경우
    • 위반 (Violation)
      • 프레임워크 개발 단계에서 발생 가능 / 회복 불가능
      • 프레임워크상에서 지원하지 않는 전/후 동작 조건에 따라 구동 요청이 된 경우
        • 예, 제한된 하드웨어의 초과 사용시도 또는 소프트웨어적인 미지원 설정 기능 사용
    • 손상 (Corruption)
      • 프레임워크 개발 단계에서 발생 가능 / 회복 불가능
      • 시스템 자원의 손상으로 초래되는 결과
        • 예, 하드웨어적인 메모리 결함
    • 메모리 할당 실패 (Failed Default Allocation)
      • 메모리 할당 요청을 지원하는 기능의 불능 상태 / 회복 불가능

 

  • 아답티브 오토사에서의 에러 처리
    • 에러 (Error)
      • ara::core::Result 또는 ara::core::Future 타입의 하나의 인스턴스로 에러 정보 반환
      • ara::core::Result <T, E> 타입
        • 값(T)또는 에러(E)를 포함하나, 현재 스펙에서 T=void로 제한되어 있어 에러만 반환
      • ara::core::Future <T, E> 타입
        • 값(T)또는 에러(E)를 포함하며, 비동기 동작의 결과를 반환
        • 값이 T= void 일 경우(Future< void, E >), 제한/제공되는 인터페이스 스펙상에 명시
    • 위반 (Violation)
      • 예외(Exception)를 호출하거나
      • 호출자로 복귀하지 않는ara::core::Abort()를 호출함으로써 명시적으로 종료
        • 사용자 정의 로그 메시지를 입력 파라미터로 전달 가능
      • 실행 관리자에서 정의하는 "예상되지 않는 종료 (Unexpected Termination)" 상황을 의도적으로 야기
    • 손상 (Corruption)
      • 요청 기능의 처리 결과에 상관없이 해당 프로세스의 비정상 종료 수행
    • 메모리 할당 실패 (Failed Default Allocation)
      • 위반과 동일하게 처리