ARM 플랫폼 기반에서 가능한 모든 디버깅을 할 수 있는 툴킷인 RVDS(REAL VIEW DEVELOPER SUITE) 에 대해서 정리했다.
아직 모든 기능을 써보지 않았기 때문에 정확히 어떤 기능들이 있는지 잘 모른다.

들어가기 전에

크게 read view ice 와 real view develop suite 로 나눌 수 있다. ARM 칩의 경우, 모델명을 보고서 칩의 특성을 알수 있다.(cache, mmu 유무)
대표적인 하버드 아키텍쳐(RISC)를 사용하고 있으며, 각각의 RVDS 와 REAL VIEW ICE 는 이전의 ADS 와 MULT ICE 의 성능을 향상시킨 업그레이드 버전이라고 보면 될 것이다. ARM 은 크게 32 bit ARM Instruction set 과 16 bit Thumb Instruction set 을 제공한다. 32 bit 의 경우, 16 bit 에 비해 속도는 빨라지지만, 이미지 용량은 더 크다. 이와 반대로 16 bit 의 경우는, 32 bit 에 비해 속도는 느리지만 용량은 더 작다.

또한 컴파일시 옵션(otime, ospace)을 주므로써, 속도와 용량을 조절할 수 있다.

  1. Chip 에서 EmbeddedICE-RT 가 지원되어야 한다.
  2. 메모리에 RMTARGET 이 있어야 한다.
  3. 디버거에 RMHOST 가 설치되어 있어야 한다.

REAL VIEW 의 기능

  1. Mult Core debug 가능(ex: 하나의 Core 가 죽었을 때, 나머지 다른 코어로는 디버깅이 가능)
  2. RSD(실행 중인 상태에서의 디버깅), HSD(정지된 상태에서의 디버깅) 을 지원(단 OS 에서 지원 가능해야 가능)

결과적으로 1 대의 RVDS 디버거와 REAL VIEW ICE 로 2 개이상의 CPU 를 디버깅 가능하다.

설치하기

다음과 같이 총 3장의 CD로 구성되어 있다.

  1. REALVIEW ICE V1.2 AND REALVIEW TRACE V1.0
  2. ARM DEVELOPER SUITE SOFTWARE ARCHIVE (ADS V1.2)
  3. REALVIEW DEVELOPER SUITE VERSION 2.2

2번째와 3번째 CD 만 설치하면 되는데, 순서는 3 → 2 의 순으로 설치한다. 설치도중에 라이센스에 대한 항목이 나오는 데, 여기서는 약간의 설정이 필요하다.
'환경변수 → 시스템변수' 에서 'ARMLMD_LICENSE_FILE' 변수를 등록하고 값은 '8224@RTCC_LICENSE_SE' 로 설정한다.
등록한 후에, 다시 앞의 라이센스에 대한 항목에서 'Install license' → 'Next' → '8224@RTCC_LICENSE_SE' 추가한다. 마지막으로 'Next' 를 클릭해서 설치를 마친다.
설치 후에, Code Warrior 를 실행시켜서 라이센스에 대한 에러 메세지가 뜨지 않으면 성공이다.

라이선스 파일을 찾지 못할 때

환경변수를 등록했음에도 불구하고 'Install license' → 'Next' 에서 '8224@RTCC_LICENSE_SE' 항목이 보이지 않는다면, 환경변수가 제대로 등록이 되었는지 다시한번 확인한다.

유의 사항

REAL VIEW ICE 의 경우 ARM 계열의 칩만 지원된다.(ARM7, ARM9, ARM11 등) PXA255 의 경우는 지원되지 않는다.
이때는 MULTI ICE 가 필요하다. 그래서 REAL VIEW ICE 의 경우는 단지 시뮬레이터로만 PXA255 를 확인해볼 수 있다.

Q&A

'Q1. 원래 Real View 에서 지원하는 OS 벤더(상용 RTOS) 가 아닌 자체 개발한 OS(VPOS) 의 경우에도 시뮬레이션이 가능한가?'

'A1. 될 수도 있고 안될 수도 있다.(리눅스의 경우 지원, 윈CE 에 경우 지원안함)'

'Q2. 프로그램 실행 도중에 특정 레지스터에 원하는 값을 지정할 수 있는가?'

'A2. RAM 영역에서만 가능, 그 외의 디바이스 매핑 메모리 어드레스의 경우에는 직접 테스트 프로그램을 만들어야 한다.'

'Q3. main() 함수 이전의 루틴(부트코드) 에서는 시뮬레이션과 Real View 를 이용한 디버깅이 가능한가?'

'A3. 시뮬레이션 상에는 불가능하다. 보드 레벨에서는 step by step 으로 디버깅이 가능하다.'

'Q4. 컴파일 후 이미지의 크기나 주소번지 확장자(.hex, .bin 등) 를 지정해서 만들 수 있는가? (ex : s3c2410 의 경우, 이미지 크기를 0x30000000 로 지정)'

'A4. fromelf 를 사용해서 bin 이나 hex 이미지를 만들 수 있다.'

'Q5. Real View 를 이용해서 타겟보드에 바로 Flash R/W 가 가능한가? (부트로더 사용 X)'

'A5. 초기화 코드를 넣지 않고 바로 R/W 는 할 수 없다. 최소한 RAM 을 살려야 R/W 가 가능하다.'

'Q6. 각각의 서로 다른 Task 가 실행되고 있을 때, 그 중 하나의 Task 의 변수값을 보거나 변경할 수 있는가?'

'A6. 50% 정도 가능하다. 환경에 따라 직접 해봐야 한다.'

'Q7. 같은 Chip 이라도 각각의 타겟보드마다 설정이 다를 수 있다. (ex : 메모리 사이즈, 다른 벤더의 Chip 등) 이런 경우 어떻게 설정해주어야 하는가?'

'A7. 보드마다 다르기 때문에 보드의 스펙문서를 봐야 한다.'

'Q8. Real View 시뮬레이터로 확인할 수 있는 영역은 어느정도 까지 인가? (ex : 시뮬레이터만으로 serial 포트가 제대로 open 이 되어서 동작하는지 여부, 스탭모터가 제대로 동작하는지 여부등)'

'A8. 시뮬레이터로는 RAM 영역까지 가능하다. 그외의 하드웨어 영역은 보드레벨 디버깅에서 테스트 프로그램을 만들어야 한다.'

'Q9. 프로그램 수행도중, 특정 Task 의 메모리 점유율을 볼 수 있나?'

'A9. 볼 수 없다. 보고 싶다면, 직접 만들어야 한다.'

'Q10. FPGA 나 PLD 의 사용이 가능한가?'

'A10. 사용 가능하다. 하지만, Multi ICE 로만 가능하다.'

  • computer/rtcclab/real_view_developer_suite.txt
  • Last modified: 3 years ago
  • by likewind