본문 바로가기
반응형

코스웨어/12년 내장형하드웨어207

Visual Studio 에서 사용 팁. 나름 유용하니 애용하시오. Visual Studio 유용한 단축키 팁. 오늘 RF 통신 수업시간에 define을 할 일이 많았는데, PDF에서 긁어서 붙여 넣기 해야 할 작업이 많았다.아래 처럼 PDF 문서를 긁어서 복사한다고 할 때, 저것을 편집기에 붙여넣기를 하면 아래와 같이 나온다. 우리가 원하는 형태가 아래 그림과 같다고 했을때 어떻게 손쉽게 작업할 수 있는지 알아보자. #define 을 스페이스바 까지 복사하여 앞에 모두 복사해 준다. 커서를 0x00 앞에 두고 "앞뒤 단어 위치 스위칭" 단축키인 Ctrl + Shift + t 를 눌러본다. 자리가 바뀐 걸 볼 수 있다. 여기서 단축키를 한번 더 누르면 0x00과 I-Code와 위치를 바꾸고 1과도 바꿔준다. 그래서 아래와 같이 마무리하고 빈칸은 언더바로 이어준다. 이것을.. 2012. 10. 11.
[RFID] - 정철 #include #include unsigned short Emb_Crc(void *); int main() { HANDLE hComm; int iCnt; char caString[] = "HI"; unsigned char msg[] = {0x0D,0x00,0x71,0x00,0x1F,0x00,0x00, 0x00,0x01,0x00,0x00,0xFF,0xFF}; DWORD dwWrite; DWORD dwRead; DCB sPS; //시리얼 포트 삭제 및 저장 :: PORT STATUS이다. COMMTIMEOUTS cTime; unsigned char uc; hComm = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE.. 2012. 10. 11.
10월 10일 - 리눅스 커널 프로그래밍 chater[3] -(4), 공유폴더에 kernel 옮기기 함수의 메모리 주소를 알고 싶으면 System.map 파일을 확인해보면된다 // 일종의 심볼테이블 ==================================================================================================================================================== 리눅스 시스템 호출 read, write, open 등의 함수들을 호출했을 때 인터럽트 0x80번이 호출되는데..이렇게 되면 구분을 할수 없다 그래서 호출 전에 함수에 대응되는 인식 번호 를 먼저 읽어 들여서 찾아간다. 시스템 호출 흐름의 예 1. 사용자 프로세스에서 시스템 호출 사용(open()) 2. C 언어 라이브러리(libc)에서 시스템 .. 2012. 10. 11.
[리눅스 커널]linux 2.4 & linux 2.6 소스인사이드 설정 linux 2.4소스인사이드 설정 커널 빌드 안될시 make cleanmake mrpropermake menuconfig해서 안될 시 밑에 그림대로 한다 -asm파일이 없다 이걸 복사 해줘야 하는데 cp를 이용해서 asm-i386파일을 asm파일로 복사한다 -vi makefile에 들어가 300번줄과 301번 줄을 주석처리 한다 주석 처리는 #이다저장하고 나온다다시 make menuconfig를 한다 vmware 안될시 source insight 미리 열어져 있는 파일을 close project한다그리고 new project로 다시 설정한다 -Browse를 눌러 linux-2.4.32저장된곳을 선택한다 -add all을 누른다 두개다 체크해준다 - Project Files:에 여러 개가 뜬다 - Show.. 2012. 10. 10.
-리눅스 시스템 호출, “NTFS 에서 커널 빌드과정중 에러 대처- -리눅스 시스템 호출- IDT의 총용량은 1KByte이고 함수하나당 4Byte 니깐 즉 호출함수를 가질수 있는 갯수는 256개이다. 버전이 올라가면서 시스템에서 불러오는 갯수가 많아지니 따로 사용자가 인터럽터 주소를 만들수있도록 한곳에 모은다 이곳을 0x80번에 배정해서 여기 있는이름을 리눅스에선 system_call 이라고 부른다. -fork()를 호출할경우 예- fork()는 자신을 하나더 분리하는 함수이다 fork()가 발생하면 라이브러리에서 eax에 시스템호출번호 2를 넣고 INT 0x80 실행하고 인터럽트 0x80발생(IDT에 80번째인 system_call() ) system_call() 안에 sys_call_table을 확인해서 2번인 sys_fork를 호출한다 -sys_call_table-.. 2012. 10. 10.
2010.10.10 오전[리눅스 시스템호출, 예제소스] 리눅스 시스템 호출 system.map -> 메모리 상의 함수위치를 가지고 있음. - 함수의 심볼테이블을 주소로 출력함. 리눅스 시스템 호출에서 진행되는 과정은 - 사용자 프로세스에서 시스템 호출 사용 (예 : open()) - C언어 라이브러리(libc)에서 시스템 호출 준비 시스템 호출에 필요한 인자를 register stack에 넣음 시스템 호출 번호 저장 인터럽트 발생(소프트웨어 인터럽트이므로 실제로는 트랩) - system_call() = IDT에 의해 인터럽트 시작 =sys_call_table 사용 = 인터럽트 서비스 루틴 실행 - 결과값 사용자에게 반환 IDT = 인터럽트 백터 read, write, open함수는 reg로 호출되고, 번호를 구분하기 위해 fork()라는 함수를 쓴다. for.. 2012. 10. 10.
리눅스 커널 2.4 분석하기(소스인사이트에 커널소스추가) 새 프로젝트를 만들어서 커널소스로 경로를 지정하고 add all 을 하자 그리고 show only~ 를 체크해서 makefile도 추가하자 Synchronize Files 를 눌러 Force all files to be re-parsed 만 체크하고 확인해준다 Arch/i386에서 모든 어셈블리파일을 추가해준다 (뒤에S가 붙은) 그리고 다시 Synchronize files에서 모두 체크를 헤지하고 확인을 해준다. 소스를 추가다했으면 간단하게 divide_error 를 추적해보자 F7을 눌러서 검색하자 위과 같이 결과가 나왔찌만 원하는 결과가 나오지않는다면 원형이 ASM으로 되어있있으니 정확한 추적을 하고싶으면 아래와 같이하자. ctrl +shift+f 를 눌러 옵션을 체크해 광역적으로 검색이 가능하다 왼.. 2012. 10. 10.
리눅스 커널 2.4 분석하기(vmware를 통해 윈도우에 리눅스커널 빌드) 분석하기전에 일딴 리눅스 커널을 윈도우에 깔아야한다 vmware상에서 리눅스가 실행된다면 윈도우와에 공유폴더를 통해 커널빌드를 해야한다. 다음 과정을 보자. 먼저 usr/src 에있는 linux-2.4.32 커널을 윈도우와에 공유폴더 mnt/hgfs/공유폴더 로 옮긴다 그리고 공유폴더상에서 커널을 make clean을 해준다. 다음 vmware가 윈도우와 리눅스상에 심볼링링크를 지원하지 않기때문에 이 심볼링링크를 없에주는 작업을 해야한다. 아니면 make(빌드)가 안된다 위와 같이 include 폴더안에서 심볼릭링크가걸려있는 asm-i386을 asm으로 전체 카피(cp -r)한다. 그리고 Makefile을 vi로 편집하자 위와같이 심볼릭링크 가 활성화 되있는데 저부분을 주석처리하자. 위와 같이 주석을 처.. 2012. 10. 10.
MS Word에서 글을 작성하고 블로그로 보내기. 블로그에 글들을 어떤 방식으로 쓰고들 있는지 잘 모르겠지만, 일단 거의 대부분이 블로그에 글을 게시하기 위해서 블로그에 접속 후 웹에서 직접 작성하는 방법을 사용하고 있다고 판단된다.이 경우 캡쳐한 사진을 올릴 때 일일이 업로드 과정을 거친 후 사진을 게시 할 수 있지만 MS Word 의 블로그 게시 기능을 이용하면 글을 미리 MS Word 를 이용해서 작성하기 때문에 사진등은 간편하게도 복사 및 붙여 넣기 기능으로 쉽게 게시가 가능 해진다. 표 작성 및 리스트를 작성할 때도 간편하게 올릴 수 있으니 애용하도록 하자.원문 주소http://notice.tistory.com/114 안녕하세요. TISTORY입니다.티스토리에 접속하지 않고도 언제 어디서나 블로깅을 하실 수 있어요! 원격 블로깅을 지원하는 프로.. 2012. 10. 10.
728x90
반응형