노무현 대통령 배너

Double-J's World

blog logo image

Double-J's World » Search » Results » Articles

IT와 관련된 글 15개

  1. 2008.06.21 Windows XP 폐막시대(?!?!) / Double-J
  2. 2008.02.12 [Study] PS/2 port (keyboard) 3 / Double-J
  3. 2008.02.11 이놈의 옥션은....; / Double-J
  4. 2008.01.29 [C 박살내기] #2 Hello World~! / Double-J
  5. 2008.01.13 USB 메모리 살때 알아볼것!^^ (SLC / MLC) 6 / Double-J

Double-J's World » monologue

Windows XP 폐막시대(?!?!)

Double-J | 2008. 6. 21. 19:59

사용자 삽입 이미지






















공식적인 발매는 왠지 어려울듯.;

MS 에서 Windows XP를 PC와 함께 파는것을 이번 30일을 기점으로 중단 한다고 하더군요

관련기사링크

98 버전 이후로 정말 오랫동안 쓴 운영체제 인데... 슬슬 뒷걸음질 치는 것을 보니

왠지모르게 씁슬하네요~;;

물론 업데이트나 뭐~ 일반 지원같은건 아직 연장하는것으로 보이는데요

Vista Ultimate 버전Business 버전 사도 xp로 다운그레이드 해줄수 있게는 해준다지만..

흠~~ 만약 PC업그레이드 할 기회가 있으면 한번 Vista 사용을 신중히 생각해봐야겠네요

그런데 일반 사용자 입장에서는 뭐 그냥그냥 거기서 거기이지만 저같은 경우는

공학도로 공부하고 있는 입장이라 여러가지 Tool 들이 Vista에서 안돌아가면 말짱 황이거든요 ㅜ

게다가 이왕이면 Vista 64비트 버전으로 해보고싶은데...64비트버전에선...더더욱 Tool이 불안정.;

에효~~ 암튼 이래저래 씁슬한 뉴스입니다 ㅡ.ㅡ 나의 엑쑤피~!


(go to top)

Double-J's World » Embedded

[Study] PS/2 port (keyboard)

Double-J | 2008. 2. 12. 19:58

개발환경 : SPARTAN -3 Board

FPGA  : Xilinx XC3S200


PS/2 port 를 보드에 인식시키는데 많은 자료가 없어서 약간 애를 먹었다.

일단 기본적인 동작은 PS/2 port를 사용하는 키보드는 다음과 같은 인터페이스이다.

인터페이스.jpg 


시그널_핀.jpg 

위의 모양은 각 핀의 번호와 그 역할을 나타내 주고있다. 위의 자료는 Xilinx 의 SPARTAN-3 보드의 메뉴얼에서 참고한자료라

FPGA Pin 번호가 다음과 같다. 다른 보드를 사용할시 메뉴얼을 참고해야한다.


Device to Host 의 동작에서는 기본적으로 키보드가 정해진 클럭을 발생하고 그에따라 데이터비트도 변하게된다.

즉 위에서보면 PS/2 Pin의 1번, 5번을 통해 신호를 내보내고 이 신호를 받아 제어를 해야 한다.


CLK가 low일때  valid data 이다. 그러므로 state machine이 키보드에서 동작하는 크럭이 negative edge 일때 동작해야 한다

그럴때마다 데이터를 체크 하되 data bit는 다음과 같은 순서로 전달되는것을 주의 하도록 한다.

 데이터전송예제.jpg


 data는 총 11비트가 전송되게 되고 statr signal이 발생한이후로 차례로 8비트가 data bit이다.

이 data bit는 LSB부터 전송되게 되고 이 데이터는 키보드의 고유한 키값을 가지고 있다.


아래는 시뮬레이션의 결과이다.

진짜예제.jpg 


※주의할점 :

임의의 키를 한번 눌렀다 떼면 누르는 순간 고유의 키값이 전달되고 떼는순간 F0가 전달되고 뒤이어 고유의 키값이 다시한번

전달된다.

 참고한 사이트는 아래와 같다.

 http://www.computer-engineering.org/index.php?title=PS/2_Mouse/Keyboard_Protocol



이 글은 스프링노트에서 작성되었습니다.



(go to top)

Double-J's World » monologue

이놈의 옥션은....;

Double-J | 2008. 2. 11. 00:47

사용자 삽입 이미지
얼마전에 옥션의 개인정보 유출사건이 있었습니다. 다행히 아직까지

피해 사례는 없는것 같지만...항상 소잃고 외양간 고치는 식의 조취는

인상을 찌푸리게 하네요. 이 사건이 발생한지는 조금 지나긴 했지만 문득

저도 옥션에 아이디가 있는지라 상당히 찜찜하더군요.

네이버 같은 사이트에선 비밀번호 변경 캠페인도 벌어지구요..

사실상 거의 모든 사람들이 여러 사이트를 하나의 아이디 혹은 비밀번호를 동일하게

설정하고 사용하기때문에 자칫 잘못되면 문제가 커질수도 있죠.

인터넷 강국......무색해지네요... 광랜 인프라도 이젠 일본이 조금 앞섰다지요?;;

차후 서비스 분문과 보안분야를 업계에서 좀더 비중있게 운영을 했으면 하네요...

다시는 이런일이 없게요..

아...찜찜하니...비밀번호나 바꾸러가야겠습니다. ㅡ.ㅡ;


(go to top)

Double-J's World » Programming/C / C++

[C 박살내기] #2 Hello World~!

Double-J | 2008. 1. 29. 23:37

아하~~ 실로 오랜만에 포스팅하네요 ㅡ.ㅡ;

이놈의 귀차니즘은..정말..;;; 꾸준히 포스팅 하시는 블로거님들 보면
정말 대단하다는 말밖에 안나옵니다.ㅎ;

아무튼 오늘은 프로그래밍 첫단원의 대명사 !! 이름하여
Hello World~! 출력하기! 입니다.ㅎㅎ

사실제가 첫글에 포스팅할때 이 예제를 썼었죠~ 간단한 개요를 설명하느라
가져다가 썼습니다. ㅡ.ㅡㅋ

자~시작하겠습니다.


사용자 삽입 이미지

흔히들 많이 쓰는 개발도구인 Visual Studio 에 포함되어있는 Visual C++ 6.0 입니다.
버전은 현재 2005 까지 나왔구요.^^ MS가 만든 이 Tool 외에도 몇가지 더있습니다.
갑작스레 저는 유명한 Bolando밖에 생각이 안나는군요..ㅎ; 무료 컴파일러도있습니다.^^;

참고로 Bolando 나 MS가 제공하는 이 툴은 IDE(Integrated Development Environment)
라고 불립니다. 굳이 번역하면 통합개발환경 입니다.^^ 통합개발환경이란.. 원래 프로그램을
만들려면 소스를 작성해야되는 에디터, 컴파일러, 라이브러리등등..
많은 요소가 있어야합니다. 옛날에는 이러한작업을 사람이 한번씩 다해줬구요
하지만 통합개발환경에서는 프로그램자체가 그모든걸 포함하고있고
메뉴몇번클리이나 단축키만으로 한번에 이루어집니다. 이러한 개발환경을
아울러 통합개발환경이라고 합니다.^^ 아무튼 저는 MS의 Visual Studio 6.0을
사용하겠습니다.

일단 프로그램을 시작한다음에는 프로젝트를 생성하는 습관을 들이는것이 좋습니다.
어느 프로그램이든지요.. 막바로 소스파일부터 생성할수는 있지만 나중에 습관 잘못들이면
더 불편하니 제대로 해보지요~

사용자 삽입 이미지
프로그램의 File -> New... 를 누르면 프로젝트 생성창이 뜹니다. 화면에서처럼 Ctrl + N
눌러도 상관없습니다.
사용자 삽입 이미지

사진 사이즈가 작아서 잘 안보이네요.ㅎ; New를 눌러서 새로운 프로젝트 생성창이 뜨시면
위와 같은데 그중에서 상단의 탭이 Projects 에 있는지 확인하시고 아래서 세번째
Win32 Console Application 을 선택하세요. 이는 콘솔환경에서 프로그래밍 하고자 함 입니다.
그리고 우측의 Location : 부분의 ... 버튼을 클릭하세요

사용자 삽입 이미지
그러면 다음과 같이 프로젝트를 어느곳에 만들지 지정하는 창이 뜨는데 저는 다음과 같은경로에
미리 폴더를 만들어 두었습니다. 그리고 OK^^

사용자 삽입 이미지
그리고 나서 위와 같이 Project name 에 생성할 프로젝트 이름을 써주세요 그러면 아까 경로에
덧붙여져서 그이름과 똑같은 이름이 경로에 써질꺼에요~ 이 이름의 폴더가 새로 만들어지는것이지요

사용자 삽입 이미지
이상이 없으시다면 다음과 같이 어떤 종류의 콘솔어플리케이션을 만들것인지 선택하게됩니다.
세번째 메뉴를 선택하시면 기본적으로 Hello World라는 문자를 출력하는 기본 소스가 생성되는데
저희는 처음부터 코딩해보기로 하죠~^^ 첫번째 empty project 선택후 Finish!!
그러면 처음엔 거의 변화가 없습니다. 왼쪽에 먼가 바뀐것 같긴 하지만요^^
다시 File -> New 또는 Ctrl + N 을 눌러보세요^^

사용자 삽입 이미지
그러면 아까는 기본적으로 탭이 Projects부분이 떴는데 이번에는 Files에 가있죠??
이제 지금만든 프로젝트에 자신이 생성할 파일이 어떤 형식인지 지정하고 실제로 만드는 순서입니다.
5번째 C++ Source File 을 선택하고 오른쪽 File 이라 되있는곳에
hello_world.c 라고 적어보세요~ 파일이름을 정하는 순서죠^^ 그리고 OK^^

사용자 삽입 이미지
무언가 아까보다 더 큰 변화가 있죠? ㅎㅎ 가운데 메모장 마냥 무슨 창이 하나 떴습니다.
바로 이것이 hello_world.c 라는 소스 파일을 작성할 부분입니다.
그러면 다음화면과 같이 똑같이 코딩해보세요~! 설명은 차차 해드리겠습니다.^^

사용자 삽입 이미지
자~! 이 소스입니다.!!

사용자 삽입 이미지
이제 실행을 시켜봐야겠죠?? 상단에 보시면 Build - > Build hello_world.exe 를 클릭하셔도되고
옆에 나와있는 단축키를 실행시키셔도됩니다. 이메뉴를 누르시면 컴파일이 완료되고 에러가 없으면
실행파일을 만들어주게 됩니다.^^

자~ 여기서 컴파일 이란? 사람이 알아먹을수 있게 만들어진 C를 포함한 여러 프로그래밍언어들..
이러한 소스파일을 컴퓨터가 알아먹을 수 있게 번역해주는 작업을 컴파일 이라고 합니다.
이러한 작업을 해주는 녀석을 컴파일러 라고 하구요^^

사용자 삽입 이미지
컴파일(compile)빌드(build)는 위쪽 단축아이콘에도 있습니다.^^ 마우스를 갔다 대면
설명이 나오니 참고하세요.^^

이렇게 build까지 끝나면 실행을 해봐서 눈으로 봐야겠죠? 위쪽 단축아이콘중에
느낌표 표시를 누르거나 ...단축키는 Ctrl + F5 입니다.
아니면 Build 메뉴에 보면 느낌표 해가지고~ Execute 어쩌구~ 해가지고있는게 있어요~ㅎ
그걸 클릭하시면 짜잔!

사용자 삽입 이미지
다음과 같은 창이 뜨면서 결과를 볼 수 있습니다.
자~그러면 간단한 소스이지만 한번 분석을 해볼까요??

사용자 삽입 이미지
아까 코딩했던 소스입니다. 지금 이 소스는 크게 두부분으로 나누어져있습니다.
1번의 # 하고 어쩌구~ 하는부분과 제가 화면에 주황색 박스쳐져있는부분입니다.^^

1번은 보통 전처리문이라고 합니다.
형식은 #include <포함할파일이름>
이렇게되구요 소스가 컴파일되기전에 <> 이안에 있는 파일의 내용을 가져와 같이
컴파일 합니다.^^
참고로 stdio.h 파일은 Standard C에서 제공하는 헤더 파일입니다.
저안에 기본적으로 쓸 입출력함수들이 정의되어있지요~
Standard Input / Output (표준입출력)... 단어는 외우기쉽죠?^^

일단은 C프로그램을 짜주기위해서는 무조건 #include <stdio.h> 를 써준다고 외워두세요
손에 익혀서 계속 쓰다가 나중에 헤더파일이 무엇하는놈이지 알게되면
아하~! 할겁니다.^^

그리고 중요한건 void main()으로 시작해서 처음의 중괄호( { ) 부터 마지막 중괄후 ( } ) 까지..
가 가~~자~~앙~! 중요합니다. 메인(main)함수라고 하는데요 C언어는 무.조.건.
메인함수부터 시작합니다. 일단 형식은 이렇게 써주는구나 하고 외워두세요
나중에 사용자함수 설명할때 다시 차근차근 설명해드리겠습니다.^^//

아무튼 그렇게 해놓고 저 중괄호 안쪽 부분에 자신이 코딩하고 싶은 것을 써주면되는것입니다.
2번을 보시면 printf(""); 이렇게 있죠? 이게 한 문장입니다.

C언어는 한문장을 세미콜론( ; )으로 구분합니다. 이건 다음 포스팅때 실험해보겠습니다.^^

printf() 라는 함수는 쌍따옴표(" ")로묶인부분을 화면에 출력해라! 라고 명령을 내리는
함수입니다.

자꾸 함수 ~ 함수 ~ 하니깐 처음 보시는 분은 헷갈리실듯..ㅎ;
그냥 printf() 쓰고 그안에 쌍따옴표 찍고!! 다시 그안에 자신이 칠 문장을 치면
바로~ 모니터로 나온다고 알아두세요^^

그리고 쌍따옴표 안에 \n 요거 있죠? 이건 커서를 다음줄로 개행(new line)하라는
뜻입니다. 결국 Hello World 라는 문장을 출력하고 커서는 다음 칸으로 이동하라는 거죠
마치 저희가 메모장이나 워드프로세서 에서 글쓰다가 엔터 치는것처럼요^^

한번 그부분 지우고 쳐보세요~~ 시스템에서 기본적으로 출력해주는
Press any to key continue 라는 문장이 바로 붙어서 나올겁니다.ㅎㅎ

아~~ 짧은 프로그램 인데 여러가지 설명이 많이 들어가네요..^^;
이미 알고계시거나 프로그래밍에 도가 트신분들께는 이런 포스팅 보여드리기가 많이
부끄럽네요..^^;

아무튼 처음 접해보시는 분들~~많이 도움되시길..^^
그럼 다음엔 C언어에서의 문장구분 잠깐 실습해보고
좀더 계산적인(?)프로그램을 만들어볼께요..ㅎㅎ


(go to top)

Double-J's World » Com...Tips!

USB 메모리 살때 알아볼것!^^ (SLC / MLC)

Double-J | 2008. 1. 13. 19:55


사용자 삽입 이미지

이젠 현대인의 필수품이
되어버린 USB메모리!!
학생이고 직장인이고를 막론하고
USB메모리를 가지고 다니는 사람을
많이 볼수있습니다.^^

또한 요새 가격도 많이 착해져서
우리의 선택폭을 넓히고있는데요..
이 USB메모리가 크게 두 종류로
분류 되는 사실을 알고 계세요?

바로 SLC(Single Level Cell)방식과 MLC(Multi Level Cell)방식입니다.

보통 쇼핑몰이나 이런데서 팔때 별다른 표시가 없으면 MLC방식이라고 보면 됩니다.

SLC와 MLC의 차이는 간단히 말하면 USB메모리는 NAND Flash Memory라는것으로
만들어져있고 이 메모리는 셀(Cell) 이라는 공간에 정보(bit단위..)를 저장합니다.

그런데 SLC는 셀 에 하나의 정보(1bit)를 저장하고 MLC는 한 셀 안에
다수의 정보(다수의 bit)를 저장합니다.

그런데 한 셀에 여러 정보를 담으려면(MLC방식) 기록되어야 하는 정보의 양이 약간더많습니다.
SLC방식 보다요..^^
그래서 속도가 조금더 느리고요~ 대신 SLC보다 약간 기록횟수가 많습니다.

참고로 Flash Memory는 기록횟수 제한이 있는데 영원히 사용할 수 는 없습니다.
일정 기록횟수를 넘어버리면 수명을 다하게 되는거죠..ㅎ;

아무튼 결론적으로 보면 대용량의 데이터를 빠르게 읽고/쓰기를 하고싶은분은
SLC방식을 추천해드리고요
쓰는 데이터파일이 대부분 작거나 저장용도로 많이 쓰시는 분은 MLC방식을 추천해드립니다.

두 방식의 속도나 안정성면은 분명히 차이가 있지만
일반 사용자가 쓰기에는 그다지 큰 차이가 없기때문에 머리아프신분은 그냥 쓰셔도
무방합니다.^^;

이 두방식에대해 조금더 자세히 알고 싶으신분은 링크를 참조하세요..^^

요기~!! --> 링크링크
ps : 아! SLC방식이 MLC방식보다 약간더 비쌉니다.^^; 참고하세요*



(go to top)