본문 바로가기

프로그래밍

임베디드 프로그래머와 부트로더-4 저 자 : 유영창 출판일 : 2003년 10월호 == 상태 표시·메시지 표출·명령 입력 및 처리 기능 보드를 시험하는 과정에서 진행된 위치나 상태를 알려주는 기능은 거의 필수적이다. 예전에 동료 한 사람이 펌웨어 프로그램에 자칭 청진기 기능이라고 하는 메모리나 기타 상태를 보여 주는 기능을 항상 넣어 놓고 프로그램을 디버그했다. 당시에는 에뮬레이터가 일반화되어 있지 않기 때문에 이런 기능을 넣어야 했다. 지금도 상황에 따라 이런 기능을 넣어야 프로그램 디버깅이 편하다. 초기에 시리얼 디바이스 초기화가 힘든 상태에서는 LED를 점멸시키거나 LED를 이용해 진행 표시를 한다. 이후 시리얼 디바이스가 초기화되면 시리얼 디바이스를 이용해 프로그램 상태나 기타 메시지를 표출한다. 또한 특정한 문자열을 입력받은 후.. 더보기
임베디드 프로그래머와 부트로더-3 저 자 : 유영창 출판일 : 2003년 10월호 == 리눅스 커널의 구동 환경 앞서 잠깐 언급했지만 임베디드 시스템에서 리눅스 커널이 원활하게 동작하기 위한 최소 조건이 있다고 했다. 물론 절대적인 것은 아니지만 필자의 현장 경험상 다음과 같은 조건은 충족돼야 한다. ◆ 32비트 프로세서 ◆ 8MB 램(일반적으로 SDRAM을 사용한다) ◆ 8MB 롬(일반적으로 플래시를 사용한다) ◆ 시리얼 포트 1개 이 정도 사양만 있어도 리눅스 커널이 동작한다. 더 이하 사양의 시스템에 리눅스 커널을 올려 동작시킬 수도 있지만 응용 프로그램이 조금만 커져도 문제가 발생하고 프로그램 작성시 상당한 주의를 요한다. 여기에 한 가지 더 조건을 붙인다면 MMU(Memory Management Unit) 즉 메모리 관리 장치의.. 더보기
임베디드 프로그래머와 부트로더-2 저 자 : 유영창 출판일 : 2003년 10월호 == 임베디드 시스템 개발자의 고민 필자가 다니는 회사의 한 개발자는 처음 배운 프로세서가 32비트 원칩 프로세서이다. 특정한 장비 개발 건으로 8비트 원칩을 다룰 일이 생겼는데 프로세서 매뉴얼을 보더니만 씨익 웃고서 “정말 간단한 구조를 가졌네요” 하는 것이다. 필자는 조금 놀랐다. 왜냐하면 예전에 8비트 원칩을 보고 매우 복잡하다는 생각을 많이 했기 때문이었다. 물론 이전에는 Z-80이나 6502 같은 좀더 단순한 프로세서만 보다가 8비트 원칩을 보았기 때문이기도 하다. 문제는 필자와 같이 기존 8비트 원칩 프로세서를 다루던 개발자들이 32비트 원칩 프로세서를 보면 매우 복잡해 보인다는 것이다. 8비트 원칩 프로세서가 다루던 4MHz와는 차원이 다르게 .. 더보기
임베디드 프로그래머와 부트로더-1 임베디드 프로그래머와 부트로더-1 저 자 : 유영창 출판일 : 2003년 10월호 필자는 이 세상에 PC라는 시스템이 나오기 전에는 임베디드 시스템이라는 구별이 따로 없었던 것으로 기억한다. 또 한 가지 ‘펌웨어’라는 단어도 별로 사용하지 않았다. 그러다가 PC가 나온 후 어느 정도 시간이 지나면서 임베디드 시스템이라는 말이 사용되기 시작했고 또한 펌웨어라는 단어를 접하게 되었다. 임베디드(embedded)를 인터넷의 야후 사전에서 찾아보면 이렇게 나온다. embed[imbd, em-] vt. (-ded; -ding) [1] 깊숙이 박다, 파묻다 [2] (마음 속 등에) 깊이 간직하다((in)) [3]【언어수학】 끼워 넣다 임베디드 시스템을 통상적으로는 내장 시스템이라고 말한다. 하지만 필자는 PC 이외.. 더보기
GDI 객체 이용하기 윈도우즈에서 화면에 그림을 그리는 넘들을 GDI객체라 말한다. MFC에서 GDI객체를 표현하는 클래스는 CGdiObject클래스에서 상속받는다. 그래픽오브젝트 CPen 점,선, 특정영역 테두리를 그린다. 검정색, 실선, 1픽셀 크기가 디폴트 CreatePen, CreatePenIndirect 이용 CBrush 내부 칠하기. 무늬 없는 흰색이 디폴트 CreateSolidBrush, CreateHaHatchBrush,CreatePatternBrush,CreateDBPatternBrush, CreateBrushIndirect CFont 글꼴을 조정. CreateFont, CreateFontIndirect CBitmap 비트맵을 출력한다. CreateBitmapIndirect, CreateCompatibleBi.. 더보기
계산기 예전에 만들어본 PDA용 계산기를 이번에 다운받은 wm 6버젼으로 다시 한번 인코딩해봤당... 아주간단한 사칙연산만 가능한 계산기를 만들었었는뎅... 생각외로 함수만들게 많아서리 노가다였다는 --; 공업용계산기만들려다가 버튼이 너무 늘어나는 바람에 포기... 더보기
유닉스 crack 유닉스 패스워드 크랙프로그램 과 패스워드 암호화의 원리 대부분의 크랙 프로그램은 crypt()함수를 많이 이용한다. crypt()함수는 salt 키와 패스워드를 제공하면 암호화 시킨다. 역암호화 알고리즘이 존재하지도 않는데 어떻게 암호화 된 패스워드를 풀수 있을까?... 음... 크랙프로그램의 원리를 shadow 패스워드가 " 3tqNGDFbEOk1s " 가 있다고 하면, 크랙 프로그램은 단어 사전 파일을 준비한다. 들어가는 단어들로 이루어져 있는데, 예를 들면, a aa aaa aaaa abc across auto ...... ....... z zz zzz zoo .. 이런식으로 영단어 처음부터 나온다.(사전이 좋을수록 손쉽게 찾을수 있다.) 그러면 크랙 프로그램은 crypt() 함수에 위의 한줄에 한.. 더보기
finger 소스 네트워킹 공부할때 첨 연습한 소스인것 같다. 주석에 그렇게 적혀있으니... --; finger 효과가 난다. --;. 정말 지금 보면 엉망이지만, 아주 간단하게 구현가능한 finger. ------------------------------------------------------------ #include #include #include #include #include #include #include #include #include void main(int argc,char **argv) { int sockfd,newfd,size; struct sockaddr_in address; struct hostent *rh; char *buf; buf=malloc(82); sockfd=socket(AF_INE.. 더보기
WinCE용 메모장 WinCE용 메모장 PDA 에도 메모장이 있긴하지만 ㅋㅋ CE 프로그래밍 해보구 싶어서, 메모장을 만들어봤당... 기능은 거의 ~~~ 비슷한 기능. 실제로 써보니까 잘되는군 ^^ 하드 안에 모바일용 프로그램이 몇개 있는데, 정리를 계속 해봐야 겠당~~ 더보기
trace 프로그램 wintrace trace 프로그램 wintrace 리눅스,해킹등에 열중해있을 무렵 trace 윈도우 프로그램을 보고 따라만듬 인터넷에는 위치까지 추적이 되는 프로그램이 있어서 만들려고 시도했는데,... 맵 구하기가 어려운데다가, 리눅스에 유용한 넘들이 넘쳐서 1.2 버젼으로 끝. 별 쓰잘때기 없는 심심풀이 프로그램 --; 속도는 잘나옴 ㅋㅋ 더보기
autogunzu - 베타할때 자동사냥 프로그램 autogunzu - 베타할때 자동사냥 프로그램 음... 이넘 만들어서 혼자 쓰다가... 공개한다고 했다가 .... 씁쓸한 기억이 있는 프로그램. 군대가기전에 잠시 만든넘. 그래도 꽤 버그수정하고 업데이트를 했었던 기억이... 베타때 하던 군주 라서, 사냥터 가기도 귀찮고(마우스 누르기도 귀찮았음...) 뭔 가죽이니, 양파니 등등의 것들을 사냥하기도 귀찮아서 겜 접을려다가 어떤 게임엔 자동사냥 프로그램이라는게 있다는 소식을 듣고 찾아보다가 없어서 만듬. 물약 만땅 채워놓고, 자동사냥 눌러놓으면 알아서 물약먹고, 사냥하는 기능이 주가 되었고, 마을 이동하기 귀찮을때 마을 이동을 누르면 좌표로 알아서 이동하는 기능추가. 2.x 까지 만들었던거 같은데... 마지막버젼에는 몹 위치랑 주는 아이템, 아이템 제조 .. 더보기
ImgMaker - 내가 만들 그림판 홓홓 ImgMaker - 내가 만들 그림판 홓홓 이넘도 수정날짜가 99년으로 되어있당... 윈도우 그림판을 그대로 본떠서 만들려고 했던 넘. 배경 사진이 더 멋있었던 넘이다... 더보기
HEX editor 소스. 음.... 하드 구석에 있던 넘인데, 최종 수정일이 99년으로 나와있는데... 학교 수업할때만든건지, 어디서 퍼온건지, 심심해서 만든건지 기억도 않남... --; ----------------------------------------------------------- #include "stdio.h" #include "conio.h" #include "stdafx.h" #include "stdlib.h" #include "windows.h" void gotoxy(int x, int y) { COORD Pos = {x - 1, y - 1}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); } char *data=NULL; char *fil.. 더보기
ASP 시작. 서버 사이드 스크립트 를 지정하는것 을 이용한다. 예> 하핳하 이런 형식으로 작성하게 된다. 폰트 사이즈가 커지는 asp예제를 만들어 보면, FONE SIZE = 더보기
ASP(Active Server Page)의 정의 ASP 는 MS에서 만은 웹어플리케이션 개발기술이다. ASP는 서버지향형 언어기 때문에 자바스크립트와는 달리 서버에서 실행후 결과만 클라이언트에 리턴되어진다. ASP 원리는 간단하다. 사용자(클라이언트)가 데이터를 입력하면, 그 데이터를 서버로 전송해서, 그 서버는 데이터베이스를 이용해 저장 처리해서 다시 웹으로 뿌려주게 된다. 이때 둘 사이를 연결해는 것이 ASP가 된다. 결국 사용자가 ASP 문서를 요청하게 되면, 웹서버가 ASP.DLL을 이용 가공해서 HTML로 나타내지게 된다. 더보기