EzDoum

찾기
처음으로 | 찾기 | 아카이브 | 글 올리기 | 링크 | 자료실 | 통계 | 연락처 | 자유게시판
이지도움 특집
전체보기
네트워크
TI OMAP35x
TI DaVinci
Analog Blackfin
RobotWar2005
임베디드!
캐쉬의 모든것
메모리 할당 알고리즘
CPU 파이프라이닝
자료구조(Tree)
금융

Login
이름

암호

기억하기


사용자 등록

현재 접속중인 등록 사용자는 0명, 익명 사용자는 3명 입니다.
전체 등록 사용자: 751명

마지막 답장
·libcurl + fuse 조합으로 되는게 많네. (1)
·Linux Ftrace에 관해 (3)
·Android MTP ( Media Transfer Protocol ) (1)
·Lighttpd에 인증을 digest 사용시 IE 오동작 문제? (1)
·Dtrace에 관해 (1)

최근글
·OpenSSL and multi-threads (0)
·ARM 환경에서 OpenCL 사용 (0)
·IoT용 WIFI 모듈 비교 ( MCU ) 클래스 (0)
·Glances - 리눅스 여러 가지 항목을 한 화면에서 모니터링 (0)
·plugin 방식의 로그 분석기 (0)

뜨거운 감자
·나는 인터렉티브한 환경에서 역어셈블 한다. (12)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)
·ASP.NET의 데이터 그리드와 사용자 컨트롤 (7)
·DHTML Editing Control (7)

가장 많이 읽은 글
·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
·멀티쓰레드(Pthread) 프로그래밍
·Sorting Algorithm Animation (2)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

DaVinci - Embedded Linux
글쓴이: EzDoum 글쓴날: 2007년 01월 23일 오후 02:06
하드웨어



DaVinci에서 Embedded Linux 관련 사항을 찾아 보기 시작했다. 개발킷안에 몬타비스타 linux pro v4.0 이 들어있다. 리뷰하는 포인트는 리눅스의 실시간 반응성과 dsp모듈간의 통신을 어떻게 처리 하느냐가 중점이다.

# 스펙트럼사에 다빈치 evm 자료
http://c6000.spectrumdigital.com/davincievm/revd/

# davinci-linux-open-source 메일링 리스트 archive
http://linux.omap.com/pipermail/davinci-linux-open-source/

-> 검색하고 글을 보기는 아래의 관련링크에 걸린 메일링 아카이브가 좋음.
그냥 링크를 걸었더니 korweblog 주소자동 링크 걸기에 오류가 생겨서 따로 링크는 안 적음.

# 몬타비스타 Fast Real-Time Domain

MontaVista Linux Open Source Real Time Project
http://www.mvista.com/dswp/wp_rtl.pdf
http://www.mvista.co.kr/products/realtime.html

MontaVista finally ships 2.6-based embedded Linux
http://www.linuxdevices.com/news/NS3888274861.html

!! SPECIAL REPORT: Linux kernel 2.6 arrives in embedded !!
http://linuxdevices.com/news/NS9430710378.html

A Brief History of Real-Time Linux
http://www.freescale.com/files/ftf_2006/doc/presentations/India/NE207.pdf

# TI문서

spraah2 - Building a Small Embedded Linux Kernel Example.pdf
sprue66a - DVEVM Getting Started Guide.pdf
sprued5 - Codec Engine Server Integrator's.pdf

# 참고서적

에이콘 임베디드 프로그래밍 시리즈-018 리눅스 커널 심층분석 (개정2판)
Robert Love 저 / 강호관,이상근 공역 | 에이콘출판사 | 2005년 12월
http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=1813231&CategoryNumber=001001003005001002

IT EXPERT-008 IT EXPERT 리눅스 디바이스 드라이버
유영창 저 | 한빛미디어 | 2004년 12월
http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=1433632&CategoryNumber=001001003005001002

리눅스 디바이스 드라이버 (개정3판)
조나단 코벳 등저 / 박재호 등역 | 한빛미디어 | 2005년 11월
http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=1796755&CategoryNumber=001001003005001002


  • 관련 링크
  • [분류: 하드웨어 인쇄용 페이지 본문 email로 보내기 ]

    <  DaVinci - 메일링 리스트 내용정리 | 금융 - 네이버 지식인 재테크 갈무리  >
    DaVinci - Embedded Linux | 답장: 3개 | 본문에 답장
    정렬 :  
    답장 EzDoum 2007년 01월 23일 오후 02:35 [ 이글에 답장 | 본문에 답장 | 책갈피 ]
    http://wiki.kldp.org/wiki.php/UnreliableGuideToHackingTheLinuxKernel#s-2.3

    소프트웨어 인터럽트 (Bottom Halves, Tasklets, softirqs)
    저자 : Paul Rusty Russell <rusty@rustcorp.com.au>
    번역 : 김남형 <pastime@ece.uos.ac.kr>


    시스템 콜을 호출한 뒤 사용자 모드로 돌아가기 전이나 하드웨어 인터럽트 핸들러가 종료한 후에는 (보통 하드웨어 인터럽트 핸들러에서 처리한) 표시된 소프트웨어 인터럽트 가 수행된다.


    많은 실제적인 인터럽트 처리가 이 부분에서 이루어진다. SMP 초창기에는 오직 bottom halves (하반부, BHs) 라는 개념만이 존재하였는데, 이것은 다수의 CPU 에 의한 장점을 살리지 못했다. 얼마 후 (고성능의 컴퓨터로 전환한 후에?) 이러한 제한사항들은 사라졌다.


    include/linux/interrupt.h 파일에 여러가지 하반부들의 리스트가 있다. 얼마나 많은 CPU 를 가지고 있는가에 상관없이, 하반부는 동시에 두 개이상 수행될 수 없다. 이러한 방식은 SMP 에 적용하기는 쉽지만, 성능을 개선시키기는 어렵다. 하반부에서 중요한 것은 타이머 하반부이다. (include/linux/timer.h): 여기서는 주어진 길이만큼의 시간이 지난 후에 특정 함수를 호출하도록 등록할 수 있다.


    커널 버전 2.3.43 에서 softirq 가 소개되었고, 그 아래에서 하반부가 동작하도록 수정되었다. (지금은 하반부의 사용을 권하지 않고 있다... deprecated) softirq 는 SMP 의 장점을 완전히 살릴 수 있도록 한 하반부라고 할 수 있다: 동시에 수행될 수 있는 CPU 의 수만큼 한번에 수행된다. 이것은 경쟁 조건에서 각각의 락을 이용해서 공유된 데이타에 접근하도록 하는 처리가 필요하다는 것을 의미한다. 어떤 softirq 가 활성화 되었는지를 표시하기 위해 bitmask 를 사용하므로, 32 개 이상의 softirq 를 처리할 수 없다.


    tasklet (include/linux/interrupt.h) 은 동적으로 등록할 수 있다는 점 (즉, 원하는 만큼 많이 등록할 수 있다) 을 제외하고 softirq 와 동일하다. 그리고 (하반부와 달리) 각각의 tasklet 은 동시에 수행될 수 있지만, 특정 tasklet 은 한 순간에 오직 하나의 CPU 에서만 수행되도록 보장한다. [2]


    주의: tasklet 이라는 이름은 잘못된 것이다: 이것은 task 와 아무런 연관이 없다. (아마 이때 Alexey Kuznetsov 가 보드카를 많이 마신 것 같다..)


    현재 softirq (혹은 하반부나 tasklet) 가 실행 중인지를 알아보기 위해 in_softirq() 매크로 (include/linux/softirq.h)를 사용할 수 있다.


    주의: 하반부에 대한 락이 걸려있는 경우에는 in_softirq() 매크로가 항상 거짓을 리턴함을 염두에 두자


    [수정]

    답장 EzDoum 2007년 01월 23일 오후 02:54 [ 이글에 답장 | 본문에 답장 | 책갈피 ]
    검색하다가 나온 부트로그. 바로 테스트 해볼만한게 많네.

    http://72.14.235.104/search?q=cache:YI9xMVK_d7sJ:osdir.com/ml/davinci-linux-open-source%40linux.davincidsp.com/msg00988.html+davinci+frame+buffer&hl=ko&gl=kr&ct=clnk&cd=6

    U-Boot 1.1.3 (Jun 5 2006 - 15:13:01)

    U-Boot code: 81080000 -> 81097570 BSS: -> 8109FF60
    RAM Configuration:
    Bank #0: 80000000 256 MB
    MY AMD Flash: 16 MB
    In: serial
    Out: serial
    Err: serial
    ARM Clock :- 297MHz
    DDR Clock :- 162MHz
    Hit any key to stop autoboot: 0
    BOOTP broadcast 1
    DHCP client bound to address 192.168.0.100
    TFTP from server 192.168.0.108; our IP address is 192.168.0.100
    Filename 'uImage'.
    Load address: 0x80700000
    Loading: #################################################################
    #################################################################
    #################################################################
    #################################################################
    #
    done
    Bytes transferred = 1332960 (1456e0 hex)
    ## Booting image at 80700000 ...
    Image Name: Linux-2.6.10_mvl401-davinci_evm
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 1332896 Bytes = 1.3 MB
    Load Address: 80008000
    Entry Point: 80008000
    Verifying Checksum ... OK
    OK

    Starting kernel ...

    Uncompressing
    Linux.............................................................
    Linux version 2.6.10_mvl401-davinci_evm ([EMAIL PROTECTED]) (gcc version
    3.4.3(MontaV
    ista 3.4.3-25.0.30.0501131 2005-07-23)) #7 Mon Nov 6 16:23:28 MST 2006
    CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    Machine: DaVinci EVM
    Memory policy: ECC disabled, Data cache writeback
    Built 1 zonelists
    Kernel command line: console=ttyS0,115200n8 noinitrd rw ip=dhcp
    root=/dev/nfs nf
    sroot=192.168.0.108:/home/guest/workdir/filesys ,nolock mem=120M
    PID hash table entries: 512 (order: 9, 8192 bytes)
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    Memory: 120MB = 120MB total
    Memory: 118784KB available (2279K code, 479K data, 136K init)
    Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
    CPU: Testing write buffer coherency: ok
    spawn_desched_task(00000000)
    desched cpu_callback 3/00000000
    ksoftirqd started up.
    desched cpu_callback 2/00000000
    desched thread 0 started up.
    NET: Registered protocol family 16
    Registering platform device 'musb_hdrc'. Parent at platform
    DaVinci I2C DEBUG: 18:26:06 Oct 17 2006
    Registering platform device 'i2c'. Parent at platform
    usbcore: registered new driver usbfs
    usbcore: registered new driver hub
    Bluetooth: Core ver 2.7
    NET: Registered protocol family 31
    Bluetooth: HCI device and connection manager initialized
    Bluetooth: HCI socket layer initialized
    JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
    Registering platform device 'davincifb.0'. Parent at platform
    Setting Up Clocks for DM420 OSD
    Console: switching to colour frame buffer device 90x30
    fb0: dm_osd0_fb frame buffer device
    fb1: dm_vid0_fb frame buffer device
    fb2: dm_osd1_fb frame buffer device
    fb3: dm_vid1_fb frame buffer device
    Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
    Registering platform device 'serial8250'. Parent at platform
    ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
    io scheduler noop registered
    io scheduler anticipatory registered
    RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
    Registering platform device 'ti_davinci_emac'. Parent at platform
    TI DaVinci EMAC: MAC address is 00:0e:99:02:54:d8
    TI DaVinci EMAC Linux version updated 4.0
    TI DaVinci EMAC: Installed 1 instances.
    netconsole: not configured, aborting
    i2c /dev entries driver
    Linux video capture interface: v1.00
    Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
    ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
    hda: TOSHIBA MK4032GAX, ATA DISK drive
    elevator: using anticipatory as default io scheduler
    ide0 at 0xe10661f0-0xe10661f7,0xe10663f6 on irq 22
    hda: max request size: 1024KiB
    hda: 78140160 sectors (40007 MB), CHS=16383/255/63
    hda: hda1 hda2
    ide0: BM-DMA at 0xe1066000-0xe1066007, BIOS settings: hda:pio, hdb:pio
    physmap flash device: 0 at 8000000
    Failed to ioremap
    mice: PS/2 mouse device common for all mice
    Bluetooth: HCI USB driver ver 2.7
    usbcore: registered new driver hci_usb
    Bluetooth: VHCI driver ver 1.1
    Bluetooth: HCI UART driver ver 2.1
    Bluetooth: HCI H4 protocol initialized
    Bluetooth: HCI BCSP protocol initialized
    NET: Registered protocol family 2
    IP: routing cache hash table of 512 buckets, 4Kbytes
    TCP: Hash tables configured (established 8192 bind 16384)
    NET: Registered protocol family 1
    NET: Registered protocol family 17
    Bluetooth: L2CAP ver 2.6
    Bluetooth: L2CAP socket layer initialized
    Bluetooth: SCO (Voice Link) ver 0.3
    Bluetooth: SCO socket layer initialized
    Bluetooth: RFCOMM ver 1.3
    Bluetooth: RFCOMM socket layer initialized
    Bluetooth: BNEP (Ethernet Emulation) ver 1.2
    Bluetooth: BNEP filters: protocol multicast
    Bluetooth: HIDP (Human Interface Emulation) ver 1.0
    Sending DHCP requests .., OK
    IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.0.100
    IP-Config: Complete:
    device=eth0, addr= 192.168.0.100, mask=255.255.255.0, gw=192.168.0.1,
    host=192.168.0.100, domain=, nis-domain=(none),
    bootserver=0.0.0.0, rootserver=192.168.0.108, rootpath=
    Looking up port of RPC 100003/2 on 192.168.0.108
    Looking up port of RPC 100005/1 on 192.168.0.108
    VFS: Mounted root (nfs filesystem).
    Freeing init memory: 136K
    nfs: server 192.168.0.108 not responding, still trying
    nfs: server 192.168.0.108 OK
    [수정]

    답장 EzDoum 2008년 05월 27일 오후 05:30 [ 이글에 답장 | 본문에 답장 | 책갈피 ]
    http://linux.omap.com/pipermail/davinci-linux-open-source/

    위의 메일링 리스트와 같은데 아래 사이트가 더 보기 편함

    http://news.gmane.org/gmane.linux.davinci

    검색은 구글에서 이런식으로 (site:)
    http://www.google.com/search?q=dma+site%3Ahttp%3A%2F%2Flinux.omap.com%2Fpipermail%2Fdavinci-linux-open-source%2F&rls=com.microsoft:ko:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7GFRC


    [수정]

    DaVinci - Embedded Linux | 답장: 3개 | 본문에 답장
    정렬 :  

    답장 쓰기
    글을 올리시려면 로그인 (사용자 등록) 하셔야 합니다.

    검색
    Google

    분류
    ·공지 (6)
    ·인터넷 (87)
    ·하드웨어 (260)
    ·C/C++ (65)
    ·어셈블리 (7)
    ·리눅스 (136)
    ·리눅스 커널 (67)
    ·윈도우즈 (25)
    ·데이터베이스 (20)
    ·보안 (16)
    ·.NET (25)
    ·그래픽 (13)
    ·책소개 (42)
    ·호기심 천국 (80)
    ·잡담 (111)
    ·사랑 (3)

    전체 본문수: 963
    전체 답장수: 525


    분류 : 하드웨어
    최근글
    최근글
    가장 많이 읽은 글
    ·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
    뜨거운 감자
    ·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

    EzDoum투표
    이지도움 어때요?
    이게 뭐야. 다시 안올란다. --;
    아이 좋아라~ +_+;
    관심없다.
    먼가는 있는거 같은데 뭐하는 곳이지?
    기타 (자유게시판에 글로 남겨 주세요)
    [ 결과 | 투표 ]

    랜덤 링크
    http://kldp.net


     Home ^ BACK TO TOP ^ EzDoum - 도움이 필요하세요~??
     Powered by KorWeblog 1.5.8 Copyleft © 2001 EzDoum, 관리자: EzDoum