일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 백테스트
- can
- 백트레이더
- 클라우드
- GeorgiaTech
- TOEFL
- backtrader
- 확률
- 오토사
- Cloud
- 퀀트
- 블록체인
- 프로그래밍
- 암호화폐
- Bitcoin
- python
- 개발자
- 토플 라이팅
- 아마존 웹 서비스
- AWS
- it
- 비트코인
- backtest
- 자동매매
- toefl writing
- 토플
- 파이썬
- probability
- 자동차sw
- AUTOSAR
- Today
- Total
목록자동차 및 자동차 SW/AUTOSAR (24)
Leo's Garage
최근에 NvM WriteAll 시에 Garbage Collection 상황에서 특정 Block이 저장되지 않는 이슈가 있었다. 이를 해결하기 위해 코드를 분석하던 중 알아낸 사실에 대해 공유하고자 한다. 기본적으로 내가 사용 중인 AUTOSAR 구현체는 Vector사의 Microsar이다. 따라서 그 외에 업체에서 제공하는 AUTOSAR 구현체가 동일한 형태로 구현되어 있는지는 알지 못한다. 우선 NvM ReadAll의 경우에는 Microsar에서 Dflash에 있는 데이터를 일대일 대응되는 NvM Rte Ram 변수로 가지고 올 때 NvM Index가 작은 쪽에서 큰 쪽으로 순차적으로 가져온다. 그런데 NvM WriteAll의 경우에는 물론 이 경우에는 MultiBlock job을 수행하면서 setRa..
DEM(Diagnostic event manager)는 진단 기능의 중요한 모듈이다. 이 포스팅에서 DEM이 어떻게 동작하는지 알아보자. AUTOSAR를 충분히 오래 사용하셨다면 DCM, DEM, DLT, DET란 무엇인지 알 것이다. 그렇지 않다면 이 글이 진단에 대한 좋은 출발점이 될 수 있다. 오늘은 중요한 진단 모듈인 DEM(진단 이벤트 관리자)에 대해 자세히 알아보겠다. DEM이란 무엇이며 왜 필요한지 생각해보자. DTC(진단 문제 코드)에 대해 들어봤다면 DEM에 대해 잘 알고 있을 것이다. 이를 통해 진단 이벤트를 정의하고 보고할 수 있으며, 나중에 ECU의 문제를 진단하는 데 사용할 수 있다. DCM(진단 통신 관리자)과 상호 작용하여 결함 정보, 일명 DTC를 제공한다(진단 통신에 대한 ..
DEM 모듈은 DTC의 상태를 기록하는데 중요한 두 가지 서비스를 제공한다. 하나는 SWC에서 사용하는 Dem_SetEventStatus이고, 다른 하나는 BSW Component에서 사용하는 Dem_ReportErrorStatus이다. Component에 따라 CAN msg 미수신 등의 DTC 오류 조건이 감지되면, 해당 서비스에 의해서 DTC 로깅 요청이 DEM 모듈로 전송된다. Debouncing Counter : 고장 조건에서 의도하지 않은 jitter를 방지하기 위해서 reporter 모듈 또는 DEM 모듈에 Debouncing을 도입할 수 있다.. DEM 모듈의 Debouncing Counter는 설정된 이벤트에 대해서 Debouncing 기간을 Count한 후에 메모리에 DTC를 저장한다. ..
최근에 FEE 모듈과 Garbage Collection으로 인해 곤혹스러운 일을 겪은 것을 기념하며 해당 내용을 정리하고자 한다. FEE(Flash EEPROM Emulation) 모듈은 Flash 메모리를 마치 EEPROM처럼 사용하고자 할 때, 그 중간 역할을 하는 모듈이다. FEE 모듈에는 Garbage Collection이라는 기능이 있는데, 이 기능은 NvM(NVRAM Manager) Block을 새로운 Sector에 복사하고, 이미 채워진 Sector를 지우는 방식으로 Sector 전환 및 Dflash Clean을 하는 기능이다. 예를 들어 MCU에 NvM에 활용할 수 있는 Dflash가 512Kbyte 있다고 가정하자. 우리는 이 용량을 256Kbyte씩, 2개의 섹터로 나눠서 사용하고 싶다..
ECU의 Memory 저장 및 관리 작업은 이 NvM 모듈에서 이뤄진다. 제품 수명 주기 내에서 데이터를 지속적으로 저장하고 읽어야 하는 경우는 매우 흔하다. 바로 코 앞에 있는 쉬운 예는 차량의 진단 기능일 것이다. 차량에서 문제가 감지될 때마다 정비사(혹은 여유가 있는 사용자)가 읽을 수 있도록 '어떻게든' 저장해야 한다. 바로 이 때 NvM이 이 역할을 할 수 있다. 이 특정 사례의 경우에, DEM(진단 이벤트 관리자)이 NvM과 상호작용하여 주행 중에 감지된 진단 오류를 저장하게 된다. 사실 이것은 진단에만 적용되는 것은 아니다. Application에서 데이터에 접근하여 수정하거나, 센서 또는 엑츄에이터를 보정하고, XCP의 특정 Command를 사용할 때 NvM이 관여하는 경우가 있다. 정리하..
여기서 정리할 내용은 NvM 변수를 작성할 때 내부적으로 어떻게 처리되는지에 대한 내용이다. NvM(Non- Volatile Memory)은 어느 특정 시점에 저장되는 유형의 메모리로, Soft Reset 혹은 Hard Reset 후에 사용자가 적은 값이 그곳에 저장되는 것을 주로 볼 수 있다. 하지만 이것은 마법처럼 동작하지 않기 때문에 과연 이 동작 안에는 어떤 일이 일어나는지 알 필요가 있다. 이 NvM은 전원이 꺼지면 모든 정보를 잃는 휘발성 메모리와 다르게 전원이 없을 때에도 정보를 유지하는 메모리이다. 우리가 알고 있는 AUTOSAR NvM 모듈은 BackGround에서도 이것을 사용한다. SRAM과 DRAM을 전부 NvRAM으로 대체하면 더 좋은 거 아닌가라고 생각할 수도 있지만, 메모리 크..
AUTOSAR project를 Bring Up 하다보면, Com Signal이든, Dio Signal이든 또는 Adc Signal이든 SWC 간에 혹은 Composition과 내부 SWC 간에 Port로 연결하거나 할 때, 해당 Signal의 정의를 명확히 해줘야 하는 상황이 발생한다. Data Type을 살펴보면, Implementation Data Type이 있고, Application Data Type이 존재한다. 이 두 Data Type은 무엇이고 어떤 역할을 하는 것일까? Application Data Type은 말 그대로 Application이 이해하기 위한 Data Type이다. 실제로 물리적인 값을 표현한다고 생각하면 된다. 가령 volt, Ampere, m/s 등과 같은 물리적인 단위가 ..
커넥터는 서로 다른 소프트웨어 구성 요소의 두 포트를 연결하는 데 사용됩니다. PP포트(공급자 포트)에서 R포트(필요 포트)로의 데이터 흐름을 상징합니다. AUTOSAR에서 커넥터는 서로 다른 SWC간에 포트를 연결하는데 사용된다. P Port(Provider Port)에서 R Port(Require Port)로 데이터는 전달 된다. 이 커넥터 종류에는 Assembly Connector와 Delegation Connector 두 가지가 있다. Assembly Connector는 SWC간의 Port를 연결하는데 사용된다. Delegation Connector는 Composition이라고 불리는 Component 외부의 Port와 Component 내부의 Port를 연결할 때 사용한다. 이러한 연결은 Ass..
Vector Microsar Set up을 하면서, 초기에 CAN DBC를 import하게 되면, CAN Message에 담겨있는 Signal들을 각각 SWC 상에서 연결하게 된다. 물론 개발자의 입장에 따라서 각 Signal을 직접 연결하는 것도 방법이지만, 편의성을 위해서 각 Signal을 Group 단위로 모아서 Authoring 작업도 가능하다. CANdb++ editor를 통해 DBC file을 열고, 각 message 하위에 Signal Group을 생성해서 Signal을 그 안에 위치시킬 수 있다. 완벽하게 적절한 예제 사진은 아니지만(인터넷 상에 적절한 예제가 없다 ㅜㅜ), 위의 Multiplexing/Group 항에 현재는 Multiplexing에 대한 정보가 담겨있지만, Signal G..
AUTOSAR Bring up 작업을 하다보니, 옛날에 마주했던 이슈들이나 혹은 tool 버전이 변경되서 마주하는 문제들이 매 순간 순간 나타나고 있다. 오늘 이야기할 주제는 OS Task Mapping에 대한 이야기이다. AUTOSAR에서는 application software의 경우, runnable이라는 단위로 각 기능 동작을 수행하고, BSW는 주로 mainfunction이라는 이름으로 기능 동작을 수행한다. 보통 AUTOSAR Project를 Set up하다보면 기본적으로 BSW configuration을 마친 상태에서 각 Core 별 Timer 설정, OS Application 생성, 각 주기 별 Task 생성과 각 Runnable 및 Mainfunction의 Task Mapping을 하게된다..