카테고리 임베디드

ISO 26262와 ASIL 등급 핵심 정리

ISO26262와 ASIL 등급 썸네일

자동차 소프트웨어 개발의 필수, ISO 26262와 ASIL 등급을 완벽하게 이해해 보자. 기능 안전의 개념부터 ASIL 등급 산정 방법까지, 초보 개발자의 시선에서 쉽게 풀어보자. 1. 자동차가 달리는 컴퓨터가 된 이유 (ISO 26262의 등장) 자동차 업계에 발을 들이거나 임베디드 소프트웨어를 공부하다 보면,…

내 스마트폰, 어떻게 업그레이드될까? 부트로더와 OTA의 비밀!

부트로더와 OTA 업데이트 썸네일

혹시 “내 스마트폰은 어떻게 새로운 기능이 생기고, 왜 밤새 저절로 업데이트 될까?” 궁금했던 적이 있을 것이다. 오늘은 여러분의 궁금증을 풀어줄, 스마트폰 속 숨겨진 영웅들, ‘부트로더’와 ‘OTA’에 대해 쉽고 재미있게 이야기해 보자. 부트로더란 무엇인가? OS 실행 전 부트로더 전원 버튼을 누르면…

Android fastboot driver 설치하기 (Bootloader)

안드로이드 기기를 좀 더 자유롭게 사용하기 위해 부트로더(Bootloader) 언락이나 커스텀 롬 설치를 시도해 본 경험이 있을까? 안드로이드 개발자라면 개발 롬을 설치해야 하므로, 한 번쯤은 모두 설치 경험을 갖고 있을 것이다. ADB 명령어를 이용하여 설치하는데, 잘 동작하다가 ‘adb reboot bootloader’ 명령어로…

가속도계(Accelerometer)와 방향 계산

비행기 모형을 통한 roll pitch yaw 동작

가속도 센서 하나만으로 방향을 계산할 수 있을까? 최근 프로젝트로 가속도계를 사용하게 되었는데 요구사항이 많아서, 가속도계의 기본 원리부터 여러가지를 공부하였다. 또한 정확한 방향 계산을 위해 왜 다른 센서들이 필요한지도 알게 되었다. 이 글에서는 Pitch, Roll, Yaw라는 방향의 3요소를 이해하고, 가속도 센서와…

JTAG과 SWD의 차이와 장단점

디지털 장치들을 디버깅할 때 많이 사용하는 JTAG(Joint Test Action Group)과 SWD(Serial Wire Debug)에 대해서 알아보자. MCU나 CPU의 장치를 디버깅할 때 많이 사용한다. 이러한 JTAG이나 SWD에 연결하여 디버깅을 하기 위해서는 Debugger 또는 Emulator가 필요하다. JTAG과 SWD는 디바이스 장치의 디버깅용 인터페이스 이다.…

Linux CAN Network – CAN드라이버와 SocketCAN

Linux에서 CAN driver를 사용할 일이 생겨서, CAN driver관련 문서를 공부하고 있다. 그 중, 리눅스 커널의 can 설명 파일을 보면서, 정리 차원에서 여기에 다시 작성해 보았다. 이 글은 다음의 리눅스 커널 CAN 네트워크 문서 내용이다. 전체 내용은 8장까지 있으며, 내용은…

디바이스트리 pinctrl -bindings.txt

리눅스 커널을 오랜만에 살펴보려니 디바이스 트리(DeviceTree)가 은근히 헷갈린다. 그래서 혼자 공부할 겸, pinctrl 문서를 변역하면서 살펴 보았다. pinctrl을 사용해서 kernel driver 초기화 시에 사용할 pin들을 제어해 보자. 참고문서 : pinctrl은 linux kernel device tree에서 gpio pin을 구성하기 위해 사용한다.…

regmap_update_bits 함수

regmapupdate bits 함수

regmap의 특정 비트를 업데이트하기 위해서  regmap_update_bits 함수를 사용한다. regmap_update_bits 함수를 살펴보면, 파라미터로 받는 reg 변수의 mask에 해당하는 영역에 val 변수값을 업데이트한다. val 변수값은 FIELD_PREP 매크로를 통해서 비트 영역에 맞는 값을 할당할 수 있다. include 예를 들어 값이 3인데 4~5번…