Aurix SMU 헷갈리는 것 기록
◇ Alarm Status 레지스터는 mcu reset(app,sys) 발생시 clear 된다.
또한, 커맨드를 통해서도 clear 가능
◇Alarm debug 레지스터는 오직 power on reset 때만 지워지고 유저가 임의로 지우는것도 불가함.
읽는다고 자동으로 지워지지도 않고, 강제로 지울 수도 없음.
참고로 cold power 뿐만아니라 warm power 때도 clear 됨
◇ 알람에 대한 리액션(리셋.ISR 등)은 Smu_core 의 state가 Run 또는 Fault 일때만 발생됨. start state에서는 알람이 떠있더라도 리액션이 일어나지 않음.
참고로 smu_init 호출한다고 smu state가 run이 되는 것이 아니고 run으로 보내는 명령은 별도로 있음.
참고로 smu init 호출전에도 알람 발생은 가능함
◇smu core의 state는 power on reset 때만 start로 돌아갈 수 있음. Run,Fault 상태 진입 후 다시 Start로 돌아가는 명령이 불가함.
그러므로 만약 smu 에 의해 MCU reset이 일어나는 경우, power on 리셋이 아니므로, 리셋된 후에도 smu core의 state는 여전히 run 또는 fault 상태임.
그렇다면 이 상태에서 알람이 새로 뜨면 곧바로 리액션을 할까? 아니다. 왜냐면 Alarm의 리액션을 정의하는 configuration 레지스터는 mcu reset시 reset됨.
그러므로, smu state가 이미 run 또는 fault인 상태로 mcu가 reset되더라도. smu 알람 리액션이 none 상태이므로 리액션이 일어나지 않는다.
그렇다면 알람 리액션 셋팅은 언제 적용되는가?
smu init 호출시 적용될 것임. ( 이때는 Run 으로 안보내도, 이미 Reset 전에 State가 Run 또는 Fault 이기 때문)
◇ 결국 여기서 내가 정리하고싶은게 뭐냐면
power on reset 상태에서는 smu init , smu run activate
두 가지를 모두 수행해야 비로서 알람 리액션이 발생하지만, power on reset 이외의 리셋이 일어난 경우에는 smu init 을 호출하면 리액션이 일어난다는 것임
◇ FSP 리액션에 대하여(1)
알람에 의한 fsp 리액션도 역시 smu core state가 run, fault 상태일때만 발생가능하며 fsp state가 fault state로 천이함.
fault state에서 다시 fault free state로 돌아가려면 Release FSP 커맨드를 유저가 명시적으로 날려줘야함.
참고로, mcu Power on Reset 시, default fsp state는 fault state이다.
smu core를 run으로 보내기전에 release fsp로 fsp state를 fault free state로 만들어놓자
참고로, Power on Reset이 아닌 경우, FSP State는 이전 State를 유지하고 있는다.
◇ FSP 리액션에 대하여(2)
SMU Core State가 Start State 일 때는, FSP 의 동작(상태)를 오직 Activate, Release CMD로만 컨트롤 가능하며.
SMU Core State를 Run으로 보내지 않더라도, Activet CMD를 날리면 FSP는 Fault State가 된다. (그러므로 FSP 출력 High나 Low로 고정 될 것임)