* 리눅스 시스템 내부구조 (3학년 2학기) 설계 과제
* 사용 언어 : C/C++ (QT)
* 개발 환경 : 리눅스 Fedora 7 (2.6.26.x) / Power Bread Board / 7-segment*2 /프린트 케이블 ...
* 개발 인원 : 6 (안영훈, 박준형, 손동학, 신혁수, 오수근, 오용오)



1. 개요 및 목표

 -. 프로젝트를 통한 리눅스 디바이스 드라이버 이해
 -. 7-세그먼트를 이용한 Stopwatch 디바이스 제작
 -. 문자 디바이스 드라이버 제작
 -. 어플리케이션으로도 디바이스 조작 및 화면 출력



2. 요구명세 (기능)
 
 -. 7-세그먼트 2개를 가지는 Stopwatch 제작 : 00 ~ 99초 까지 카운트
 -. Stopwatch Start 시작 버튼을 누르면 1초마다 카운트 증가
 -. Stopwatch Stop 정지 버튼을 누르면 카운트 멈춤
 -. Stopwatch Reset 리셋 버튼을 누르면 00으로 초기화
 -. Application으로 기능 조작



3. 디바이스 회로도



4. 디바이스 인터페이스



5. 어플리케이션 인터페이스



6. 모듈 설치 및 실행 방법

  a) /root/dev/project 에 파일 복사

  b) 모듈 적재 : start_device

  c) 스탑워치 실행 : ./stop_watch_app
크리에이티브 커먼즈 라이센스
Creative Commons License
2009/05/03 14:51 2009/05/03 14:51
Leave a Comment
[로그인][오픈아이디란?]

* 8051 Micro-processor Controller- 마이크로프로세서 인터페이싱 (3학년 1학기) 설계 과제
* 사용 언어 : C(board) / C#(controller)
* 개발 환경 : C51 Compiler(board) /   Visual Studio 2005(controller)
* 개발 인원 : 1


1. 개발 목적
  -. 8051 Microprocessor와 PC 간의 Serial 통신
  -. PC에서 8051보드로의 원격제어(시리얼)
  -. 8051에서 PC로의 정보 전송


2. 기능 및 동작
  –. 시리얼연결 : Port, Baudrate
  -. LED Operation(On/Off)
  -. ADC Operation(On/Off, Sample Time)
  -. ADC 값 그래프 출력
  -. 보드의 LCD 화면을 PC에 출력
  -. 보드 LCD에 메시지 출력
  -. Log 파일 저장
  -. 통신 종료


3. 프로토콜

사용자 삽입 이미지


4. 화면 구성


8051 소스코드

크리에이티브 커먼즈 라이센스
Creative Commons License
2008/07/01 21:49 2008/07/01 21:49
Leave a Comment
[로그인][오픈아이디란?]
* 스택(Stack) 계산기 - C프로그램설계(2학년 1학기) 4차 설계 과제
* 사용 언어 : C
* 개발 환경 : Linux / vi editor
* 개발 인원 : 1

1. 문제정의

: 계산식을 사용자로부터 입력받고 입력받은 문자열을 스택을 이용하여 숫자와 연산자를 추출하여 계산하는 프로그램을 작성한다.

NSD


2. 요구사항
 
  -. 사용되는 문자는 +, -, *, /, ^, (, )이다.  ^는 지수를 의미한다. (예, 2^3=8)
  -. 음수 부호를 인식하고 실행해야 하며 음수를 위해 괄호를 할 수도 안할 수도 있다.
    (예, 2+-3=-1이고 -2^3과 (-2)^3은 같은 값임)
  -. 정수뿐만 아니라 실수 연산도 가능해야 한다.
  -. 괄호의 짝이 맞지 않을 경우 실패를 리턴 한다.
  -. 결과 출력 시 후위 표기법도 같이 나타낸다.


3. 주요 자료구조

token_t postfix_stack[STACK_SIZE]; // 후위식 변환을 위한 스택 
double eval_stack[STACK_SIZE]; // 후위식 계산을 위한 스택
// 토큰 타입 열거형
typedef enum { EOS, OPERAND, POINT, LPAREN, RPAREN, UPLUS, UMINUS,
EXPONENT, PLUS, MINUS, MULTIPLY, DIVIDE, UNKNOWN_SYMBOL
} token_t;
// 토큰 구조체
typedef struct {
token_t type;
double value;
} TOKEN;


실행화면
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/07/01 19:20 2008/07/01 19:20
  1. 공대생
    2008/11/04 10:46
    스틱 계산기 소스점 얻을수 있을까 해서 이렇게 글을 남김니다.
    도저히 머리가 돌아 가질 않아서~ㅠㅠ
    juyoung3410@nate.com 부탁 드리겠습니다~^^
Leave a Comment
[로그인][오픈아이디란?]
* 도서관리프로그램 - C프로그램설계(2학년 1학기) 3차 설계 과제
* 사용 언어 : C
* 개발 환경 : Linux / vi editor
* 개발 인원 : 1

1. 문제정의
: 도서관리프로그램을 C언어로 구현한다.

시스템 구조도

2. 요구사항
-. 사용자는 “실행파일명 도서리스트파일명 학생정보파일명”을 입력하여 프로그램을 구동한다.
-. 사용자가 “도서 입력”을 선택하면 새로운 도서를 입력 받아 저장한다.
-. 사용자가 “도서 검색”을 선택하면 도서를 검색하고 결과를 출력한다.
-. 사용자가 “도서 대출”을 선택하면 대출 과정을 진행한다.
-. 사용자가 “도서 반납”을 선택하면 반납 처리한다.
-. 사용자가 “도서 폐기”를 선택하면 폐기 처리한다.
-. 사용자가 “도서 대출 현황”을 선택하면 학번을 입력받고 대출된 책 리스트를 출력한다.
-. 사용자가 “도서 목록 출력”을 선택하면 모든 도서를 화면에 출력한다.
-. 사용자가 “학생 정보 입력”을 선택하면 새로운 학생의 성명, 학번, 학과(부)를 입력한다.
    동명이인은 가능하고 학번은 유일하다.
-. 사용자가 “종료”를 선택하면 새로 입력된 도서 및 학생 정보를 파일에 저장하고 프로그램을 종료시킨다.
 
실행화면

3. 주요 자료구조

펴기..



 최대한 중복되는 기능은 모두 함수화하려고 노력하였지만, 단순히 자료형의 타입이 달라서 각 타입별로 함수를 만들 수밖에 없었다. 예외처리에 있어서는 키보드 입력 실수에 의한 처리는 배제하고 프로그램의 기능적 예외처리에 신경을 많이 썼고, 완벽하게 처리하지 못했던 부분들이 아쉽게만 느껴진다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/07/01 17:28 2008/07/01 17:28
  1. oming
    2008/12/03 20:39
    이야... 찾던소스가 여기있군요 ^^
    너무 잘만드셨네요.

    완성본 소스좀 받을수 없을까요 ^^?
    저도 이런 프로그램 한번 만드는데 도움좀 받고싶어서 이렇게 글을 남깁니다.
    즐거운 하루 되세요~
  2. 이영용
    2009/06/12 20:02
    이거 제가 정말 필요로 하는 프로그램이네요.
    어떻게 퍼갈수 없을까요?ㅠㅠ
    너무 잘 짜신거 같아요. 퍼갈수 있게 방법 좀 알려주세요.ㅠㅠ
Leave a Comment
[로그인][오픈아이디란?]
* Network Monitor Protocol - 컴퓨터네트워크(3학년 1학기) 3차 설계 과제
* 개발 언어 : Java
* 개발 환경 : Windows XP / Netbeans 6.0
* 개발 인원 : 4 (with 혁수, 수근, 대호)


1. 문제 정의
 인터넷에서 장치를 감시하고 관리하기 위한 간단한 프로토콜을 디자인하고 구현해 봄으로써 네트워크 프로토콜의 동작원리에 대한 이해도를 높일 뿐만 아니라 새로운 프로토콜의 디자인 방법을 익힌다.


2. 프로토콜 개요
 디자인할 프로토콜의 구성은 아래 그림과 같이 Manager와 Agent로 구성된다. Agent는 관리대상이 되는 네트워크 장치/시스템에 설치되어서 필요한 정보(네트워크 또는 시스템)를 수집하기 위한 모듈이며, Manager는 Agent가 설치된 시스템에 필요한 정보를 요청하는 모듈이다.


3. 요구사항

 A. 명령어
    - GET: Manager에서 Agent로 특정 정보를 요청하기 위해서 사용한다. 요청 정보는 IP, MTU, 시스템이 수신한
     총 패킷 수 및 총 바이트 수, 전송한 총 패킷 수 및 총 바이트 수, 각 프로토콜(IP, TCP, UDP,…) 별 패킷 수
     및 바이트 수 등이 될 수 있다. 어떤 요청 정보를 사용할지는 각 팀에서 결정한다(단, 10개 이상).
    - SET: Manager에서 Agent로 특정 값을 설정하기 위해서 사용한다. 설정할 정보는 새로운 IP 및 MTU 설정,
     요청 정보 중 일부 값을 0으로 초기화 등이 될 수 있다. 이 또한 각 팀에서 결정한다(단, 10개 이상).
    - TRAP: Agent에서 통보해야 할 어떤 정보가 발생했을 때(임계치를 넘는 네트워크자원 사용 등) Manager에게
     해당 상황을 알리기 위해서 사용한다. 어떤 상황에서 알릴지는 각 팀에서 결정한다(단, 2개 이상).

 B. Agent 등록
    - 각 Agent는 Manager에 접속하여 등록한다.
    - Manager는 등록이 정상적으로 처리되었다는 메시지를 전달한다.
    - 등록 절차, 메시지 구조, Manager에서의 관리 방안 등은 각 팀에서 결정한다.

 C. 정보 수집
    - Agent는 패킷 캡쳐 툴을 이용하여 각 팀에서 결정한 정보를 수집한다.
    - 각 팀에서 결정한 정보 중에서 송수신 패킷 수 및 바이트 수 등과 같이 Agent가 직접 얻을 수 없는 값은
     랜덤 함수를 이용하여 값을 생성한다. 이는 실제 패킷 캡쳐 프로그램을 구현하여 얻어야 하지만 프로그램이
     불가능하기 때문이다.

 D. 정보 요청 및 출력
    - 정보 요청에 대해서는 두 가지 모드로 동작한다: 주기적 요청, 수동 요청.
    - 주기적 요청은 Manager가 일정 주기로 각 Agent에게 정보를 요청한다.
    - 수동 요청은 사용자로부터 어떤 정보를 요청할지 입력받고 해당 Agent에게 요청한다.
    - 수동 요청에서만 SET 명령어를 사용할 수 있다.
    - 동작 모드는 Manager가 실행될 때 입력 값으로 주어진다.
    - 정보 요청, 응답 절차, 메시지 구조 및 화면 출력 등은 각 팀에서 결정한다.


4. 프로토콜 정의 및 기능명세

 4.1. Command Message
  - Manager에서 Agent로 Packet를 전송
  - Agent에서 Packet를 수신하고 Packet의 명령어에 따라 설정을 변경하거나 데이터를 전송
    4.1.1. 기능
      - Manager에서 Agent의 setting value를 변경가능
      - Agent에서 전송받은 Packet의 Command를 분석하여 명령어에 해당하는 동작을 수행
    4.1.2. Command Protocol
     번호  명령    의미 
     0      GET     Manager에서 Agent로 특정 정보를 요청하기 위해 사용되는 명령어
     1      SET     Manager에서 Agent로 특정 값을 설정하기 위해서 사용되는 명령어
     2      TRAP   Agent에서 Manager에게 특정 정보를 바로 알리기 위해 사용되는 명령어
     3      CON    접속 확인 후 Manager는 Agent에게 ID를 전송
 4.2. TYPE Message
  - Type에 따라 Agent의 특정정보를 지정가능
    4.2.1. 기능
     - 특정커맨드를 이용 정보요청을 하거나 값들을 변경하기 위해 각 값들을 지정
     - 특정 설정값들에 대한 명령들을 내리기 위한 필수적인 요소
    4.2.2. TYPE Protocol
     번호  명령어    의미 
     0      ALL        Agent의 모든 설정값
     1      SNM        Agent의 SubNet Mask
     2      PW         Agent의 Password
     3      MTU        Agent의 Maximum Transmission Unit
     4      NIP        Agent가 가진 다음 라우터의 IP주소
     5      NPT        Agent의 가진 다음 라우터의 PORT
     6      RLS        Agent 라우터의 제한속도
     7      TTL        Agent의 특정 요청이 얼마나 살아있을것인지 결정하는 값
     8      RTP        Agent가 받은 총 패킷수 
     9      STP        Agent가 보낸 총 패킷수
     10     RN         Agent의 라우터 이름

시스템 구조도


5. 주요 자료구조

펴기..



Manager

Agent

크리에이티브 커먼즈 라이센스
Creative Commons License
2008/06/25 14:32 2008/06/25 14:32
Leave a Comment
[로그인][오픈아이디란?]