수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1694441
  • Today | 186
  • Yesterday | 606

Embedded2005/08/10 14:02

부트로더의 네트워크 구현(1) - 2

유영창

이지부트를 위해 구현해야 하는 내용
CS8900A를 부트로더에서 사용하기 위해서 필요한 루틴은 다음 세 가지이다.
◆ CS8900A의 초기화
◆ CS8900A의 데이터 전송
◆ CS8900A의 데이터 수신


이 기능을 구현하기 위해서 코딩된 이지부트 소스 목록은 다음과 같다.

◆ include/cs8900.h : CS8900A를 제어하기 위한 각종 상수, 레지스터 관련 매크로 선언 헤더 파일
◆ main/cs8900.c : CS8900A 이더넷 칩을 구현하는 소스


이지부트에서 구현한 CS8900A의 소스를 볼 때 이지부트가 인터럽트를 지원하지 않는다는 점에 주의해야 한다. 그래서 CS8900A를 이용해 네트워크 데이터를 전송하거나 수신하고자 할 때는 폴링 방식을 이용해야 한다. 또한 꼭 필요한 기능만 구현하고 있기 때문에 부트로더에서 구현하고 있는 루틴은 리눅스 디바이스 드라이버보다는 구조가 더 간단하다.
앞서 언급했듯이 CS8900A는 매우 복잡한 장치이다. 그래서 CS8900A에 대한 특성을 지면 관계상 모두 설명하기는 곤란하다. CS8900A에 대해 자세하게 알고 싶다면 매뉴얼을 보면서 리눅스 디바이스 드라이버에서 구현한 소스를 참조하거나, 임베디드 리눅스 커뮤니티 사이트인 http://kelp.or.kr을 방문해 권수호 씨가 쓴 강좌를 참조하기 바란다. 리눅스에서 CS8900을 제어하는 방식에 대해 자세하게 기술돼 있다. 이 연재에서는 소스를 중심으로 가장 기본적인 내용에 대해서만 설명하겠다.

CS8900A의 하드웨어 주소와 레지스터
EZ-X5에서 CS8900A가 nCS0에 연결돼 있고 어드레스는 CPLD에 의해서 0x00400000 번지에 할당돼 있다. CS8900A는 무척 느린 장치이기 때문에 nCS0에 연결해 처리하고 있지만 실제 주소는 이 번지에 0x300을 더해야 한다. 이것은 CS8900A가 PC에서 사용되는 것으로 설계돼 있기 때문에 내부적으로 0x300 번지에 맵핑되어 있다. 그래서 실제 주소는 0x00400300이다. 이것은 cs8900.h 헤더 파일에 다음과 같이 선언돼 있다.

#define CS8900_BASE ( DEFAULT_nCS_CS8900_BASE + 0x300 )


CS8900을 제어하기 위한 레지스터는 각 주소에 맵핑되어 있다. 이지부트에서 사용되는 레지스터는 다음과 같다.

#define CS8900_RTX_DATA *((volatile short *)(CS8900_BASE + 0x00000000))
#define CS8900_TXCMD *((volatile short *)(CS8900_BASE + 0x00000004))
#define CS8900_TXLEN *((volatile short *)(CS8900_BASE + 0x00000006))
#define CS8900_ISQ *((volatile short *)(CS8900_BASE + 0x00000008))
#define CS8900_PPPTR *((volatile short *)(CS8900_BASE + 0x0000000a))
#define CS8900_PPDATA *((volatile short *)(CS8900_BASE + 0x0000000c))


각 레지스터의 기능은 뒤에서 다시 살펴보기로 하고 여기서는 간단하게 요약해 보자.

CS8900_RTX_DATA : 송신 또는 수신시의 데이터를 얻거나 쓰기 위한 주소
CS8900_TXCMD : 송신 명령을 쓰기 위한 주소
CS8900_TXLEN : 송신 데이터의 크기를 지정하기 위한 주소
CS8900_ISQ : 인터럽트 처리를 위한 주소
CS8900_PPPTR : 패킷 페이지를 지정하는 주소
CS8900_PPDATA : 패킷 데이터를 쓰거나 읽기 위한 주소



<그림1>CS8900A의 외형 및 핀 명칭



<그림2>CS8900A 연결 회로도
"Embedded" 카테고리의 다른 글
  • 부트로더의 네트워크 구현(1) - 4 (0)2005/08/10
  • 부트로터의 네트워크 구현(1) - 3 (0)2005/08/10
  • 부트로더의 네트워크 구현(1) - 2 (0)2005/08/10
  • 부트로더의 네트워크 구현(1) - 1 (0)2005/08/10
  • 부트로더와 플래시 메모리(2)-7 (0)2005/08/03
2005/08/10 14:02 2005/08/10 14:02
Posted by webdizen
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/1369

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1 ... 1771 1772 1773 1774 1775 1776 1777 1778 1779 ... 3009  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • Button
  • RC카
  • EnumDisplaySettings
  • 다음
  • 정보 공학 모델링
  • Multi-Rank
  • ICMP
  • 실체화
  • ER Conference
  • Windows Communication Foundation
  • 교착상태
  • Optimizer
  • 포인터 변수
  • 미래광장
  • JPG
  • Hardy Heron
  • 강력한 이름
  • 프레임워크
  • ie
  • 보드카

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • Lots of students know techn....
    Bobbi35Shannon 02/25
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Rodman®
      • ■ Feel So Good~! ■
      • 까만 나비
      • 나를 가꾸는 시간.
      • 나만의 즐거움~~!
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.