본문 바로가기

자동차 임베디드 SW/Aurix MCU16

Aurix 이슈. 디버깅시 STM Stop Aurix에는 STM 이라는 타이머가 있는데 RTOS를 만들때 OS의 System Timer로 STM을 많이 사용함. 한편 RTOS에서 일반적으로 주기 Task를 많이 사용하는데, 오토사 OS에는 동일한 Task가 동시에 최대 몇번 Activation이 가능한지 설정할 수 있다. 예를 들어 1ms 주기의 TASK A가 있는데 TASK A의 실행시간이 1ms를 초과한다면, TASK A가 아직 실행중인데 TASK A가 또 한번 Activation 될 것이다. 이런 경우가 Activation이 2번 된 것이다. 만약 해당 Task의 Activation 제한값이 1인 경우,이때 에러로 판단해서 OS hook이 발생한다. 한편, Sw디버깅을 하다보면 break point에 멈춰놓고 쓸 때가 있다. 이때 break.. 2022. 9. 22.
Aurix 이슈 - SMU 와 PLL Clock 관련 System PLL Output CLock 속도 변경과 SMU 알람에 대하여 Aurix TC3xx 시리즈 유저매뉴얼의 Clock과 관련된 부분 중에서 System PLL Functional Description 이라는 절이 있는데 여기 내용을 보면 PLL Output frequency를 바꿔야 하는 경우 클락 관련 설정을 바꾸기 전에 loss of lock 과 관련된 SMU Alarm generation을 disable 하라고 돼있다. 그리고 clock 설정이 끝난 후에는 System PLL Loss-of Lock Event를 Clear 하고, 그러고나서 다시 SMU를 Enable 하라고 돼있다. 사실 정확하게 내용이 이해되진 않는데 암튼 SMU에는 PLL Loss of Lock Event라는걸 감지하는.. 2022. 9. 20.
Aurix SMU- 2 기능 구현. 순서대로 나열 -SMU의 고장 감지 기능을 Safety Mechanism (세이프티 매커니즘) 이라고 부른다. (이제 이것을 SM이라고 표현하겠다.) - 사용하려는 Aurix 제품이 어떤 SM을 제공하는지 목록을 파악한다 - 제공되는 SM 중에 우리가 사용하려는, 연관된 SM이 어떤것이 있는지 파악한다 - 우리가 이용하려는 SM 을 사용하려면 유저가 별도의 조치를 취해서 Enable 해야하는지, 아니면 Default로 켜져있는 것인지 파악한다. - 별도로 Enable을 해야된다면 enable 하는 방법을 파악하고, 언제 Enable 할 것인지를 결정한다. - 이용하려는 SM과 알람 간의 Mapping 관계를 Appendix 문서를 통해 파악한다. - 이용하려는 SM이 동작됐을때(에러감지했을 때) 어떤 Reaction을.. 2022. 9. 17.
Aurix Watchdog 주요 개념 정리 Watchdog 의 주요 역할은 MCU가 예상치 못한 원인으로 무한 Loop에 빠져 있는 상황을 방지하는 것이다. 어떤식으로 동작을 하냐면 와치독 타이머가 클락 주파수에 맞추어 일정하게 값이 올라가는데 이 값이 특정 쓰레시 홀드 값에 도달하면 MCU Reset이 발생하는 식으로 동작한다. 와치독으로 인한 MCU Reset을 막으려면 와치독 타이머가 쓰레시홀드에 도달하기전에 계속해서 타이머 값을 Clear해주어야 한다. 예를 들어 와치독타이머의 카운터가 1초에 1씩 올라가고, 쓰레시홀드가 100이라고 가정하자. 그러면 적어도 99초에 한번씩 와치독 타이머 값을 0으로 바꿔줘야 와치독 타이머 값이 100에 도달을 못할 것이다. 그런데 만약 MCU가 무한 Loop에 빠져서 타이머 값을 0으로 변경하지 못하게 .. 2022. 9. 16.
Aurix BMHD 그리고 Start Address Aurix Start Address Aurix BMHD 개념 MCU에 전원이 딱 켜졌을때 Cpu는 무엇을 할까. Aurix에는 SSW(Start SW)라는 하드 코드 된 코드가 들어가있는데 CPU에 전원이 들어오면 SSW가 실행된다. 이 SSW 코드는 공장에서 제품 만들당시에 삽입되는 코드라 유저가 수정이 불가하다. 하지만 이 SSW가 실행될 때, 메모리의 특정영역 혹은 특정 핀의 값 등에 따라 동작이 달라지긴한다. 상세한 내용은 생략하고 아무튼 SSW가 할 일을 다 한 뒤, 가장 처음으로 실행시키는 유저 코드는 어디에 있을까? 우리가 c언어로 코딩한 코드 중에 mcu가 가장 첫번째로 실행하는 코드가 무엇일까? 그것을 결정하는 것이 바로 Start Address다. SSW가 할 일 다하고나서 처음으로 실.. 2022. 9. 15.
Aurix SMU- 1 완벽 개념 정리 Aurix Safety Management Unit란 Aurix SMU란 mcu와 관련된 각종 고장을 감지하고, 고장 발생시 지정된 reaction을 수행하는 것이 주요 기능이다. 참고로 이 때 고장감지는 MCU가 하드웨어적으로 자체적으로 수행하는 것이라 유저가 sw구현 할 부분은 딱히 없다. 있다면 그냥 해당 기능을 enable하는 정도이다. 이 때 어떤 reaction을 수행할 것인지는 유저가 configure한다. 예를 들면 MCU의 Ram에서 bit에러 발생시 ecc를 통해 이름 감지하고, 이것이 감지되면 reset, Interrupt 등의 지정된 reaction을 수행한다. 좀 더 상세히 얘기하면 SMU에는 알람이라는 것이 있다. 알람은 알람 그룹, 알람 시그널로 나누어지는데 하나의 알람 그룹은.. 2022. 9. 12.
Aurix Adc 기본개념 완벽 정리 Aurix 2G 제품의 EVADC 특징 정리 Aurix1G 제품의 VADC와 같은 기능인데 추가된 기능이 약간 있고 컨버젼 속도가 빨라짐. Enhanced VADC의 약어다. 하나의 mcu 안에 다수개의 Converter가 들어있다. 각 converter는 primary , Secondary 로 구분된다. primary와 secondary의 차이는 컨버젼 속도 그리고 연결되는 Adc channel의 갯수다. primary가 secondary보다 컨버전 속도가 빠르다. 참고로 secondary의 컨버전 속도는 aurix 1g의 vadc와 같다. 한편, 채널갯수는 primary가 최대8개. secondary가 최대16개 연결된다. adc conversion을 실제로 수행하는 단위는 converter다. 그러.. 2022. 8. 3.