펌웨어 개발자가 현재 하드웨어에 대해 의심이 들 때, 확인해 볼 수 있는 방법을 제시하고 있다. 참고로 이 글은 '임베디드 시스템 펌웨어 분석'이라는 서적의 내용을 발췌했다.
책을 보다가 좋은 내용인 것 같아서 문서로 남기기로 했다. 아주 기본적인 내용이지만, 절대로 간과해서는 안되는 내용들이다.
전원을 제대로 공급해주었는지 점검하라. 농담이 아니다. 테스터기로 시스템에 적정한 전압이 걸려 있는지 확인해야 한다. 오실로 스코프가 있다면, 공급되는 전원이 안정적인지도 확인해 볼 필요가 있다. 즉, 노이즈가 섞여있거나 AC 전원같이 특정 주파수의 파형이 관찰되면 정상이 아니다. 테스터기만으로는 이런 것까지는 확인할 수 없다.
오실로스코프를 가지고 프로세서로 공급되는 클럭신호가 정상적으로 상태를 변경하는지 또 그 파형의 주파수가 원래 의도했던 값인지 확인하라. 일반적으로 클럭 신호가 주기적으로 상태를 변경하는한 시스템은 동작한다. 그러나 비정상적인 클럭 주파수나 듀티 사이클(duty cycle)은 문제를 유발할 것이다. 따라서 클럭 파형이 보인다고 해서 정상으로 간주해서는 안된다.
부트 디바이스의 칩 선택(CS) 핀에 오실로 스코프의 프로브를 연결한 뒤, 리셋 버튼을 눌러서 잠깐 동안이라도 활성화 상태로 변화하는지 확인하라. 똑같은 방법으로 디바이스의 읽기(RD) 핀을 점검하라.
요즘 하드웨어를 관찰해봤다면 확대경이 필요한 이유를 알 것이다. 칩의 핀들이 아주 가깝게 붙어있다. 부트 디바이스와 CPU의 핀을 관찰해보라. 핀이 기판에 제대로 납땜이 되어 있는지, 남땜이 두 핀을 단락시켰는지, 불량 납땜(정상 납땜보다 모양이 좋지 않다)이 있는지 확인하라. 불량 연결을 발견하면 담당자에게 알려줘서 그로 하여금 재작업하게 하라. 정밀도를 요구하는 재작업에 사용하는 장비를 잘 다루지 못한다면 그대로 놔두는 것이 좋다. 여러분이 미숙하게 이들 장비를 사용하면 장착된 디바이스를 못쓰게 만들수도 있다. 더욱이 인쇄회로 기판에 손상을 줄 수도 있다.
어쨌든 하드웨어를 조작한다면 정전기를 조심하라. 정전기 방지용 손목 팔찌를 착용하고 그밖의 주의사항을 하드웨어 디자이너에게 물어보라. 정전기는 보통 디바이스를 완전히 손상시키지는 않는다. 오동작을 일으키게 한다. 임베디드 시스템에서는 오동작보다 더 나쁜 것은 없다.
리셋 벡터를 기본적인 루프로 동작시키는 것부터 시작하라. 그 다음 부트 플래시 디바이스의 칩 선택 핀이 계속 토글(toggle)하는지 확인하라. 이 단계는 한 라인의 어셈블리 코드로 구현할 수 있을만큼 간단하다.