본문 바로가기

자동차 임베디드 SW120

국내 자동차 대기업 채용공고 속 Autosar 살펴보기 아래의 수 많은 채용공고를 통해서 알 수 있는 사실은MCU 기반의 각종 제어 SW 개발시 오토사(Autosar)를 사용한다는 것이다.※ MCU 기반 제어기 예시 : 조향, 제동,램프, 현가 ,전기차 구동 모터, 전기차 충전기(LDC,OBC) , BMS(Battery Management System) 등등▶ 현대차 채용공고 Autosar▶ 현대모비스 채용공고 Autosar▶ LG이노텍 전장 Autosar 채용공고▶ 한온시스템 차량용 공조제어기 펌웨어 SW 개발자 채용공고 Autosar 오토사가 무엇인지, 뜬구름 잡는 소리가 아니라 자세히 설명하는 기초강의를 제작하여 판매하고있습니다.들어보시면 도움이 되실겁니다.무료 샘플 강의가 있으니 샘플강의만 들어보셔도 도움이 되실겁니다.https://inf.run/fW.. 2025. 3. 17.
Autosar 개념과 도입 배경 & 국내 도입 히스토리(뻔한 소리x) ▶ 오토사란 - 1?자동차 업계 에서 사용되는 표준화 된 SW 아키텍쳐※ SW 아키텍쳐 = SW 개발 순서, SW 구조(아키텍쳐), SW 개발 기능(통신,데이터저장,에러처리 등)※ 표준화 = '통일'해서 사용차량부품 제어 SW를 개발하는 순서, SW의 내부 구조, 개발하려는 기능 등을회사마다 각자의 방식으로 개발하지 않고 통일한 것이 '오토사'▶ 오토사란 - 2?- 차량 내의 각종 부품들이 전자화 됨에 따라, SW에 의해 제어되는 부품이 계속해서 늘어나게 됨- 이에 따라 수 많은 자동차회사, 자동차 부품회사들이 각자 '자기 나름의 방식' 대로 제어기 SW를 개발하게 됨※ 여기서 말하는 자기 나름의 방식 = 개발하는 SW 기능, SW 개발 순서(프로세스), SW 내부 구조(SW 아키텍쳐) 등등 - 여러 회.. 2025. 3. 17.
T32 - 특정 이벤트 발생 시 특정 스크립트 실행하기 참고 문서 : Interrupt Service Routine 처럼T32가 특정한 이벤트를 감지했을때만 특정 스크립트가 실행되도록 구성할 수 있다 'ON' 이라는 커맨드를 사용하는 것이다.아래와 같은 양식으로 cmm을 작성하면된다.ON 어떤 이벤트>를 감지할 수 있는지, 어떤 액션>들을 실행할 수 있는지를 스터디하고 cmm을 구성하면 된다.일단 간단한 예시를 보자.(참고로 cmm커맨드는 대소문자 구분하지 않음)ON SYSUP GOSUB Fun_GoSub ; System Up 상태가되면 Fun_GoSub라는 서브루틴을 실행해라Fun_GoSub:print "System is Up"return위 커맨드를 해석해보면,T32 시스템 메뉴중에 System Up 이라는 버튼이 있는데. 유저가 이걸 눌러서 System.. 2024. 11. 30.
Aurix MCU Memory Protection 메모리 프로텍션 개념 정리 현재 실행중인 SW가 값을 읽고, 쓰고, 명령어를 실행하는 과정에서 접근할 수 있는,메모리의 범위를 하드웨어적으로 Setting 해 놓은 후,메모리 프로텍션 기능을 Enable 할 경우.지정되지 않은 메모리에 접근하려고 하면 트랩과 SMU Error 가 발생되는 기능이 메모리 프로텍션 기능이다 Ex)  예시메모리프로텍션 기능 활용을 위해 기억해야할 포인트는 3가지이다.- 접근 가능한 범위를 지정하기 (Range 셋팅)  1개가 아니라 여러 종류를 지정할 수 있음 (예를들어 아래와 같이 3개의 범위 지정)  Ex) 0x1000~ 2000 , 0x2000~0x3000,  0x3500 ~ 0x5000 - 위에 지정된 각 범위에 대하여 접근 권한 셋팅하기 . 근데 이것도 1개가 아니라 여러개를 지정해놓을 수 있.. 2024. 10. 3.
Aurix Swap flash 이슈 메모리 스왑 기능을 쓰는 상황일 때. FLASH 커맨드를 통해 flash write/erase/verify 등을 한다면 이때 target address는 물리 주소값을 적어야한다. flash 커맨드에서 아규먼트로 전달되는 주소값은 swap이 자동 적용 되지않는다.쉽게 말해서 Flash Erase 명령을 날린다고 할 때. 예를 들어 내가 실제 메모리 주소 0x8060 0000 영역을 지우고싶은 상황일 떄. 이 때 만약 B Bank가 활성화된 상태라고 가정하면. 단순히 0x8060 0000 영역의 값을 읽고(read) 싶은 상황이라면, 현재 B Bank가 활성화된 상태니까 unint32 test_data = (uint32*)(*(0x8000 0000)); 이런식으로 읽어야 8060 0000 으로 읽힐 것이다.. 2024. 9. 25.
Aurix Swap과 OTA 위에 필요한 핵심 개념들이 모두 잘 적혀있다.차량용 제어기에 OTA가 적용되면서 MCU에 메모리스왑 기능이 만들어졌다.이 기능의 목적은, 제어기가 동작중인 상황에서도 Sw를 업데이트하기 위함이다. 기존에 mcu sw 업데이트를 할 때는. 기존 sw가 설치돼있는 flash 영역을 지운 후, 지워진공간에 새로운 sw를 재설치하는 방식이었다.이 방식의 경우,  sw를 업데이트하려면 기존 sw를 지워야하므로, 기존 동작을 하면서 동시에 sw 업데이트가 불가하다.그래서 도입한 개념이 뭐냐면, FLASH를 A영역,  B영역 2개로 나눠놓은 후.기존 sw가 동작중인 상황에서 새로운 sw를 기존 flash영역이 아니라, 다른 flash 영역에 다운로드 시키는 것이다. ex)기존 sw가 A 영역에 있었다면, 새로운 SW.. 2024. 9. 25.
Aurix Trap 발생시키기 Trap에 대한 정보는Aurix User Manual이 아니라 아래의 Core Architecture User manual 문서에서 확인해야한다.홈피에서 다운로드 가능인피니언의 문서들은 뭐가 어딨는지 알기가 참 힘들다.   Class1 Tin6null 포인터에 변수값 write 하기class1 tin7A0 레지스터에 값 write 하기어셈블리 코드 필요class2 tin5CSFR(Core SFR) 레지스터에 포인터로 접근해서 값 write하기. CPU 관련 레지스터중에 Memory주소갖는 애들이 있다. ex)PXI 레지스터 등Class3 tin2함수콜 리커시브하게 무한하게 부르기class3 tin 7RFE(Return From Exception) 명령어를 트랩루틴이 아닌곳에서 부르기class4 tin2D.. 2024. 9. 5.
Aurix Contex Save Area 와 aurix trap 공부 Aurix CSA 컨셉 Aurix Trap 공부 함수콜,인터럽트,트랩 호출시 Upper Context는 자동으로 저장. Lower Context는 별도의 istruction 호출해야 저장됨 upper, lower context에 저장되는 정보는 아래와 같다.트랩이 발생된 위치 찾기 A11 레지스터(Return Address. 줄여서 RA) 레지스터를 활용한다. 트랩발생시 최초로 호출되는 코드. (트랩 백터테이블에 등록돼있는 함수) 에서 곧바로 트랩 발생위치를 찾으려면 이때는 CSA에 저장된거 말고 현재의 RA 레지스터값을 읽으면된다. 트랩 발생 -> 현재의 context가 저장 -> RA 값 업데이트 및 트랩 루틴 실행. 이므로, 이때는 RA 값을 읽어보면 트랩 발생 위치가 된다. 만약, 트랩 루틴에서 .. 2024. 9. 4.
기능안전과 mcu safety manual 개념이해 기능안전과 aurix safety manual 개념 이해 기능안전 aurix safety mechanism 개념 이해 배경지식. 주요 용어는 아래글 참고 https://newbie-developer.tistory.com/m/443 ◇ Fault(결함) 과 Failure(고장) 제품이 정상 동작 못하게 되는 상태가 고장 결함은 고장을 유발할 수 있는 비정상적 상태를 의미. 결함이 고장을 일으키는 것. 그러나 모든 결함이 고장을 일으키는 것은 아님. 고장이 좀 더 치명적인(?) 중요한 개념이라 볼 수 있다. 결함은 고장을 유발할 가능성이 있는 요소들(?)이랄까 ◇ random hardware fault vs systematic fault systematic은 일정한 조건에서 반복 재연 가능. 간단히 말하면 .. 2024. 8. 14.