Software/C
-
ELF / COFF / DWARFSoftware/C 2025. 1. 24. 09:39
개요ELF는 실행 파일 포맷으로, 프로그램의 실행 가능 파일을 생성할 때 사용됩니다. 디버깅 정보도 포함될 수 있습니다.COFF는 오브젝트 파일 포맷으로, 코드와 데이터를 포함하고 있으며, 실행 파일을 만들기 위한 파일 포맷입니다. 디버깅 정보도 포함할 수 있지만, 주된 목적은 파일의 실행과 관련된 데이터 저장입니다.DWARF는 디버깅 정보를 위한 포맷으로, 프로그램의 디버깅에 필요한 세부 정보를 저장합니다. 주로 ELF나 COFF 파일 내에서 사용할 수 있으며, 디버깅에 특화된 형식입니다.따라서, ELF와 COFF는 주로 파일 포맷에 관련된 용어이고, DWARF는 디버깅을 위한 정보 포맷에 관련된 용어입니다. 세부 분석1. ELF (Executable and Linkable Format)용도: 실..
-
[MISRA C 2012] 정적 분석 팁 ( 계속 업데이트 )Software/C 2024. 8. 29. 14:18
Overrun / Underrun 가능 (CWE)왼쪽 값(변수)에 맞춰 형변환으로 해결 Norereturn (MISRA 2012)함수 마지막에 return; 추가로 해결 반환형이 있는 함수 사용후 대입이나 사용이 안됨 (MISRA)함수를 if문으로 감싸고 bullean 비교 수행 후 ( != 0 : MISRA 룰 if 조건문 내부는 Bollean으로 비교해야함) 빈중괄호 추가로 해결 미사용 변수 (MISRA)if문 넣어서 중괄호 추가로 해결 반환타입이 void가 아닌 함수는 사용해야함. (ex : memset)함수 리턴을 void형변환으로 해결 ex : (void)memset(src , dest); if문의 then 또는 else가 복합문이 아님 (MISRA)if문 내부를 중괄..
-
[Keyword] __interruptSoftware/C 2024. 8. 21. 09:33
InterruptInterrupt 키워드는 함수 앞에 붙여 쓰는 키워드로 해당 함수가 인터럽트 함수로 처리되는 것을 의미한다.Interrupt란 하드웨어 단에서 일어나는 이벤트 콜이라고 볼 수 있다. 폴링(Polling)이 루프를 돌며 상태를 체크해서 이벤트를 발생시키는 루틴이라면, 인터럽트는 외부에서 어떤 상황이 발생했을 때 단발성으로 이벤트를 발생시키기 때문에 정 반대의 개념이라고 볼 수 있다. 폴링의 대표적인 예가 와치독 타이머라면, 인터럽트는 대부분의 예외상황(exceptions)이 모두 인터럽트라고 볼 수 있다. 대부분의 인터럽트가 외부에서 CPU 코어에 전달되지만, CPU 내부에서 발생되는 인터럽트루틴도 존재한다. ISR (Interrupt Service Routine)인터럽트를 수행하는..