'2013/07'에 해당되는 글 14건

  1. 2013.07.30 토이이이이이익
  2. 2013.07.29 임베디드 리눅스 프로젝트!
  3. 2013.07.24 man 페이지 활용법!
  4. 2013.07.22 Linux.
  5. 2013.07.19 3/4분기 정리좀.. (1)
  6. 2013.07.18 태스크간 통신(IPC)
  7. 2013.07.18 ctags cscope
  8. 2013.07.16 RTOS(Real Time Operating System) 2
  9. 2013.07.15 RTOS(Real Time Operating System)
  10. 2013.07.11 임베디드에 관해

http://jhtoeic.blog.me/40193869404 토익 1일문제

'백과사전' 카테고리의 다른 글

라이브러리 설정  (0) 2013.08.02
흠흠  (2) 2013.08.01
토이이이이이익  (0) 2013.07.30
임베디드 리눅스 프로젝트!  (0) 2013.07.29
man 페이지 활용법!  (0) 2013.07.24
Linux.  (0) 2013.07.22
Posted by 아크k

추천 사이트 : http://arm.pe.kr/dd/ 강사님 홈페이지
www.kernel.org

리눅스 사이트 (이곳에서 다운받기전 cpu만드는 삼성이나 그런곳에가서 작업이된 커널을 찾아서 다운 받는다.)

 

리스포유 : 논문검색

하이브레인넷

켈프(Korea Embedded Linux Project)

임베디드 크레이지 보이즈

이솝

fa리눅스

korone - Qt

네이버 카페 착한 세상 http://cafe.naver.com/kindplayer

!?    http://blog.naver.com/prevision1?Redirect=Log&logNo=10016968419   

 

http://www.filewatcher.com/   필요파일 검색

 

 

이곳이 유레카!

http://www.google.co.kr/url?sa=t&rct=j&q=%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C%20%EB%B3%B4%EB%93%9C%20%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8&source=web&cd=6&ved=0CGsQFjAF&url=ftp%3A%2F%2Fgagopa.kyungnam.ac.kr%2Fpub_open%2F%25BC%25F6%25BE%25F7%25B0%25FC%25B7%25C3%2F2009_1%25C7%25D0%25B1%25E2%2520%25B4%25EB%25C7%25D0%25BF%25F8%25BC%25F6%25BE%25F7(%25B8%25B6%25C0%25CC%25C5%25A9%25B7%25CE%25C7%25C1%25B7%25CE%25BC%25BC%25BC%25AD%25C6%25AF%25B7%25D0)%2F%25B8%25B6%25C0%25CC%25C5%25A9%25B7%25CE%25C7%25C1%25B7%25CE%25BC%25BC%25BC%25AD%25C6%25AF%25B7%25D0%2Fsecond_%2520%25BC%25D2%25BD%25BA%25C6%25C4%25C0%25CF%2520%25B9%25D7%2520pdf%25C6%25C4%25C0%25CF%2FSM2_Project%2FManual%2FHBE-SM2%25B8%25A6%2520%25C0%25CC%25BF%25EB%25C7%25D1%2520%25C0%25D3%25BA%25A3%25B5%25F0%25B5%25E5%2520%25BD%25C3%25BD%25BA%25C5%25DB%2520%25C7%25C1%25B7%25CE%25C1%25A7%25C6%25AE%2520%25BD%25C7%25BD%25C0.pdf&ei=XWf3Ud_yMMrDkwWBv4CYAg&usg=AFQjCNH6NBCh7QfMoT_teGALNvdpNFRfMQ&bvm=bv.49967636,d.dGI&cad=rjt

 

 

 

 

 

 

- 곧 지울꺼 -

 

엠피쓰리 틀린그림 디지털액자

시리얼 통신을 이용한 입출력

신호등

도어락

사원증

온도센서를 사용하여 자동제어 선풍기

cds광센서를 사용하여

게임

지하철 노선도

 

 

 

native compiler

cross compiler

 

 

추천 도서 : 암 시스템 온 칩, 암 시스템 디벨로퍼

 

/proc  프로세스 폴더

sysfs 하드웨어 관련 정보, 윈도우의 장치관리자같은역활

O(1) 알고리즘

 

 

하드웨어 32비트

소프트웨어 리눅스

0x0000 0000     0G

0x4000 0000     1G  4천만번지

0x8000 0000     2G  8천만번지

0xc000 0000     3G 

0xffff ffff           4G

 

 

16진수        2진수

0                

9

a                1010

b                1011

c                1100   

d                1101

e                

f                 1111

'백과사전' 카테고리의 다른 글

흠흠  (2) 2013.08.01
토이이이이이익  (0) 2013.07.30
임베디드 리눅스 프로젝트!  (0) 2013.07.29
man 페이지 활용법!  (0) 2013.07.24
Linux.  (0) 2013.07.22
태스크간 통신(IPC)  (0) 2013.07.18
Posted by 아크k

참고: Ubuntu Linux Toolbox


man 페이지 경로

  • /usr/share/doc
  • 비교: info는 /usr/share/info


man 페이지 section 구분

       1   Executable programs or shell commands : 쉘에서 사용하는 방법
       2   System calls (functions provided by the kernel) : c에서 사용하는 방법
       3   Library calls (functions within program libraries)
       4   Special files (usually found in /dev)
       5   File formats and conventions eg /etc/passwd
       6   Games
       7   Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
       8   System administration commands (usually only for root)
       9   Kernel routines [Non standard]



특정 명령어에 대한 실행 파일과 man 페이지 file 확인하기

  • 입력 예: whereis umount
  • 결과: umount: /bin/umount /sbin/umount.udisks /usr/share/man/man2/umount.2.gz /usr/share/man/man8/umount.8.gz


특정 명령어에 대한 man 페이지 section 확인하기

  • 입력 예: whatis umount
  • 결과: umount (2)           - unmount file system
    umount (8)           - unmount file systems



특정 명령어를 포함한 man 페이지 section 확인하기

  • 입력 예: apropos umount
  • 결과: umount (2)           - unmount file system
    umount (8)           - unmount file systems
    umount2 (2)          - unmount file system


특정 명령어에 대한 man 페이지 section 내용 확인하기

  • 입력 예: man 8 umount
  • 결과: UMOUNT(8)                                       Linux Programmer's Manual                                      UMOUNT(8)

    NAME
           umount - unmount file systems

    SYNOPSIS
           umount [-hV]

           umount -a [-dflnrv] [-t vfstype] [-O options]
           umount [-dflnrv] {dir|device}...

    DESCRIPTION
           The  umount command detaches the file system(s) mentioned from the file hierarchy.  A file system is specified by
           giving the directory where it has been mounted. Giving the special device on which the file system lives may also
           work, but is obsolete, mainly because it will fail in case this device was mounted on more than one directory.
    ...

    [출처] [Linux] man 페이지 활용하기|작성자 밤바

    ---------------------------------------------------------------------------------------------
    나는 1,2밖에 안쓴당... ㄷㄷ

'백과사전' 카테고리의 다른 글

토이이이이이익  (0) 2013.07.30
임베디드 리눅스 프로젝트!  (0) 2013.07.29
man 페이지 활용법!  (0) 2013.07.24
Linux.  (0) 2013.07.22
태스크간 통신(IPC)  (0) 2013.07.18
ctags cscope  (0) 2013.07.18
Posted by 아크k

Linux.

백과사전 2013.07.22 14:16

추천도서 : 리눅스 커널 심층분석, 리눅스 커널 내부구조

 

리눅스의 역사따위는 생략.

 

일딴 리눅스의 명령어부터 공부.

 

cat 파일이름 : 파일 내용 출력

 

ln 파일이름 : 하드링크

ln -s 파일이름 : 심볼릭링크

 

mv 파일1 파일2 : 파일1을 파일2로 이동

cp 파일1 파일2 : 파일1을 파일2로 복사

rm 파일1 : 삭제

rm -i 파일1 : 한번 묻기

cd ~ : root (환경설정 폴더라고 생각하면됨)

cd - : 위로 (전에 있던 폴더로 이동)

 

 

 

 

 

 

배쉬쉘 설정

cd ~

vi ./.bashrc

 

 

 

vi, vim

vi, vim [파일이름] : 파일 생성/수정

 

<범위>s/문자열1/문자열2/gc : 범위안에 모든줄에 대해서 각 문자열 1을 문자열2로 치환할때 수정할지 물음.

 

sp 파일이름 : 새로운 창 만들기

ctrl +ww : 창 바꾸기

 

 

부모 자식

부모프로세스(parent process)라는 상위계층과 자식프로세스(child process)라는 하위계층이 존재한다. 부모프로세스는 프로그램이나 명령어에 의해 시작되며, 자식프로세스는 부모프로세스에 의해 만들어지는 것을 말한다. 하나의 부모프로세스는 여러 개의 자식프로세스를 관리하는데, 여러 개의 자식프로세스가 하나의 CPU에서 동시에 처리되는 것처럼 보이는 것을 멀티태스킹(multitasking)이라고 한다.

자식프로세스가 진행될때는 부모가 자는경우가 많다.

 

확장자

 녹색 : 실행가능한 파일

진녹색 : 폴더

 

디렉토리

다음은 윈도우의 C:라 할 수 있는 /의 중요 하위 디렉토리에 대해 정리해보겠다.

 

/는 루트 디렉토리다. 이 디렉토리를 기준으로 모든 디렉토리가 생성되며, 다른 파티션의 연결점이다.

 

/bin 은 PATH의 경로이다. 시스템을 사용하기 위한 기본적인 명령어들이 포함되어 있다.

 

/boot는 부팅에 필요한 커널과 부팅 떄 필요한 핵심파일들이 존재하는 곳이다.

 

/dev는 장치 파일이 위치하며, 하드웨어를 교체할때 들어가야 할 곳이다.

 

/etc는 윈도우의 제어판이랑 유사하며, 시스템이나 사용자 관리를 위한 파일 관리자용 명령어들이

있다. 그 외에 /etc/skel에는 .bash_profile과 .bashrc파일들이 있는데 두 파일은 환경설정 파일로 설치시 기본적인 셋팅이 되어있는 기본값이 들어가 있으며, 만약 유저를 만들 시 유저의 초기값이 들어가 있는 곳이다.

(참고로 .로 시작하는 파일은 숨김 파일로, 볼떄 ls -a 명령어를 사용)

 

/lib는 시스템 운영 및 프로그램 구동할 떄 필요한 공유 라이브러리가 있는 곳이다. 만약 책을 보고

그대로 따라 쳤는데 잘 안된다 싶으면 이 디렉토리에 들어가 필요한 라이브러리를 업데이트 해준다.

 

/root는 시스템 관리자 디렉토리이며 사용자의 홈 디렉토리이다.

 

/mnt는 외부입력장치 (CD-ROM, Floppy)장치 설정이지만 요즘 많이 안쓰는 추세이다.

 

/proc는 process의 약자로 실행중인 프로세서를 파일로 제작하여 관리하는곳이다. 즉 안에 파일로 된 프로세서를 지우면 그 프로세스가 종료된다. 프로그램을 구동하게 되면 /proc에 해당되는 프로세서의 PID번호에 따라 디렉토리를 생성해여 프로세스의 진행상황을 추적하고 관리하는 곳이다.

문자로 이루어진 이름의 디렉토리 파일은 시스템 및 커널정보이며

숫자로 이루어진 이름의 디렉토리는 현재 실행중인 프로세스의 정보이다.

윈도우에서는 작업관리자로 표시를 하지만 리눅스는 굳이 파일로 만드는 걸 좋아하여 가상의 파일을 만들어 관리한다.

(프로세스는 실행중인 상태이며, 프로그램은 설치상태인 것이다.)

 

/sbin는 root(관리자)만 이용 가능한 명령어를 모아 둔 곳이다.

관리자가 사용하는 시스템 운영에 필요한 명령어가 존재하는 디렉토리이며 fdisk, reboot등이 있다.

 

/tmp는 프로세스 생성 과정에서 발생되는 임시 파일을 모아두는 디렉토리로 안에 내용이 삭제되거나 해도 크게 영향을 주지 않는 곳이다.

 

/usr는 프로그램을 설치할 때 패치지에 포함된 대부분의 파일이 이곳에 설치된다.

윈도우의 programs file이라 보면 된다.

 

/var는 서버파일, 로그파일이 존재하는 곳으로 만약 서버로 리눅스를 이용할 시 다른 접속자들은

var에서만 놀게 되는 서버쪽 디렉토리다.

내용이 자주 변하는 가변 자료가 저장되어 있는곳이며, 시스템 운영할 떄 발생하는 로그,

메일 송/수신할떄 임시로 저장되는 스풀, 프린터로 전송하기 위해 임시로 저장되는 프린트 스풀

데이터, 레드햇 배보판에서 패치지로 제공하는 아파치 웹 서버 관련 자료 MySQL의 데이터베이스,

 FTP의 최상위 디렉토리 등 다양한 서버 자료들이 존재하는 곳으로 해커들이나 정보보안쪽

사람들이 가장 중요시하는 디렉토리다.

 

출처 : I2SEC

 

 

 

'백과사전' 카테고리의 다른 글

임베디드 리눅스 프로젝트!  (0) 2013.07.29
man 페이지 활용법!  (0) 2013.07.24
Linux.  (0) 2013.07.22
태스크간 통신(IPC)  (0) 2013.07.18
ctags cscope  (0) 2013.07.18
RTOS(Real Time Operating System) 2  (0) 2013.07.16
Posted by 아크k

3/4분기 정리좀..

생각 2013.07.19 17:20

그러니까 6월부터 임베디드에 발을 담궜는데

뭘 배웠는지 정리좀 해봐야겠어.

 

6월에는 임베디드 시스템에대한 개론과 이해를 먼저시작해서

2주간은 그냥 c를 배우면서 배열과 포인터 구조체 공용체를 처음 접하고 멘붕을 느끼고...

그 후 2주는 임베디드 c를 배우면서 비트연산에 대한 중요성을 배우고 , 배열과 포인터 구조체 공용체에 대한 어느정도 이해가 간다고 느끼고 포인터배열, 배열포인터,포인터함수 같은것들에 멘붕...  (지금도 멘붕)

 

그리고 7월 1주에는 arm프로세서를 했는데... 이때는 진짜 개 멘붕... 강사님이.. 너무... ㅠ

내가 무식해서 그러는게 아니라 진짜 강사님이 너무.. 그냥.. 막... 그랬음... 어셈에 대해 잘 설명도 안해주공...

그렇게 한주가 지나가고 2주차엔 rtos를 배우면서 멀티태스킹, 커널, 포팅 그리고 레퍼런스는 다 영어라는 중요한점을 알았고.. 다음주부턴 리눅스

 

정리를 해보면.. 분명 많이 배운거 같지만.. 그래도 핫바지인 느낌//

그리고 시간이 지나면서 어렵기만 한게 아니라 쫌 재미도 있는거 같은 느낌..

 

 

요약.

6월 1주 - 임베디드 시스템 이해

6월 2~3주 - c

6월 4~5주 - 임베디드 c

7월 1주 - arm 프로세서 이해, 어셈블리

7월 2주 - rtos(microc/os)

7월 3~4주 - 리눅스

 

생각.

사실 취업이 어렵기보다는.. 진로를 정하는게 어려웠다.

하드웨어도 쉽지 않지만 소프트웨어도 마찬가지다.

그리고 내게 더 적합한게 소프트웨어쪽인거 같은 느낌인데, 둘 다 잘하고 싶다.

많은 뻘짓과 삽질을 하면.. 언젠가..........

뉴뉴..

포기만 하지 말아야징!..

 

 

 

'생각' 카테고리의 다른 글

졸업을 앞두고..  (0) 2013.08.12
부족한 부분, 공부해야 할 부분.  (0) 2013.08.06
3/4분기 정리좀..  (1) 2013.07.19
임베디드에 관해  (0) 2013.07.11
백과사전  (0) 2013.06.05
가을  (1) 2012.10.11
Posted by 아크k

세마포어 (Semaphore)

 

상호배제

세마포어는 음의정수가 될수 없다.

 

 

뮤텍스

이벤트 플래그

메일박스

메시지 큐

이벤트 컨트롤 블럭

'백과사전' 카테고리의 다른 글

man 페이지 활용법!  (0) 2013.07.24
Linux.  (0) 2013.07.22
태스크간 통신(IPC)  (0) 2013.07.18
ctags cscope  (0) 2013.07.18
RTOS(Real Time Operating System) 2  (0) 2013.07.16
RTOS(Real Time Operating System)  (0) 2013.07.15
Posted by 아크k

ctags cscope

백과사전 2013.07.18 10:12
1. ctags 란 ?
   = >  ctags는 프로그래밍 소스 코드의 태그 (전역변수 선언, 함수 정의, 메크로 정의)들의
          데이터 베이스(tags파일)을 생성하는 명령어입니다.
          커널 소스 분석등 작업에서 탁월한 성능을 발휘합니다

2. ctags 버전 확인하기

    = > (쉘에서)  $ctags --version 이라고 입력한다 설치 돼어 있는경우 버전 정보가 나옵니다
    cannat commond find  => 깔려 있지 않을시 에러 출력
    ( 대부분 기본리눅스에서 디폴트로 깔려 있지 않을것이다 처음 설치시 전체 설치 또는..
      선택 설치로 ctags를 설치 한경우라면 몰라도 디폴트로는 거의 안깔려 있습니다.
      특히 ubuntu 의 경우 원래 데스크탑용으로 개발 돼고 있어서.. 개발 툴이 하나도 안깔려 있기
      때문에 별또 설치를 필요로 합니다 )

3. ctags 설치하기
    => ubuntu 의 경우 레드헷 이나 페도라 등 다른 리눅스에 비해 비교적 쉽게 설치할수 있습니다
        레드헷일 경우 rpm 버전을 따로 다운 받아 설치 해야 하는 방면 데비안 계열 명령어
        apt-get으로 간편하게 설치가 가능합니다

    ubuntu 설치 하기
      (쉘에서) $apt-get install  ctags  (자동으로 최신 버전으로 설치 됩니다 )

    redhat 설치하기 http://sourceforge.net/projects/ctags (rpm 버전을 다운 받은후)
        (쉘에서) $rpm -ivf 다운받은 rpm 파일명 (으로 설치 하실수 있습니다)

    설치 완료 후 2번 과정 버전을 확인 하면 버전 정보가 재대로 나오면 재대로 설치가 되었습니다.
    레드헷 일 경우 lib.so 에러가 발생할수 있는데 버전이 안맞는 것을 깔면.. 설치가 재대로
    돼지 않는 문제점이 발생합니다 위 링크에서 최신버전 5.6.1 의 경우 페도라 5 용 이므로
    레드헷일 경우 5.0 버전 이나 찾아보시고 하위 지원 돼는 버전을 설치 해야 합니다..
    확인 결과 5.0.1 은 재대로 설치가 가능하더라고요..

4. tags 파일 만들기
    = > 우선 커널이 있는 폴더로 이동 합니다
           $cd /usr/src/linux/ <== ( 전 linux로 심볼릭 링크가 돼어 있습니다 안돼어 있다면
           심볼릭 링크를 만드셔도 돼고 직접 경로를 다 입력 하셔도 상관없습니다)
           심볼릭 링크 만들기 -> ln -s  /usr/src/커널폴더명 linux
           커널 폴더로 이동했으면 ctags -R 을 입력하여 tags 파일을 생성합니다
           시간이 좀 걸리는데 ls로  tags 파일이 생성 된걸 확인 합니다

          $cd /usr/include 폴더로 이동 합니다
           마찬가지로 ctags -R 명령으로 include 폴더도 tags 파일을 생성 합니다
           정상적으로 파일이 생성 되었다면 다음 단계로 넘어갑니다

5. ctags 설정 하기
    = > 설치 가 완료 되고 tags파일이 생성 되었다면 작업이 거의 끝난거나 마찬 가지 입니다.
           매번 vi 에서 ex모드 에서 입력하는거도 한계가 있으므로 .vimrc 파일에
           tags 를 설정 해두는게 편합니다
           vimrc 파일에 다음 라인을 입력 한후 저장합니다
           set tags=./tags,/usr/src/linux/tags,/usr/include/tags
           (linux 의 경우 심볼릭 링크 한경우)  직접 폴더를 입력 하신분은 경롱에 맞게 설정 합니다


사용하기         
=====================================================
여기 까지 했다면 설치 및 설정은 완료 되었습니다..

이제 사용 하는거만 남았는데
복잡하게 책에는 여러 옵션이 많지만 보통 잘안쓰는 옵션들은.. 거의 쓸일이 없고..
자주 쓰는 것만 다루겠습니다.

ex 모드 -> vi 에서 : 을 눌러서 명령을 입력 하는 모드를 말합니다
ex 모드에서 :tj 함수명 이나 구조체명 (왜 tj 인가 ?  tags jump 약어)
(찾고자 하는 함수명이나 구조체 이름등을 입력 하면 관력 이름 함수나 구조제..정보가 나타 납니다 )
보통 한두가개 아닌경우 스페이스바를 누르면 목록이 더나오며 d 를 누를 경우 한페이지씩..
보여 줍니다 나갈때는 q로 나갈수 있습니다 그럼 <CR> 이 나오는데 여기서 찾은 함수나 구조체
번호를 입력 하면 자동으로 점프합니다

다른 방법으로 가는 방법은 커널 소스를 vi열어서 분석하다가 함수 원형이나 구조체 이름에서
ctrl + ] 를 누르면 자동으로 태그를 찾아 갑니다
이전으로 다시 돌아 올때는 ctrl + t 를 사용 해서 돌아 올수 있습니다

ex모드 : sts 함수명 , 구조체명
위에서 설명한 tj와 비슷 하지만 한가지 다른점이 수평창분활을 해서 결과를 보여 줍니다

이외 명령이 더 있지만 실제 이거만 알아도 충분 합니다 나머지 이전으로 돌아가기 이런건..
거의 실제 사용 되지도 않습니다 위에 설명한 4가지 방법이 주로 쓰는 방법입니다.

[tip] 헤더 파일 바로 읽어 오기

#include <linux/kernel.h> <- 헤더파일 이름에 커서를 위치 한후

Ctrl + wf 를 누르면 창이 수평 분할되어 헤더파일이 열립니다


====================================================



cscope 를 이용한 2%로 채우기
    ctags만으로도 커널소스와 소규모 프로젝트롤 분석하는데 부족함은 없지만..
    2%로 부족한게 있다 ctags만으로는 지역변수나 전역변수가 사용된곳 은 찾기가 힘들다
    이때 cscope 사용하면 됩니다

cscope 설치 하기
    ubuntu = > $apt-get install cscope 로 간단히 설치 할수 있다 (데비안 계열의 강점)
    redhat
    (다운 로드)
    wget http://belnet.dl.sourceforge.net/sourceforge/cscope/cscope-15.3-1.i386.rpm
    설치 하기
    $rpm -ivf cscope-15.3-1.i386.rpm

cscope 설정 하기
  
cscope 설정은 좀 손이 많이 갑니다 (ctags에 비해...)
    우선 mkcscope.sh 파일을 만들어야 합니다
  ============ mkcscope.sh 파일 내용 ================
    #!/bin/sh
    rm -rf cscope.files cscope.files

    find . \( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.s' -o -name

    '*.S' \) -print > cscope.files
    cscope -i cscope.files
    ============================================
    파일 생성 후 파일 퍼미션 설정
    $chmod 755 mkcscope.sh
    $mv mkcscope.sh /usr/bin
    디렉토리 이동
   
$cd /usr/src/linux (심볼릭 링크 아닐시 전체 경로)
    mkcscope.sh 실행  하면 빌드 돼면서 데이터가 만들어 집니다
    빌드 종료시 값을 입력 하는게 나오는데 ctrl + d를 눌러서 종료 합니다.
   
    이후 .vimrc 파일에 다음 내용을 추가 합니다
    =============================================
    set csprg=/usr/bin/cscope
    set csto=0(숫자 0)
    set cst
    set nocsverb

    if filereadable("./cscope.out")
       cs add cscope.out
    else
       cs add /usr/src/linux/cscope.out
    endif
    set csverb
   ==============================================
   이제  설정은 끝이 났습니다

   사용하기 ( cscope 의 명령 형식 )
    :cs find {질의종류} {심벌}
    ex) cs find s start_kernel

  
cscope 의 질의 종류
    0 or s  - > Find this C symbol
    1 or g  - > Find this definition
    2 or d  - >
Find functions called by this function
    3 or c  - > Find functions calling this function
    4 or t  - > Find assignments to
    6 or e  - > Find this egrep pattern
    7 or f   - > Find this File
    8 or i   - > Find files #including this file


cscope 를 활용 함으로써 더 완벽히 커널소스를 분석할수 있지만 ctags 만 사용하는거 보다
cscope 를 같이 사용 하니까 찾는데 시간이 더 오래 걸리는거 같네요..
.vimrc 파일에서 cscope 세팅 부분을 주석으로 해두고 사용하다가..
더 깊게 찾을 필요가 있을때 사용 하는게 더 편할듯 싶은데..
그냥 설정 된 체로 ctrl + ] 를 남발하면  ctags만 있을때는 더이상 찾을게 없으면
그냥 위치에서 멈처 있는데 cscope 가 세팅 돼어 있다면 계속 해서  파일을 검색해서
검색하는데 시간이 좀 걸려서..^^;; 거슬릴때가 있네요..

정리 할겸 만들어 봤는데 생각보다 시간이 오래 걸리는듯..
해보시고 안돼는거 있으면 댓글 달아 주세요..


기존 내용에서 추가 된 부분입니다..

Tlist 내용이 빠져서 다시 수정합니다..

뭐 크게 달라지는 내용은 없고요.. Tlist 가 먼지 모르는 분도 있을테니까요..

간단하게 Tlist 를 설명하지면 TagList 약자로써.. 이름에서 설명하는거 처럼..

해당 파일의 정의된 함수명,변수(#define), 등을 이름으로 효율적으로 보여주는 유틸리티 입니다.

ctag & cscope 와 연동해서 사용하면 무척 효율적이죠..

말로 설명하는게 감이 안오시는분은.. Visual C++에서요 Cpp 확장자로 작업하시면..

클레스 별로.. 함수 이름이 나와서 관리 할수 있잖아요.. 그거랑 똑같다고 보시면 돼요..

관련 문서는 인터넷에서 검색하면 쉽게 찾을수 있고요..

못찾겠다 싶은 분들은 제 게시판에 잘설명된게 있어서 퍼와서 올려 뒀어요.. 참고하세요..^^

http://blog.naver.com/ikariksj/140026617491




=== 2차 수정부분 === [ 2006/09/21 ]
mkcscope.sh 파일 생성시  띄워쓰기 주의를 하지 않으면..
문제가 발생하는게 확인 돼었습니다..
한줄로 붙여서 쓰면 보기 불편해서 두줄로 짤라뒀는데..
그부분을 그대로 복사해서 붙여 넣으면 오류가 발생하네요..
물론 직접 코딩하는거면 띄위쓰기 주의하면서 하면 괜찮은데..ㅎ
작성된지 좀됀문서인데도 요즘도 간간히 스크랩 돼는걸 보면..
필요하신분을이 있을지 모르니.. mkcscope.sh 를 새로 첨부 해둘께요..


참 노파심에 한말씀 드린다면 네이버에서 블로그 자료 올리면 자동으로 아이이가..
붙게 돼는데 받은 파일에서 아이디 부분을 지워야 합니다..
mkcscope.sh 로 변경해서 사용하세요..

 

출처 : http://hackereyes.tistory.com/entry/%ED%8E%8C-ctags-cscope-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9


 

 

'백과사전' 카테고리의 다른 글

Linux.  (0) 2013.07.22
태스크간 통신(IPC)  (0) 2013.07.18
ctags cscope  (0) 2013.07.18
RTOS(Real Time Operating System) 2  (0) 2013.07.16
RTOS(Real Time Operating System)  (0) 2013.07.15
SIMD, ARM PROCESSOR  (0) 2013.07.11
Posted by 아크k

우선순위

 

OS_ENTER_CRITICAL

일반 인터럽트(IRQ, TICK)

높은 우선순위(0,1,2,3,4...)

IDLE 테스크 (62)의 특징

1. cpu가 아무일도 안한다.

2. 휴면하지도 않는다.

 

STAT 테크스 63

 

포팅

 

프로그램(소프트웨어), 소스의 재사용(효율성)

 

포팅의 순서 - 원하는것이 무엇인지 분명히 한다.

                    찾는다! (구글링) ex) CORTEX-A8, MC100, 리눅스OS, 그래픽 소프트웨어(Qt), 크로스 컴파일

                    누가 포팅을 했었는지 확인

                    readme를 잘 읽고 잘 따라해보자 (...)

                    컴파일.. 포기하지 않겠다... (...)

 

세마포어

1. 동기화 IPC

2. 상호배제

'백과사전' 카테고리의 다른 글

태스크간 통신(IPC)  (0) 2013.07.18
ctags cscope  (0) 2013.07.18
RTOS(Real Time Operating System) 2  (0) 2013.07.16
RTOS(Real Time Operating System)  (0) 2013.07.15
SIMD, ARM PROCESSOR  (0) 2013.07.11
어셈블리  (0) 2013.07.08
Posted by 아크k

 

 

커널 서비스인 타이머 장치를 이용하여 일정 시간 동안 지연실행(delayed run)을 할 수 있다.

커널이란 운영체제의 핵심이다. 스케줄링이 핵심기능

 

운영체제 : 시스템 하드웨어를 관리, 시스템 서비스를 제공

선점형 커널 : 진행하던 작업중 인터럽트가 발생하고 진행하던 작업보다 중요한 작업을 먼저 처리,

                   여기서 꼭 인터럽트가 발생해야 하는가~? Yes or No.

 

태스크 마다 스택, 문맥, tcb(task control block)를 가진다.

문맥전환 :문맥전환 실행결정, 문맥저장, 문맥복원 순서를 가진다.

타임퀀텀 : 각 태스크들이 점유하는 시간

 

인터럽트 발생시 문맥을 저장하고 isr(인터럽트 서비스 루틴)로 점프

지연시간 : 비활성화 최대시간 +isr최초 명령시간

응답시간 : 지연시간 + 문맥저장

인터럽트 컨트롤러 : cpu의 비서라고 생각하면 될듯, 각종 인터럽트를 받아서 일괄적으로 cpu에 전달

블럭킹 I/O : 동작이 완료 될때까지 휴면상태에 들어가는 것 , NON블럭킹은 반대적인 개념.

 

 

커널의 시계 (tick) : 딜레이를 두기위해 사용 f=1/T

 

리얼타임 시스템 : 제한된 시간내에 임무를 수행하는 시스템

하드 리얼타임 시스템 : 미사일, 무기제어, 철도자동제어, 의료기기, 자동차   인간에게 해가 될 수 있음

소프트 리얼타임 시스템 : 동영상, data통신, CG, TV

 

마이크로C/OS

개인 Jean J.Labrosse가 만들었으며 소스코드로 되어있다.

공식 사이트 www.micrium.com(소스다운 가능)

 

HPT(Highest Priority Task) : 우선순위가 가장높은 태스크가 실행되는 원리

uC/OS는 우선순위 스케쥴링만, 라운드로빈 스케쥴링을 지원한다.

그렇다면 멀티태스킹은 어떻게 하는건가!?

 

 

heap : 정적할당

.bss : 동적할당

 

스택의 활용

1. 지역변수

2. 리턴 어드레스 저장/복원

3. 중간값

4. 전달인자

5. 문맥(context)

6. 중복 발생 가능한 인터럽트 서비스 루틴에서 사용하는...(Nested Interrupt)

 

태스크용 스택의 크기를 최적화 하기

1. 태스크 생성시 최적화를 위한 스택검사 옵션 활성화 - 모두 zero clear

2. OSTaskstkchk()함수를 이용하여 실시간 스택 사용량을 확인한다. - 0의 갯수를 센다.(find non-zero)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'백과사전' 카테고리의 다른 글

ctags cscope  (0) 2013.07.18
RTOS(Real Time Operating System) 2  (0) 2013.07.16
RTOS(Real Time Operating System)  (0) 2013.07.15
SIMD, ARM PROCESSOR  (0) 2013.07.11
어셈블리  (0) 2013.07.08
포인터와 배열을 완전히 이해했다면!  (0) 2013.07.04
Posted by 아크k

임베디드에 관해

생각 2013.07.11 17:22

임베디드는 C로 개발되는 경우가 많으나 요새 JAVA로 개발되는 어플리케이션도 많아지고 있는 추세

 리눅스와 C언어 자바 공부하시고 관련된 S/W개발하셔서 포트폴리오로 사용하신다면 취업까지 무난하게 진행

 

임베디드 시스템의 장점

임베디드 시스템의 장점은 여러가지가 있다.

우선 다양한 기능을 더하거나 향상시킬 때 비싼 하드웨어를 교체하는 것이 아니라 소프트웨어만 교체함으로써 제품생산의 경비를 줄일 수 있고, 유지보수를 보다 쉽게 할 수 있다는 장점이 있다.

특히 시스템을 개발하고 생산할때 단순히 하드웨어 위주로 개발된 시스템인 경우에는 제품을 모방하므로 지적재산권을 보호하기 어려우나 임베디드 시스템으로 제품을 생산할때에는 소프트웨어로 구성되어 있는 부분이 감춰지기 때문에 지적재산권 보호가 용이하다.

 

기본적으로 프로그래밍언어인 C,C++, JAVA-X, JSP

네트워크 CCNA, CCNP 

서버 Linuxs, Window

 

 

'생각' 카테고리의 다른 글

부족한 부분, 공부해야 할 부분.  (0) 2013.08.06
3/4분기 정리좀..  (1) 2013.07.19
임베디드에 관해  (0) 2013.07.11
백과사전  (0) 2013.06.05
가을  (1) 2012.10.11
평탄하지 않네...  (0) 2012.05.04
Posted by 아크k


티스토리 툴바