www.zap.pe.kr

admin login

Virtual PIC Microcontroller - 2002년 7월 중단

저만 그런지 몰라도 가끔씩 cpu 코어 자체를 프로그래밍 하고 싶어집니다. 그래서 좀 간단한걸 찾다가 그래도 한번 써본 pic16f876을 타겟으로 잡고 이놈을 c++로 표현하려고 한것이 이 vpm 입니다. core나 peripheral등을 클래스 모듈로 만들어서 어떻게 하면 효율적으로 상호연관되게 할수있을까 하는게 개발 초기부터 마지막까지의 고민이었구요. 아직까지의 풀리지않는 의문 이기도 합니다. 최대한 데이터시트에 나온대로 설계하려고 했는데, 워낙 프로세서 아키텍쳐에 대한 지식이 부족하다보니 대충 땜빵한 부분도 있습니다. ^^;; 그래도 이거 만들면서 pic 아키텍쳐에 관해서 많은 생각을 하게 됐습니다. 중간에 그만두긴하긴 했지만 나름대로 의미있고.. 또 재미있었다고 생각 합니다. ^^


VPM 테스트 방법 스크린 샷




현재까지 구현된 기능들

  • 33개 명령어(CLRWDT, SLEEP 명령어가 아직 구현되지 않음), ALU 지원
  • FLASH Program Memory 지원
  • Register File Map(BANK0, BANK1, BANK2, BANK3)
  • Indirect Data Memory Address Pointer 지원
  • 2가지 Reset(Power-on-Reset, MCLR)
  • Clock-In(Q1, Q2, Q3, Q4 Clock)
  • 8 Level Stack 구현
  • Program Counter(PC) 관련 기능 구현(PCL, PCLATH도 구현되어 있음)
  • Pipe Line 아키텍쳐 구현(Instruction FETCH)
  • Instruction Decoder 기능 구현
  • Working Register 구현
소스 파일
  • vpm.zip - 11월 26일 업로드. c++로 제작된 소스 파일 이다. 위의 테스트 코드가 포함되어 있으므로 곧바로 확인 가능.



References

PIC16F876 Datasheets