목록전체 글 (102)
Automotive Software
감사하게도 이클립스 2020-12R 버전부터 라즈베리파이 4의 하드웨어 플랫폼(AArch64)을 정식 지원하는 패키지가 배포되고 있다. 간단하게 아래 링크에서 다운로드하고 압축을 푼 다음 압축 폴더 내에서 이클립스를 실행하면 된다. 예전과 같이 자바 런타임을 다운 그레이드 하는 등의 수고로움을 덜 수 있게 되었다. 단, 라즈베리파이 4의 운영체제는 64비트를 지원하는 우분투 기반의 메이트(Mate)를 설치하여야 한다. www.eclipse.org/downloads/packages/release/2020-12/r/eclipse-ide-cc-developers Eclipse IDE for C/C++ Developers | Eclipse Packages Package Description An IDE for ..
변수 및 클래스 등 선언 시 사용된 이름 대신 해당 타깃에 접근할 수 있는 하나의 별칭이자 동의어 선언 방법 타겟의_형 참조_연산자(&) 참조자의_이름 선언 후 반드시 초기화, 미 초기화 시 컴파일러 오류 보고 int myInteger; int & rMyInteger = myInteger; cMyClass myClass; cMyClass & rMyClass = myClass; 타겟의 주소 == 참조자의 주소 &myClass == &rMyClass C++에서는 참조자의 주소 접근방법을 별도로 명시하지 않음 참조자의 초기화 눌(NULL) 초기화 허용 안됨 ; 항상 어떤 타깃을 가리켜야 함 ;애기치 못한 동작 발생 초기화 시 한번 타깃을 가리키면 다른 타깃을 가리킬 수 없음 동적 메모리상 : NULL 초기화가..
차량 부품의 전장화와 더불어 중요시되는 부분이 바로 해당 부품의 진단 기능인데, 이는 아래의 두 가지 기능으로 크게 나누어 볼 수 있다. 내부 고장진단 및 대응 : HW/SW의 결함을 자체적으로 분석하고 발견 시 해당 정보를 진단 장애 코드(DTC : Diagnostic Trouble Code)로 기록 진단 정보 전송 : 기록된 진단 장애 코드 정보를 테스터의 요청에 따라 전달 오토사에서는 이러한 기능을 지원하기 위해 다양한 모듈을 기술하고 있는데, 주요 모듈을 나타내면 다음과 같다. 내부 고장진단 및 대응 내부 고장진단 : 오토사에서는 결함을 진단 이벤트 (Diagnostic events)로 명칭하고 아래의 이벤트를 진단함 BSW 관련 이벤트 BSW 내에서 보고된 결함으로 SWC 관련 이벤트의 결함 여..
쓰레드도 프로세스와 같이 스케줄링 정책 및 우선순위를 적용하여 스케줄링을 제어할 수 있다. 쓰레드 생성 시 별도로 해당 속성을 설정해 주지 않으면 시스템에서 정의한 방식에 따라 쓰레드의 스케줄링을 처리하게 된다. 예, QNX의 경우, 기본적으로 부모 쓰레드의 스케줄링 정책 및 우선순위를 상속받아 생성된다. 스케줄링 방식을 정의할 때 중요한 것은 스케줄링 정책 SCHED_FIFO : First In First Out, 먼저 준비가 된 (Ready Queue에 등록된) 쓰레드를 실행 후 종료 시까지(또는 상위 우선순위를 가진 쓰레드가 준비되기 까지) CPU 점유 SCHED_RR : Round Robin, 운영체제에서 정의된 시할당량(Time slice, 예, QNX 4ms)만큼 실행 후 같은 우선순위의 쓰레..
쓰레드 사용 시 늘 생각해 볼 부분은 바로 쓰레드의 취소(종료)이다. 좀 더 정확히 말하면 종료 후 아래의 경우에 해당하는 쓰레드의 뒷정리일 것이다. 쓰레드에서 동적 자원을 할당하여 사용할 경우, 종료 후 메모리 누수 (Memory Leakage) 뮤텍스 등의 동기화 메커니즘이 사용된 경우, 다른 쓰레드의 데드락 (Deadlock between Threads) 쓰레드가 어떤 상태를 설정하고 그 상태가 다른 쓰레드 또는 메인 쓰레드에서 참조될 경우, 애플리케이션 상에서 상태 회복 불가능 (Unrecoverable state in an application) 1. 쓰레드 취소 포직스 쓰레드에서는 아래 두 가지의 취소 모드를 제공하는데, 이는 쓰레드의 취소 요청을 어떠한 시점에 처리할지를 결정하게 된다. 지연..