최종 수정일 : 2001년 9월 2일
글쓴이 : 윤 일(admin@rootman.org)

HOW-TO Configuration aliases(/etc/aliases)


요약...
aliases 파일은 vitusertable과 비슷한 역활을 하는 파일이다. 하지만 vitusertable과는 달리 도메인별로는 설정할 수 없고
단지 가상의 유저명 혹은 실제 유저명으로만 설정할 수 있다는 단점이 있지만 특정 유저명으로 오는 메일을 여러 사용자에게
또는 외부 SMTP로 포워딩할 수 있다는 장점을 가지고 있다. 이러한 이유때문에 소규모의 메일링 리스트를 운영할 때 종종 사용된다.
...
...

출처 및 본 자료 : 네이버 루트맨님의 블로그

리눅스(linux)에서 ssh 접속시 접속 계정을 제한 할 수 있다.

/etc/ssh/sshd_config

파일을 vi로 연다.



1. 접속자 제한

AllowUsers 계정, 계정.... 계정

이 부분을 추가한다. 적혀있는 계정만이 접속이 가능하다.
아마두, DenyUsers는 막는 것이지 않을까?
근데 AllowUsers 에 없으면, 접속이 안되니, DenyUsers는 필요 없을지도 @^-^@


2. root 계정 접속 제한/허용

PermitRootLogin yes  
이렇게 하면, root가 원격에서 접속 가능
PermitRootLogin no
이렇게 하면, root는 로컬에서만 접속이 가능하다.
즉, 다른 계정(접속이 허용된)으로 접속한 뒤 "su -"를 통해 root로 접속이 가능하다.
이는, 외부에서 root계정을 해킹하여 접속하는 것을 막아주어 의외로 보안에 큰 효과를 볼수 있다.

'도서관 I > 리눅스' 카테고리의 다른 글

[펌] sendmail 구축및 설정  (0) 2007.05.17
[펌] aliases 설정법  (0) 2007.05.09
[펌] crontab 사용법  (0) 2007.05.07
[펌] 서버 관리를 위한 ssh 서버 보안세팅  (0) 2006.10.30
[바람이] gdb의 간단한 사용법  (2) 2006.09.19

출처 : 네이버 초록몽 님 블로그


crontab 사용

정기적으로 수행하고자 하는 cron 작업을 관리.


문법

  • crontab [ -e | -l | -r | -v | File ]
 e: 편집 l: 리스트(조회) r: 제거 v: 작업상태
 

crontab 내용 편집

  • crontab -e
  • 형식: minute(분) hour(시) day_of_month(일) month(월) weekday(요일) command(명령)
 minute(분) 0 - 59 
 hour(시) 0 - 23 
 day_of_month(일) 1 - 31 
 month(월) 1 - 12 
 weekday(요일) 일요일부터 금요일까지를 나타내는 0 - 6 
 command(명령) 쉘 명령
 

예) 디렉토리 backup

 

  • shell scipt 작성(backup.sh, 디렉토리 /source를 archive하여 백업)
 
#!/bin/sh 
/bin/tar cvfz /backup/backup-`date +%Y-%m-%d`.tar.gz /source 
 
 
  • crontab 등록
 
59 23 * * * /bin/backup.sh
 

매일 23:59 분에 /bin/backup.sh가 실행되어 /source 디렉토리의 모든 파일이

/backup/backup-20051201.tar.gz 과 같은 형태로 저장된다.


파비콘이란?

즐겨찾기 아이콘. 즐겨찾기(facovities)와 아이콘(icon)의 합성어로, 주소창에 조그만 아이콘으로 표시되어 있다. 아이콘 에디터로 16x16 크기의 적당한 아이콘을 만든 후 그 이름을 favicon.ico로 한 다음 웹 사이트루트 디렉터리에 갖다 넣으면 된다.

다음은 이미지를 파비콘으로 제작해주는 싸이트의 주소이다.

해당 싸이트에 접속하여, 이미지를 업로드 한뒤에 Generate FavIcon.ico을 누르면
해당 이미지를 파비콘으로 제작해 준다.

http://www.chami.com/html-kit/services/favicon/




위의 파일을 받아서 인스톨 합니다.
특정한 설정없이 모두 OK 정도로 인스톨 하시면 됩니다.

이상없이 인스톨이 끝났다면, 해당 컴퓨터에는 CVS Client가 깔렸다고 보시면 됩니다.

이 문서는, 어딘가에 CVS 서버(CVSNT)가 깔려있다고 가정하고 작성되어 있습니다.

다른 이와 공유하여 프로젝트를 진행할 폴더를 생성합니다.
해당 폴더를 내컴퓨터로 연뒤에 우클릭을 하게 되면, 두가지 메뉴가 추가되어 보이게 됩니다.

CVS 체크 아웃
CVS

CVS 체크 아웃을 선택하게 되면 다음과 같은 창이 뜨게됩니다.

사용자 삽입 이미지

이때 CVS 서버 관리자에게 계정을 받아야 하며, 서버의 주소를 알아야 합니다.
그리고, 지정된 cvsroot 명을 알아야 합니다.
서버에 올려진 모듈명은 목록가져오기를 통해 쉽게 가져올 수 있습니다.

CVSROOT : 란에 형식에 맞게 작성을 하시면, 나머지는 자동으로 채워집니다.

모두 작성한 뒤에 확인을 누르게 되면, 새로운 창에 정상적으로 가져온 표시가 됩니다.
만일 정보가 정확하지 않다면, 이때 빨간색의 오류를 출력하며, 실행이 취소됩니다.
취소가 될 경우 정보를 다시 확인하시고 확인을 눌러주시기 바랍니다.

동기화가 성공하였다면, 해당 폴더 내에서 우클릭시에 메뉴가 더 있게 됩니다.

CVS 업데이트
CVS 수정
CVS 커밋
CVS 파일추가
CVS

각각은 눌러보시면 다 아실것입니다.
중요한 것은 CVS 커밋입니다.
CVS 커밋은 모든 작업이 완료되면, 실제로 서버에 반영되는 것이며,
의미상으로도 되돌릴수 없는 명령입니다.
즉, 이전 버전을 최신 버전으로 갱신하는 것입니다.

이때, 만약 서버에 있는 파일이 처음 받았던 파일 그대로이면, 정상적으로 커밋이 됩니다.
하지만, 문제는 내가 받은 뒤에 남이 또 받아서 수정하여, 다시 올린 상태라면,
두 파일은 합병이 되어야만 합니다.

코드의 경우에는 합병을 할 수 있지만, 바이너리 데이터 파일 (PPT, HWP,등등)은  합병이 불가능합니다.
때문에, 커밋되지 못하고, 원본은 (자신의 파일) 백업되며, 서버의 파일로 대체되게 됩니다.
그러면, 자신의 원본 파일과, 서버에 있던 파일을 열어, 비교해보고, 수정할 것을 반영한 뒤에 다시 올려야만 합니다. (이때는 다시 위의 경우와 같습니다. 자신이 받은 원본일 경우 커밋이 완료됩니다.)

그리고, 파일 아이콘에 표식이 붙은 것에 따라 종류가 달라지게 됩니다.

? : 아직 클라이언트의 cvs에도 등록되지 않았음
+ : 파일의 우클릭을 통해서 cvs에 추가가 되었음 (클라이언트에만)
v : 서버에 정상적으로 commit 되었음
< : 서버에 동기화 된 후 클라이언트에서 수정되었음

중요한 것은 이것이였구요. 나머지는 잘 살펴보시면 될 듯합니다.

에궁... 그럼...



덕분에 윈도우 2003에 CVS를 잘 깔아서 사용중입니다.

그런데, TortoiseCVS는 좀 개념이 어려웠다는... 흑흑...

다음에 더 공부해야겠네요.

그럼

* 출처 : 네이버 xodim님 블로그

윈도우2003에서 CVSNT + TortoiseCVS 설치하기 (1)

윈도우2003에서 CVSNT + TortoiseCVS 설치하기 (2)

윈도우2003에서 CVSNT + TortoiseCVS 설치하기 (3)

윈도우2003에서 CVSNT + TortoiseCVS 설치하기 (4)

객체지향 원칙
 - 바뀌는 부분은 캡슐화 한다.
 - 상속보다는 구성을 활용한다.
 - 구현이 아닌 인터페이스에 맞춰서 프로그래밍 한다.
 - 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는
   디자인을 사용한다.
 - 클래스 확장에 대새서는 열려 있지만 변경에 대해서는 닫혀 있어야 한다.
 - 추상화된 클래스에 의존 하고 구현 클래스에 의존 하지 말라


1. Iterator 패턴

정의 1 : 무엇인가가 많이 모여 있는 것 중에서 하나씩 끄집어내어
      열거하면서 전체를 검새하면서 처리하는 패턴
정의 2:  컬렉션이 어떤 식으로 구현되었는지 드러내진 않으면서도
         컬렉션 내에 있는 모든 객체에 대해 반복 작업을 처리 할 수
   있도록 한다.

Itarator Pattern

사용자 삽입 이미지

2. Apapter 패턴

정의1 : 이미 제공하는것과 필요한것 과의 사이의 간격을 메우는 패턴
         Wrapper 패턴이라고도 함.
 ※ 클래스에 의한 Adapter패턴(상속을 이용한 것)
 ※ 인스턴스에 의한 Adapter패턴 (위임을 이용한것)
정의2 : 객체를 감싸서 다른 인터페이스를 제공 한다.

 ※Apapter는 Target 인터페이스를 구현하고 Adaptee클래스를 상속받는다

   Apater메서드는 상속받은 Apaptee의 메서드로 위임 시킨다.

Adapter Pattern

사용자 삽입 이미지

3. Template Method 패턴

정의1 : 상위 클래스에서 처리의 흐름을 정하고 하위 클래스에서 구체적인 내용을 결정하는
        디자인 패턴
정의2 : 알고리즘의 개별 단계를 구현하는 방법을 서브 클래스에서 결정 한다.

Template Method Pattern

사용자 삽입 이미지

4. Factory Method 패턴

정의1 : 인스턴스를 생성하는 공장을 Template Method패턴으로 구성한 것이 Factory Method 패턴이다.
정의2 : 생성할 구상 클래스를 서브 클래스에서 결정

Factory Method Pattern

사용자 삽입 이미지

5. Singleton 패턴

정의1 : 지정한 클래스의 인스턴스가 반드시 1개만 존재하도록 하는 패턴
정의2 : 딱 한 객체만 생성되도록 한다.

Singleton Pattern

사용자 삽입 이미지

6. Prototype 패턴

정의1 : 클래스로부터 인스턴스를 만드는것이 아니라 인스턴스를 복사해서 새로운 인스턴스를 만듭니다.
정의2 : 어떤 클래스의 인스턴스를 만드는것이 자원/시간을 많이 잡아 먹거나
  복잡한 경우에는 프로토타입 패턴을 쓴다.

 ※ 종류가 너무 많아 한개의 클래스로  할 수 없는 경우
 ※ 클래스로부터 인스턴스를 생성하기 어려운 경우
 ※ 프레임웍크와 생성할 인스턴스를 분리하고 싶은 경우
 ※ 클라이언트에서는 새로운 인스턴스를 만드는 복잡한 과정을 몰라도 된다.
 ※ 클라이언트에서는 구체적인 형식을 모르더라도 객체를 생성할수 있다.
 ※ 상황에 따라서 객체를 새로 생성하는 것보다 객체를 복사하는것이 더 효
 율적이다.

Prototype Pattern

사용자 삽입 이미지

 7. builder 패턴

 정의1 : 구조를 가진 인스턴스를 쌓아 올리는 패턴
 정의2 : 제품을 여러 단계로 나눠서 만들 수 있도록 제품 생산 단계를 캡슐화하고 싶을때
         사용

Builder Pattern

사용자 삽입 이미지

 8. Abstract Factory 패턴

 정의1 : 추상적인 부품을 조립해서 추상적인 제품을 만드는 추상적인 공장 같은 패턴
 정의2 : 클라이언트에서 구상 클래스를 지정하지 않으면서도 일군의 객체를
         생성할 수 있도록 하는 패턴

Abstract Factory Pattern

사용자 삽입 이미지

 9. Bridge 패턴

 정의 1: 기능의 클래스 계층과 구현의 클래스 계층을 분리하는 패턴
 정의 2: 구현 뿐만 아니라 추상화된 부분가지 변경시켜야 하는 경우 사용

Bridge Pattern

사용자 삽입 이미지

 10. strategy 패턴

정의1 : 알고리즘을 교체해서 동일한 문제를 다른 방법으로 해결 하는 패턴
정의2 : 알고리즘군을 정의하고 각각을 캡슐화하여 바꿔 쓸 수 있게 만듦
        스트래티지 패턴을 이용하면 알고리즘을 활용하는 클라이언트와 독립적으로 알고리즘을
        변경할 수 있다.

Strategy Pattern

사용자 삽입 이미지

11. Composite 패턴

정의1 : 그룻과 내용물을 동일시해서 재귀적인 구조를 만드는 패턴
정의2 : 클라언트에서 객체 컬렉션과 개별 객체를 똑같이 다룰수 있도록
    함

Composite Pattern

사용자 삽입 이미지

12. Decorator 패턴

정의1 : 객체에 장식을 해가는 패턴
정의2 : 객체에 추가 요소를 동적으로 더할 수 있습니다.
         데코레이터를 사용하면 서브 클래스를 만드는 경우에
   비해 훨씬 유연하게 기능을 확장할 수 있다.

Decorator Pattern

사용자 삽입 이미지

13. Visitor 패턴

정의1 : 데이터 구조와 처리를 분리 한다. 데이터 구조 안을 돌아다니는 주체인
 '방문자'를 나타내는 클래스를 준비해서 그 클래스에게 처리를 맡긴다.
정의2 : 다양한 객체에 새로운 기능을 추가해야 하는데 캡슐화가 별로
        중요하지 않은 경우에는 비지터 패턴을 사용한다.

Visitor Pattern

사용자 삽입 이미지

14. Chain of Responsibility
정의1 : 어떠한 요구가 발생 했을때  그 요구를 처리할 객체를 바로 결정 할 수 없는
 경우에는 다수의 객체를 사슬처럼 연결해 두고 객체의 사슬을 차례로 돌아다니면서
 목적에 맞는 객체를 결정하는 패턴
정의2: 한 요청을 두 개 이상의 객체에서 처리하고 싶다면 역할 사슬 패턴을 사용한다.

Chain of Responsibility Pattern

사용자 삽입 이미지

15. Facade 패턴
정의1 : 대규모 프로그램을 사용해서 처리를 하려면 서로 관련 있는 많은 클래스들을
 적절히 제어 해야 한다. 많은 클래스들을 제어하기 위해서는 '창구'를 준비해야 한다.
 그렇게 하면 많은 클래스들을 개별적으로 제어하지 않아도 '창구'에게 요구만 하면
 일이 끝나기 때문이다.
정의2 : 일련의 클래스에 대해서 간단한 인터페이스를 제공하는 패턴

Facade Pattern

사용자 삽입 이미지

 

Factory Method Pattern

사용자 삽입 이미지

16. Mediator 패턴

정의1 : 마치 카운셀러 처럼 각 멤버로 부터 올라온 보고를 토대로 대국적인 팥단을 해서
 각 멤버에게 지시를 내리는 패턴
정의2 : 서로 관련된 객체 사이의 복잡한 통신과 제어를 한 곳으로 집중시키고자 하는 경우에
        는 미디에이터 패턴을 사용한다.

Mediator Pattern

사용자 삽입 이미지

17. Observer 패턴
정의1 : 관찰대상의 상태가 변하면 관찰자에게 통지되는 패턴
        상태 변화에 따른 처리를 가술할때 유효함
정의2 : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이
        가고 자동으로 내용이 갱신되는 방식으로 (one-to-many)의존성을 정의 한다.
정의3 : 자바에서 지원하는 java.util.Observer가 있으며 푸시(subject가 보내는),풀 방식
        (옵저버에서 Observale객체로부터 원하는 데이터를 가져 오는 방식)이 있다

Observer Pattern

사용자 삽입 이미지

18. Memento 패턴

정의1 : 상태를 보존한다. 어떤 시점에서의 인스턴스의 상태를 기록해서 저장
 해두었다가 나중에 인스턴스를 그 시점의 상태로 되돌리는 패턴
정의2 : 객체를 이전의 상태로 복구시켜야 하는 경우에는 메멘토 패턴을 쓰
  면 된다.

Memento Pattern

사용자 삽입 이미지

19. State 패턴

정의1 :상태를 클래스로 표현하는 패턴
정의2 : 상태를 기반으로 한 행동을 캡슐화한 다음 위임을 통해서 필요한 행동을
        선택 한다.

State Pattern

사용자 삽입 이미지

20. Flyweight 패턴

정의1 : 인스턴스를 가능한 한 공유시켜 쓸데없이 new를 하지 않도록 하는 패턴
정의2 : 어떤 클래스의 인스턴스 한개만 가지고 여러 개의 "가상 인스턴스"를 제공하
  고 싶다면 사용한다.

Fly Weight Pattern

사용자 삽입 이미지

21. Proxy 패턴

정의1 : 바빠서 그 일을 할 수 없는 본인 객체 대신에 대리인 객체가 어느 정도 일을 처리
 해주는 패턴
정의2 : 객체를 감싸서 그 객체에 대한 접근을 제어 한다.

Proxy Pattern

사용자 삽입 이미지

22. Command 패턴

정의1 : 명령을 클래스로 만든다.
정의2 : 요청을 객체로 감싼다.


Command Pattern

사용자 삽입 이미지




DAMAGE: after Normal block (#XXX) at 0xXXXXXXXX

위와 같은 "Microsoft Visual C++ Debug Library" Error가 발생할 때가 있다.
이때 XXX 부분들(파랑)은 각기 다르게 나타날수가 있다.
이는 대부분이 잘못된 메모리 영역의 참조에 의해 발생한다.
아래의 예를 보자.


영역 참조의 잘못된 예 (Language : c)
  1. int *a;
  2. int b=20 , i;
  3. a = new int[b];
  4. for(i=0;i<b+1;i++) // 사실 이부분이 잘못 됬는데
  5. {
  6.     a[i] = i;
  7. }
  8. delete [] a; // 엉뚱한 이곳에서 오류가 나타남 이걸 지우면 오류 안뜸


b+1이부분은 고의적으로 만들었지만 실수로 이럴수 있기 때문에..
원인은 할당 영역을 벗어난 곳에 손을 대면 이런거라는걸 알 수 있다.

즉 a배열은 20까지밖에 없는데 21번 index까지 작업하기 때문에 오류가 있다.
이때 delete를 하게 되면 위와 같은 오류가 발생이 가능하다.

해제하려는 메모리가 정확하게 잘 참조하였는지 확인하자.

본 자료는 다음을 참고하였다.

참고 : http://blog.naver.com/yjh1990/130000599620

정말 설정하는데 어려움이 많아서 host와 board를 연결하는 메뉴얼을 만들어봅니다.
이래두 안되면... 저두 잘 모르니... @^-^@



1. Board와 OpenICE A900연결 모습

사용자 삽입 이미지
사진의 왼쪽이 OpenICE A900의 모습입니다.
뒤로 나가는 회색선이 USB선입니다. 이선의 다른 끝은 host(노트북이나 데스크탑 컴)의 USB로 연결합니다.
뒤로 나가는 검은선은 전원입니다. 전원에 팍! 꼽아주시길...
사진의 오른쪽이 MBA2440 board입니다.
뒤로 나가는 회색선이 serial line입니다. host의 serial port(COM1~4)에 꼽아주시길...
그리고 역시 뒤로 나가는 검정선은 전원입니다. 전원에 역시 팍!!!
그리고 IDE cable처럼 생긴 선을 OpenICE A900의 앞과 MBA2440 board의 뒤에 연결하여 꼽아주세요.



2. 이제 board와 host의 연결은 끝났습니다. 이제 host에서 사용할 프로그램들을 install입니다.
Board를 사면 같이 제공받는(아님, P2P에서 받으시거나) ARM Developer Suite을 받아서 인스톨 합니다. (현재 저는 v1.2를 사용)
사용자 삽입 이미지

사진에서 install을 눌러 살포시 install합니다. 자세한 화면은 생략~



3. 다음은 spider를 인스톨합니다. ADS에 이미 debugger가 있지만, 저는 spider를 사용하기 위해서 인스톨합니다. 혹, 사용하지 않고 따로 하실분은 알아서 하시길~(@^-^@;;; 저두 잘 몰라요~)
단, spider는 v1.90 patch를 사용합니다. 다른 버전을 사용하면, OpenICE A900과 안맞는다고 하네요. 저두 들은 이야기라 아무튼, 다른 것으로 하면 안될 수도 있으니 v1.90으로 인스톨하시길.


spider1_90patch 20060223

4. 아마도 지금까지 하시게 되면, board의 전원을 켰을 경우에 host 윈도우에서 "새 하드웨어 검색"이 뜰것입니다. 만약 뜨지 않는다면, 살포시 재부팅을 해보시길...(그래두 안되면, 아시죠? 저두 모르는거~ @^0^@)
이때, "새 하드웨어 검색"이 뜬다면, 드라이버를 요청할 것입니다. "USB driver"를 요구할텐데, 이때 spider를 인스톨할 폴더 중에 "C:\Program Files\Spider\Drv\A900\"에서 탐색하시면, 정상적으로 드라이버가 깔립니다. (화면 생략)



5. 이제 제일 어려운 설정들만이 남았네요. 지금부터가 정말 어렵습니다. 왜냐구요? 그때그때 달라요~~~ 거든요... 잘 해쳐나가시길~~~
먼저 spider가 MBA2440의 각종 설정들을 인식할 수 있게 MBA2440.dev 파일을 복사해줍니다.
이 파일은 board를 산 곳이나, 다른 P2P, 혹은 아래 링크에서도 찾을수 있습니다.

MBA2440.dev

위 파일을 "C:\Program Files\Spider\Device\"에 복사해줍니다. 이로서 spider는 MBA2440이라는 board를 인식할 수 있습니다.



6. 이제 host에 깔린 spider를 실행시켜봅시다.

사용자 삽입 이미지

사진과 같은 화면이 뜬다면 지금까지는 성공이네요.



7. 이제 Ctrl+E나 Option->Configure Interface를 클릭합니다.
그럼 아래와 같은 Option 화면이 뜨게 됩니다.
사용자 삽입 이미지
이제 정말 중요한 board와 host를 서로가 서로를 인식하게 만드는 설정입니다.
우리는 첫그림에서 보았듯이 USB를 통해 board와 host가 통신을 할 것입니다.(serial은 나중에 화면으로 보기위해 통신할 것이구요.)
때문에 USB를 선택하시면 됩니다. 옆에 Baud Rate는 지금은 안보이실 수도 있습니다. 설정이 되면 값이 보일테니 걱정하지 마세요.



8. 이젠 SMU tab을 클릭합니다.
사용자 삽입 이미지

위와 같은 그림에서 Device name은 다른 이름으로 되어있을겁니다. 이 콤보 박스를 내려보면 "MBA2440"이 보일 겁니다. 이를 선택~!!! (아까 우리가 복사한 MBA2440.dev 기억나시죠? 그 파일 덕분에 지금 화면에 보이는 겁니다. 참고!)



9. 다음은 Debugger tab을 클릭합니다.
사용자 삽입 이미지
여기 부분은 저두 정말 잘 모릅니다.
우선 저희는 LittleEndian을 사용합니다. (저는 그래요.)
그리고 그림에서 보듯이 "SysReset Enable" , "TRST Enable" , "SMU Always Init"를 체크합니다. 의미요? 저두 몰라요. 우선 이리 하니 연결되네요.



10. 다음은 Flash config tab은 넘어갑니다. 왜요? 설정 변경할것이 없어서... (잘 몰라요. ㅋㅋ)
그래서, 다음은 Processor tab을 클릭!!!
사용자 삽입 이미지
자... 이제 마음의 준비를 단단히 하시기 바랍니다. Detect를 살포시 눌러주시기 바랍니다.
바로 그림처럼 ARM920T 가 인식이 된다면 성공!!! 축하합니다. 정말로!

하지만, 대부분의 분들이 안되실 겁니다.  대략 안습...
(Error:844 ) : 아마도 Board와의 연결상태를 다시 함 살펴보심이... 경험상 board와 연결이 잘 안되서 그런 것 같습니다. AIJI에서는 정말 무책임한 Error code만 반환한다는...
MBA2440과 OpenICE A900의 전원을 껐다가 켜보시길...
(Error:506 ) : 아마 위의 Option들 중에 잘 안맞는 경우가 있을 수도 있습니다. (확신을 저두 못하는 거죠~~~ @^-^@;;; ) 특히 3번째인 Debugger tab에서 채크하는 것들을 여러개 해보시거나, AIJI에 문의하시기 바랍니다.
저 같은 경우에는 OpenICE A900에 있는 USB 를 몇번 뺐다 꼽았다 하니 인식되더군요.
세상이 다 그런거 아니겠어요? ㅋㅋ


11. 지금까지 모든 것이 잘 되었다면, 다음으로 넘어가셔도 됩니다. 아니라면, 밑에 부분은 실행이 안될테니까요. 아무튼, 행운을 빕니다.


MBA2440test V2.0.zip

다음 파일을 받아서 압축을 풀어보면 MBA2440_test_v2.0이라는 폴더가 생깁니다.
즉, test하는 프로그램이죠. 근데 안에를 보면 UART부터 LCD, flash memory까지 접근하는 interface code들이 들어있습니다. 이를 잘 수정하여 재 사용하면, 원하는 작업을 할 수 있겠죠?



12. 자 이제 dnw 프로그램을 수행시킵니다. 이는 Hyper Terminal로서 위에서 이야기 했던 화면에 UART로 출력되는 것을 host에서 serial port를 통해 볼수 있는 프로그램입니다.(저두 잘 모름) 아무튼, 이를 수행합니다. 그리고 DNW 프로그램에서 "Serial Port -> Connect"를 클릭하시면 dnw 프로그램 위에 "[COM1,115200bps][USB:x]" 라고 뜹니다. (전 COM1에 연결했기때문에) 만약 이게 안뜬다면, board연결이 안된것이겠죠? 행운을 빌어요.
사진은 생략합니다.
spider프로그램을 실행하고, Ctrl+J나 File->Load Image를 클릭하시고, 위에 11번에서 다운받은 test 프로그램의 폴더에 "위에 푼 폴더명\MBA2440_test\MBA2440_test_Data\DebugRel"에 MBA2440_test.axf 파일을 load합니다.
그럼 2440init.s 라는 소스가 보이면서 debugging이 시작됩니다. F8을 눌러 go!합니다.

이제 spider 프로그램 밑에는 프로그래스 바가 왔다리갔다리하게되구요.
이때 DNW프로그램을 보면 먼가 쫙 나와있는 모습이 보입니다.
사용자 삽입 이미지

자~~~ 축하합니다. 이제 test program까지 실행했네요.

부족했지만, 많은 도움이 되었으면 하네요. 누구하나 잘 정리해주신 분이 안계셔서,
허접한 제가 간략하게 정리했습니다. board에 잘 아시는 분들이 잘 정리해주시면, 저같은 사용자는 많은 도움이 될텐데요. 아무튼, 행운을 빕니다. 꾸벅~


07.02.13 contents by hackereyes.
Special Thanks to icebase.

최근에 HyperSnap 이라는 Capturing Program을 사용하게 되었습니다.
간단한 방법으로 화면을 Capture할수 있어서 매우 좋은데요.
이 프로그램 때문에 Visual Studio 에서 Debugging 시에 F11키가 먹통이 되는 경우가 있습니다.
이 때문에 컴터를 한 5번 포멧했는데요. 원인을 찾았습니다.



원인은 HyperSnap Program이 HotKey를 사용하는 것에 문제가 있었습니다.
즉, HyperSnap Program이 상시 실행되고 있는 상태이기 때문에 HotKey로 등록된 F11키의 입력을 Hooking하여 모두 가져가 버리는 것입니다.
때문에, Visual Studio에서 아무리 F11키를 눌러도 모두 키입력은 Visual Studio로 가지 않고 HyperSnap Program으로 전송되어 집니다. (엄밀히 말하면, 선처리하여 Key입력이 VS까지 가지 않는거죠)


해결방법은 HyperSnap Program에서 HotKey의 사용을 해제하거나, F11로 되어있는 HotKey를 다른 키로 바꾸는 것입니다.
혹은, 아예 HyperSnap Program을 상시 수행하지 않게 하여, 필요할 때 실행시키는 것도 하나의 방법이 될 수 있습니다.



저와 같은 문제로 고생하시지 말기 바라며 @^-^@ 꾸벅~

+ Recent posts