실제 EVerest와 BSP를 이어 충전 한 사이클 — 그리고 작업물 GitHub 보관 (M7-4)
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
어제 만든 BSP를 이번에는 실제 EVerest에 붙였다. 첫 실행에서 BSP가 EVerest의 기대와 다르게 동작하는 버그를 하나 고친 뒤, 저항 지그만으로 차량 연결부터 충전, 일시 중지, 종료까지 두 번 돌렸다. 그 전에 레이어와 작업 기록을 펌웨어를 뺀 채 GitHub 비공...
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.