임베디드 시스템 개발을 하다보면 가장 많이 사용하는 통신 인터페이스는 Serial (COM) 이다. 특히 대부분의 시리얼 프로그램들은 UART뿐만 아니라 SSH도 지원되고 있어 서버관리할때, 리눅스 애플리케에션을 작성하거나 디버깅 목적으로 주로 사용된다. 

     

      개인적으로는 putty를 주로 사용하지만 필요시 teraterm이나 모바텀이나 xshell등도 사용하기도 한다. 그 중에서 단순 반복 테스트를 하는 테스터에게 추천하자면 테라텀을 주로 추천한다. 테라텀의 스크립트를 이용해서 단순한 작업들은 충분히 반복적으로 사용할 수 있기 때문이다. 예를들어, 가지고 있는 임베디드 보드의 리부팅 테스트를 진행하려고 한다면 어떻게 할까?

     

    (1) 터미널에서 로그인후 reboot 명령을 입력한다.  

       - 테스트 회수가 10만번이면? 

       - 리부팅전 시스템 정보를 확인해야 한다면?

     

    (2) 스크립트를 통해서 자동으로 리부팅 한다. 

      - 부팅후 autologin을 통해 시스템 정보를 출력하고 리부팅 하므로 기본 목적은 달성할 수 있다. 

      - 스크립트 도중 멈추고 싶거나 몇번 확인했는지 보고 싶은경우에는?

      - 사용자에게 어떤 결정을 받아서 처리해야 할 경우에는?

     

    테라텀의 스크립트를 이용하면 이러한 부분, 일반 터미널로는 약간 부족했던 부분을 스크립트를 통해 해결할 수 있다. 

     

    문서로 작성한걸 옮기려니 해야될 내용이 많아서 간단하게 스크립트 소스를 기반으로 설명 하도록 하겠다. 

     

    1. 사전 준비사항

      - PC와 임베디드 보드의 디버그 시리얼을 연결한다.

      - 테라텀을 설치하고 연결된 시리얼 포트의 번호로 터미널을 열어준다. 

     

    2. 매크로 파일 생성

      아래의 매크로도 어느정도 프로그래밍을 알아야 작성할 수 있다. 아래는 반복문을 이용하여 10회 ping 체크를 진행하는 매크로이다. 노트패드에 작성후 for.ttl 로 저장한다. 

    (1) wait는 대기명령이다. 임베디드보드와 연결된 UART에서 imx login 문자열이 입력되기를 기다힌다.

    (2) sendln는 문자열 전송 명령이다. 

    for i 1 10       ; 반복문 변수 i는 1에서 10까지 총 10회 실행된다.
      wait 'imx login'
      sendln 'root'
      pause 1
      wait 'Password'
      sendln 'makeutil'
      pause 1
    
      sendln 'ifconfig eth0 | grep ether'
      pause 2        ; 라인수가 늘어나면 더 많은 시간이 소요될 수 있다. 
      reboot         ; 그런경우 reboot 앞에 sync를 추가해주도록 하자.
    next

     

    위의 첫번째 블록은 임베디드 장치에서 터미널로 imx login 문자열이 입력되면, 로그인을 위해 다음줄에서 root를 장치에 입력해주고, password 문자열이 입력되면 지정된 패스워드 문자열을 시리얼포트로 보내, 장치에서 로그인할 수 있도록 해준다. 

     

    (3) pause응 대기 명령으로 뒤의 숫자가 대기할 시간(초)가 된다. 

    (4) 정상 로그인이 되면 ifconfig eth0 명령을 이용하여 grep을 통해 ether 문자열이 포함된 라인만 출력하는 명령을 시리얼 포트로 보낸다. 그러면 시리얼 포트에서 이더넷 장치 정보가 출력된다. 

     

     

    3. 테라텀에서 매크로 실행

      임베디드의 장치가 PC와 연결된 상태에서 터미널을 통해 메시지 입출력이 가능한 상황에서 시작한다.

     

    (1) 테라텀에서 매크로 메뉴를 선택한다.

     

    (2) 앞서 작성한 ttl 파일을 선택하여 연다.

     

    (3) 장치를 리부팅 한다.

      그러면, 리부팅후 login 문자열을 만나면 매크로가 자동으로 실행되는 것을 확인할 수 있다. 

     

    그러면 이제 직접 해보도록 하자.

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기