타겟 브링업 (보드 브링업, 페리퍼럴 브링업)
---
소스 브링업
1. git을 활용해 SoC벤더나 솔루션 업체로부터 소스 받아옴
-git정보 체크
-빌드 위한 커멘드 문서로 제공
2. 컴파일러 설치
-컴파일러를 직접 빌드 서버에 설치
-컴파일러 에러나 빌드 스크립트 수정(for 시스템 성능 극대화, 커스터마이즈)
3. 소스 빌드
-컴파일 에러 혹은 링크에서 수정, 빌드 스크립트 작성
4. 빌드 아키텍처 분석
5. 이미지 다운로드 툴 분석
-SoC 칩 벤더가 제공하는 다운로드 툴 분석
-Trace32 Uart다운로드 기능
---
소스 브링업 업무방식
대부분 BSP, 시스템 솦트웨어 개발자가 함
---
소스 브링업을 위한 스킬
욕토 빌드 시스템
-거의 빌드 프레임웤 표준
-SoC벤더도 욕토에 올려서 전달
Git
-Tag, Merge
부트로더 및 리눅스 커널 소스 트리 이해
-컴파일러 에러 수정, 디펜던시 체크
MakeFile에 대한 이해
-컴파일러 옵션
-소스 커스터마이제이션
-Shell 스크립트
---
보드 브링업과정에서의 주요 이슈
부팅 과정
-전원->부트 로더->리눅스 커널->드라이버
부트로더 크래시
-메모리나 전원 초기화 과정에서 문제 발생
-하드웨어성 이슈도 발생
커널 패닉
-디바이스 드라이버 설정 오류
-하드웨어 속성 설정 오류
-컨피그 옵션 설정 문제
메모리 이슈
-랜덤하게 페이지 폴트 발생
-메모리 관리 관련 초기화 문제
-메모리 속정 설정 문제
-비트 플립
파워 이슈
-커널 드라이버의 파워 관리 문제
-스펙 정해진 voltage공급
-파워 시퀀스 정확하지 않음
-arm코어 hang
---
페리퍼럴 브링업 이란
센서, 터치
-인터럽트 설정
-데이터 시트에 맞게 속성 설정
카메라
-인터페이스 점검
-데이터 시트 및 스펙 점검
외부 벤더 업체와 커뮤니케이션
-이슈 발생시 적절하게
레퍼런스 코드 리뷰 (페리페럴 벤더가 제공)
-코드 전체 이해
-디버깅 피쳐 면밀히 점검
---
브링업을 잘하려면
디버깅 능력
-trace32
-uart콘솔
-주요 디버깅 피쳐 사용
핵심 역량
-리눅스 커널
-Arm아키텍쳐
-SoC아키텍쳐 -> 부팅과정이 다르기 땜시 알아야함
-디바이스 데이터 시트 리뷰
커뮤니케이션
-이슈를 있는 그대로 공유
-도움 요청
---
시스템 안정화: 버그수정
브링업과 기능구현 끝나면 프로젝트도 끝?
-다양한 스트레스 테스트 진행
-이슈 등장하면 시스템 솦트웨어 개발자에게 할당
버그 종류
-크래시, 리셋
-성능 이슈 : 시스템 느려짐, 화면 깨짐
-기능 동작 : 스펙에 맞게 동작 못함
아래의 조건에서 버그의 난이도 높음
-새로운 칩셋
-새로운 플렛폼
-새로운 배포판
-최신 소프트웨어 구조
아래의 조건에서 버그의 난이도 낮음
-이미 검증된 혹은 사용된 칩셋
-검증된 혹은 사용된 플랫폼
---
문재 해결 단계
이슈 재현
-문제 증상 직접 확인
-로그나 메모리 덤프 추출
-QA팀에서 인증받은 로그나 덤프 활용
디버깅으로 원인 분석
-로그나 덤프분석
-문제의 원인 정확히 파악
-디버깅 능력
패치 생성 및 담당자 이관
-버그를 수정하기 위한 패치 생성
-자신의 이슈 아니면 담당자 이관
-하드웨어 문제일 경우 하드웨어 개발자한테 이슈 설명
테스트 진행해 패치 유효한지 검증
-재현 경로로 테스트 진행
-테스트 통해서 패치 유효한지?
-size effect유의
'Linux' 카테고리의 다른 글
Arm 어셈블리 명령어 간단 소개 (0) | 2023.08.10 |
---|---|
Arm프로세서와 Arm아키텍쳐 (0) | 2023.08.09 |
시스템 소프트웨어 분야 동향 정리 (0) | 2023.08.09 |