목록전체 글 (102)
Automotive Software
Generic ABI에서는 ELF의 기본 구조를 정의하고 있는데 그중 주요 구성 요소를 정리하면, 구성 요소구조 위치주요 목적핵심 구성 / 필드실행 역활SectionSection Header Table 기반링크/재배치 단위.text, .data, .bss, .rodata, .symtab, .rel.*직접 사용 안 함SegmentProgram Header Table 기반실행 로딩 단위PT_LOAD, PT_DYNAMIC, PT_INTERP메모리에 로드됨Symbol TableSection (.symtab, .dynsym)심볼 관리name, value(addr), size, type, binding함수/변수 주소 해석RelocationSection (.rel.*, .rela.*)주소 수정offset, type,..
ELF (Executable and Linkable Format)은 유닉스 기반 시스템에서 구동되는 한 애플리케이션의 실행, 객체 코드 그리고 공유 라이브러리등의 데이터를 묶어 놓은 표준화된 바이너리 파일 포맷으로, 하나의 포맷같이 보이지만, 실제로는 gABI + psABI + osABI의 조합으로 구성되어 확장 가능한 컨테이너 포맷으로 해당 애플리케이션의 구동관련 정보를 포함ELF = Generic ABI (gABI, 공통 표준) + Processor-specific ABI (psABI, CPU 별 확장) + osABI (OS 별 확장)gABI공통적인 구조 정의, System V Application Binary Interface (1971년 4.1 버전 이휴 변경 없음)ELF 포맷의 기본 구조 정의S..
ODT 엔트리(DAQ로 전송할 신호)의 “크기 단위(step)”를 바이트로 선언하는 파라미터Granularity는 “버스에 실리는 ODT 엔트리 데이터의 최소 단위(패킹 단위)”슬레이브 내부의 구조체 정렬/크기와는 별마스터는 각 엔트리의 길이를 이 단위의 배수로 패킹.구현 관점(슬레이브 스택)슬레이브가 보장해야 할 것GET_DAQ_PROCESSOR_INFO/GET_DAQ_RESOLUTION_INFO 등에서 Granularity의 일관성측정 데이터 읽기 시, 마스터가 패딩해온 레이아웃에 맞춰 정확한 오프셋에서 복사.언알라인드 접근이 위험한 플랫폼은 내부 복사 시 안전한 로딩 경로 사용(memcpy 또는 정렬된 임시 버퍼).안전한 로드/스토어C에서 직접 캐스팅 로드를 피하고, 크기별 안전 복사 함수를 사용...
1. 전송 활성화 및 시작 절차설정된 지도를 바탕으로 데이터를 송출하기 위한 마지막 3단계① SET_DAQ_LIST_MODE (모드 설정)이 명령은 특정 DAQ 리스트 동작 방식 정의주요 설정 값: 전송 방향(DAQ), 타임스탬프 포함 여부, 전송 주기(Event Channel)패킷 예시: [0xE0] [0x01] [0x00 0x00] [0x01 0x00] [0x01] [0x00]0xE0: CMD (SET_DAQ_LIST_MODE)0x01: Mode (타임스탬프 활성화 등)0x00 0x00: DAQ List 번호 (#0)0x01 0x00: Event Channel 번호 (데이터를 추출할 시점/주기)② START_STOP_DAQ_LIST (개별 준비)설정된 DAQ 리스트를 "전송 대기(Selecting)"..
마스터(PC)가 슬레이브(ECU)의 메모리 리소스를 효율적으로 할당하고, 읽어올 데이터의 지도를 그리는 과정1. 동적 DAQ 설정 6단계 절차설정은 보통 FREE_DAQ -> ALLOC_DAQ -> ALLOC_ODT -> ALLOC_ODT_ENTRY -> SET_DAQ_PTR -> WRITE_DAQ 순으로 진행동적 DAQ 설정은 '큰 바구니(DAQ) -> 작은 바구니(ODT) -> 그 안의 칸막이(ODT Entry)'를 만드는 과정 순서명령어 (CMD)값 (Hex)설명1FREE_DAQD6기존 모든 DAQ 구성을 초기화2ALLOC_DAQD5 00 01 00DAQ 리스트를 1개(0x0001) 할당3ALLOC_ODTD4 00 00 00 01DAQ #0에 ODT를 1개(0x01) 할당4ALLOC_ODT_ENTR..