시리얼을 통한 업데이트 프로그램 사용법을 설명한다. 실행 순서는 다음과 같다.

  1. 타겟보드 선정(FLASH 2M or 8 M)
  2. 부트 코드 프로그램 FLASH WRITE (flash burnner 이용)
  3. 메인 프로그램(DACS1000 or DAC5000)의 HEX 코드 생성
  4. 호스트 PC 와 타겟보드 시리얼 케이블 연결 및 시리얼 전송 프로그램 구동
  5. 타겟보드 부팅 확인

타겟보드 선정

여기서는 8M FLASH 를 기준으로 설명할 것이다. 앞으로는 SD 의 경우 2M, HD 의 경우 4M FLASH 를 사용할 것이다. 하지만, 여기서 설명하는 8M 의 설정과 크게 다르지 않을 것이다.
= 부트 코드 프로그램 FLASH WRITE =
처음 부트 코드 프로그램을 플래시에 쓰기 위해서는 DCU 가 필요하다. 현재 부트 프로그램은 약 256 KB 정도이다. 하지만, HEX 파일만의 용량만 본다면, 128 KB 미만이다. 8M 의 플래시 파티션에 맞추기 위해서는 mb_382um.cfg 파일을 다음과 같이 수정해야 한다.

memory FLASH        0x7Ffe0000           (128*K)                ROM

그리고 나서, arena.hex 파일을 생성한 뒤에, 열어보자! 맨 처음 주소가 0x7FFE0000 이고, 마지막 주소가 0x7FFFFFE4 이면 제대로 만들어진 것이다.
이제는 직접 flash_burner 를 이용해서 WRITE 한다. 부트 프로그램은 126, 127, 128, 129, 134 번째 BLOCK 에 WRITE 된다.

메인 프로그램(?DACS1000 or DAC5000)의 HEX 코드 생성

여기서는 DAC5000 을 기준으로 설명하겠다. DACS1000 의 경우도 이와 크게 다르지 않을 것이다. 역시 8M 플래시 파티션에 맞추기 위해서는 mb_382um.cfg 파일을 다음과 같이 수정해야 한다.

memory FLASH        0x7F800000           (8064*K)                ROM     // 1M(1024K) X 7 + 896K(512K+256K+128K) = 8064K
...
...
proc board_init_hex {
  write Setup5517
  reset
  Mem5517Space (0) (1)
  ST20C2MemoryInit    ## procedure written by MCDT, replaces c2MemoryInit, reserves area 0x80000000 to 0x80000040
  bootiptr (0x7Ff00000 + (896*K)-2 )         // 부트 블럭 주소를 0x7ffdffe4 로 세팅
}

위의 세팅으로 arena.hex 을 만들었다면, 맨 처음 주소가 0x7F800000 이고, 마지막 주소가 0x7FFDFFE4 일 것이다.

호스트 PC 와 타겟보드 시리얼 케이블 연결 및 시리얼 전송 프로그램 구동

HEX 파일이 모두 준비되었다면, 이제 시리얼을 이용해서 직접 write 해보자!
호스트 PC 와 타겟보드를 시리얼 케이블로 연결한 뒤에, 쪽보드의 캡(CAP)을 1 에 넣고 전원을 ON 시킨다.
그리고 나서, 호스트 쪽에서 시리얼 프로그램(Comm.exe)을 실행한다.
전송할 HEX 파일을 선택하면, 아래의 메세지가 나올 것이다.

Sucess Open Uart!
Loading C:\STM\arena.hex ...
Loading sucess! 
File size = 74080  Block Num 2

이제 'Burn' 버튼을 눌러서 전송한다. 모두 전송이 끝나면, 타겟 보드의 전원을 OFF 시킨다.

타겟보드 부팅 확인

부팅확인은 프로그램의 부팅 메세지를 보고 확인할 수 있다. 호스트 PC 쪽에서 하이퍼 터미널을 실행시킨다. 옵션은 아래 표와 같다.

비트 115200 (만일 글씨가 깨져나온다면, 프로그램 소스를 보고 속도를 조절하기바란다)
데이터비트 8
패리티 짝수
정지비트 1
흐름제어 없음

쪽보드의 캡(CAP) 을 0 에 넣고 타겟보드의 전원을 넣는다.

주의할 것

타겟보드보다 호스트에서 먼저 시리얼 프로그램을 실행시키면, 데이터를 전송하는 동안 잘못된 데이터가 전송되었다. 여기서 프로그램을 실행시켰다는 것은 'Burn' 버튼을 눌렀다는 얘기가 아니다. 단지 실행만 시켜 놓은 상태를 말한다.
그래서 만드시, HEX 파일을 시리얼을 통해서 전송할 때는 반드시 ' 타겟보드를 먼저 부팅시키고 난 뒤, 호스트 쪽에서 시리얼 프로그램을 실행시켜야 한다'.

좀더 정확히 얘기하자면, 타겟보드에서 HEX 파일을 받을 준비가 먼저 되어야 한다는 뜻이다. 그래서 타겟보드의 전원을 ON 시킨 후에 얼마 시간동안 후에 호스트 쪽에서 시리얼 프로그램을 실행시켜야 한다는 것이다. 아마도 10 초 동안이다.

  • computer/digitalarena/serial_download_프로그램_메뉴얼.txt
  • Last modified: 3 years ago
  • by likewind