[Linux]SerDes(Serializer/Deserializer)
·
임베디드 리눅스
1. SerDes란?SerDes는 데이터를 직렬(Serial) 과 병렬(Parallel) 형태로 변환(Serialize/Deserialize)하는 고속 인터페이스 기술이다. 즉, 여러 개의 병렬 신호선을 고속 직렬 신호 하나(혹은 소수)로 전송하고, 수신 측에서 다시 병렬 데이터로 복원하는 장치 핵심 목적배선 수 감소 : 수십 비트의 병렬 데이터를 소수의 고속 직렬 라인으로 전송전송 속도 향상 : 병렬 신호보다 간섭/노이즈 적고, 클럭 동기화가 쉬움보드 레이아웃 단순화 : 핀 수 감소 -> PCB 레이어와 비용 절감2. 리눅스에서의 SerDes 개념리눅스 커널에서 SerDes는 주로 디스플레이, 카메라, SoC 인터페이스, 자동차용 영상 시스템 등에서 등장한다. FPD-Link (TI)GMSL / GMS..
[Linux] ioctl
·
임베디드 리눅스
BSP 개발자에게 중요한 ioctl에 대해 알아보자. 1. ioctl이란?ioctl(input/output Control)은 리눅스 시스템 콜 중 하나로, 디바이스 드라이버를 제어하기 위한 인터페이스다. 일반적으로 파일 입출력에 사용되는 read()와 write()는 데이터의 단순 전달에 초점을 맞추지만, ioctl은 디바이스의 상태를 제어하거나 설정값을 변경하는 데 사용된다. ioctl()은 유저 공간(User Space)에서 커널 드라이버(Kernel Space)로 "제어 명령"을 전달하는 표준 통로이다. 2. BSP(Borad Support Package)에서 ioctl의 의미BSP 개발자는 SoC(System on Chip) 기반의 하드웨어 플랫폼을 제어하는 저수준 소프트웨어를 다룬다. 이때, ..
리눅스 인터럽트 트리거 방식
·
임베디드 리눅스
인터럽트 트리거 방식리눅스 커널은 인터럽트 라인을 Edge(엣지) 또는 Level(레벨) 방식으로 감지할 수 있다.Edge : 변화 순간에만 인터럽트Level : 특정 상태가 유지되는 동안 인터럽트해당 개념은 하드웨어 인터럽트 컨트롤러 (IRQ controller)와 GPIO 컨트롤러 모두에서 동일하게 적용한다. IRQ 버전 (SoC의 IRQ 컨트롤러 관점)IRQ 컨트롤러가 외부 장치 핀 상태를 보고 CPU에 인터럽트 전달하드웨어적으로 Edge/Level 트리거를 설정할 수 있다특징CPU가 직접 IRQ 컨트롤러를 통해 인터럽트를 받음드라이버에서는 request_irq() 나 devm_request_threaded_irq() 호출 시 플래그로 트리거 방식 지정하드웨어 장치 스펙(데이터시트)에 따라 어떤 방..