PART II 커널의시작 start_kernel 은어떻게호출될까? 커널의실제시작함수는 start_kernel() 함수다. 이함수는다시 100여개의함수들을호출하면서부팅을진행한다. 하지만 startk_kernel() 함수가호출되기전에커널컴파일을통해얻어진 zimage의압축해

Size: px
Start display at page:

Download "PART II 커널의시작 start_kernel 은어떻게호출될까? 커널의실제시작함수는 start_kernel() 함수다. 이함수는다시 100여개의함수들을호출하면서부팅을진행한다. 하지만 startk_kernel() 함수가호출되기전에커널컴파일을통해얻어진 zimage의압축해"

Transcription

1 PART II 커널의시작 start_kernel 은어떻게호출될까? 커널의실제시작함수는 start_kernel() 함수다. 이함수는다시 100여개의함수들을호출하면서부팅을진행한다. 하지만 startk_kernel() 함수가호출되기전에커널컴파일을통해얻어진 zimage의압축해제, 페이지디렉터리구성과같은기초적인작업이먼저수행되어야한다. 바로이 번파트에서 start_kernel() 함수가불리기전까지일련의과정을알아볼것이다. 이번파트에서다루는모든코드는 ARM 어셈블리로작성되어있다. 부트로더로부터 PC(Program Counter) 가 start 레이블로이동되면서기초작업이수행된다. start_kenel 이호출되는단계는크게 3 단계로구분할수있는데, 1 단계는커널이미지인 zimage 압축 을해제하기위한준비단계로프로세서버전에맞는프로세서타입테이블로부터캐시켜기, 끄기, 플러시등을수행하고, MMU 를위한 16KB 페이지디렉터리를구성한다. 2 단계는 zimage 의압축을 해제한다. 마지막 3 단계에서는프로세서및머신정보와부트로더로부터넘겨온 atag 정보의유효성 등을검사한후 MMU 를활성화하는단계를거쳐커널의시작인 start_kernel() 함수를호출하게된다. 그림 PART II-1 은이번파트에서알아볼커널의주요내부흐름 (flow) 을보여준다.

2 5 Chapter 커널압축해제준비하기 이번장은압축된커널이미지 (zimage) 를해제하기위해필요한단계들에대해서알아볼것이다. 압축해제준비단계로는인터럽트비활성화, 동적메모리할당, BSS 영역초기화, 페이지디렉터리초기화, 캐시켜기등을수행한다. 압축을해제하기위한준비중가장중점을두는부분은 zimage의압축이해제되는위치를기준으로하위 16KB에페이지디렉터리를위한공간을구성하고, CP15의 c2 레지스터에페이지디렉터리의위치를저장하는것이다. ARM에서페이지디렉터리는 4GB의메모리를 1MB 섹션으로관리한다. 따라서 4GB를관리하기위해서는 1MB 단위의 4,096개엔트리가필요하고각엔트리는 32비트워드로관리되기때문에총 16KB(4Byte 3 4,096엔트리 5 16KB) 가필요하게된다. 또한페이지디렉터리의위치에해당하는엔트리에 cacheable과 bufferable을설정하여페이지디렉터리가캐싱되어빠르게접근될수있도록한다. 그림 5-1은이번장에서알아볼커널코드의내부흐름을도식화한것이다. 그림 5-1 start 레이블에서압축해제준비까지흐름도

3 5.1 부트로더에이어첫스타트끊기 - start 레이블 부트로더에이어첫스타트끊기 - start 레이블 부트로더에의해서하드웨어및소프트웨어에대한기본적인초기화가이루어진이후에가장먼저실행되는것은 arch/arm/boot/compressed/head.s에있는 start 레이블에있는코드들이다. 12) start 레이블에서는부트로더로부터아키텍처 ID와 atags(7.4절참고 ) 정보를전달받는다. 또한인터럽트비활성화및레지스터를초기화하고 not_relocated 레이블로점프한다. 코드 5-1을자세히살펴보자. 코드 5-1 arch/arm/boot/compressed/head.s 의 start 레이블 start:.type start,#function 1: mov r7, 아키텍처 ID 저장 ➊ mov r8, atags 포인터저장 #ifndef ARM_ARCH_2 ➋ mrs r2, CPSR 가져오기 orr r2, r2, 6, 7번비트에 IRQ, FIQ 끄도록설정 msr cpsr_c, CPSR에반영해서인터럽트끄기 #else teqp pc, 인터럽트끄기 ➌ #endif.text ➍ adr r0, LC0 ldmia r0, {r1, r2, r3, r4, r5, r6, ip, sp} subs r0, r0, r1 beq not_relocated start 레이블의코드섹션 ➊ 에서는부트로더로부터전달된아키텍처 ID 와 atags 정보를레 지스터 r7, r8 에각각저장한다. 12) 부트로더는다음과같이 5 가지기능을제공해야한다. 1) RAM 초기화, 2) 시리얼포트초기화, 3) 머신타입찾기, 4) 커널 tagged list 구성, 5) 커널이미지로제어이관

4 58 Chapter 5 커널압축해제준비하기 코드섹션 ➋에서는인터럽트를비활성화한다. IRQ와 FIQ를모두비활성화시키며, 인터럽트를비활성화시키는방법은 ARM 프로세서의버전에따라서구현이다르다. ARM_ ARCH_2 는 ARM2, ARM3 프로세서에대해서 GCC에의해서선언되는매크로다. ARM 버전 2, 3의코어에대해서는코드섹션 ➌과같이인터럽트비활성화를한다. 코드섹션 ➍는텍스트섹션의시작이며, 레지스터 r1 r6, ip, sp를아래와같이설정해준다. LC0 -> r1 bss_start -> r2 _end -> r3 zreladdr -> r4 _start -> r5 _got_start -> r6 _got_end -> ip user_stack > sp 표 5-1 에있는 ip, sp 는 GCC 에서사용되는 ARM 레지스터들의명명법 (mnemonic) 이다. GCC 에사용되는 ARM 레지스터이름과쓰임은표 5-1 을참조하기바란다. 그다음에 not_relocated 레이블로점프한다. 표 5-1 GCC 에의해사용되는 ARM 레지스터이름과쓰임 레지스터이름레지스터명명법쓰임 r0 a1 함수에전달되는첫인자 결과값레지스터 스크래치레지스터 r1 a2 함수에전달되는두번째인자 스크래치레지스터 r2 a3 함수에전달되는세번째인자 스크래치레지스터 r3 a4 함수에전달되는네번째인자 스크래치레지스터 r4 v1 레지스터변수 r5 v2 레지스터변수 r6 v3 레지스터변수 r7 v4 레지스터변수 r8 v5 레지스터변수 r9 v6 rfp 레지스터변수 - 실제프레임포인터 r10 sl 스택리미트 (stack limit)

5 5.2 BSS 영역초기화하기 - not_relocated 레이블 59 표 5-1 ( 계속 ) 레지스터이름 레지스터명명법 쓰임 r11 fp 프레임포인터 (frame pointer) r12 ip 스크래치레지스터 (scratch register) r13 sp 스택포인터 (stack pointer) r14 lr 링크레지스터 (link register) r15 pc 프로그램카운터 (program counter) 5.2 BSS 영역초기화하기 - not_relocated 레이블 압축된커널인 zimage의압축을해제하기위한준비단계로 BSS 영역을초기화해주고캐시활성화및동적메모리영역을설정한다. 이러한설정은커널압축해제시꼭필요한요구사항이다. 코드 5-2로원리를살펴보자. 코드 5-2 arch/arm/boot/compressed/head.s 의 not_relocated 레이블 not_relocated: mov r0, #0 1: ➊ str r0, [r2], bss 영역초기화 str r0, [r2], #4 str r0, [r2], #4 str r0, [r2], #4 cmp r2, r2, r3를비교 blo r2가 r3보다작다면뒤쪽레이블 1로점프 bl cache_on ➋ mov r1, malloc 영역은스택바로위에위치 add r2, sp, 64k max, r2 = sp+ 0x10000 bhs r4가 higher or same이라면점프 ➌ 코드섹션 ➊은 BSS 영역을 0으로초기화하며, BSS 영역은초기화되지않은전역데이터를위한공간이다. BSS 영역은 bss_start와 _end 사이의영역이며, 링커스크립트파일에의해서그값이결정된다. 코드섹션 ➋를통해서 cache_on을호출하여캐시를활성화하고, 압축된커널을풀기위한동적메모리공간의시작주소 (user_stack + 4KB) 와끝주소 (user_stack + 4KB + 64KB)

6 60 Chapter 5 커널압축해제준비하기 를레지스터 r1, r2에구한다. 즉, 동적메모리공간은 64KB다. 이것으로커널압축해제를위한모든준비가마무리되었다. cache_on 레이블에해당하는코드분석은다음절 (5.3절) 에서자세히알아볼것이다. 코드섹션 ➌의 wont_overwrite 레이블로점프하여본격적인커널압축해제를실행하게된다. wont_overwrite에대해서는 6.1절에서알아볼예정이다. 알아봅시다! vmlinux.lds 링커스크립트파일 링커스크립트파일은링커에의해참조되며, Makefile에의해생성된오브젝트파일들을어떤식으로링크하여커널이미지를생성할지에대한정보를가지고있다. 링커는항상링커스크립트를사용한다. 만약에링커스크립트를직접제공하지않으면기본스크립트를이용한다. 기본스크립트는 ld -verbose를통해확인할수있다. code@kernel:~$ ld -verbose GNU ld (GNU Binutils for Debian) Supported emulations: armelf_linux_eabi armelfb_linux_eabi elf_x86_64 elf_i386 i386linux elf_l1om using internal linker script: ================================================== /* Script for -z combreloc: combine and sort reloc sections */ OUTPUT_FORMAT( elf32-littlearm, elf32-bigarm, elf32-littlearm ) OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR( /usr/arm-linux-gnueabi/lib ); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE ( executable_start = SEGMENT_START( text-segment, 0x ));. = SEGMENT_START( text-segment, 0x ) + SIZEOF_HEADERS;.interp : { *(.interp) }.text : { *(.text.unlikely.text.*_unlikely) *(.text.stub.text.*.gnu.linkonce.t.*) /*.gnu.warning sections are handled specially by elf32.em. */

7 5.2 BSS 영역초기화하기 - not_relocated 레이블 61 *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0.bss : { *(.dynbss) *(.bss.bss.*.gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the.bss section occupies space up to _end. Align after.bss to ensure correct alignment even if the.bss section disappears because there are no input sections. FIXME: Why do we need it- When there is no.bss section, we don t pad the.data section. */. = ALIGN(.!= 0-32 / 8 : 1); } _bss_end =. ; bss_end =. ;. = ALIGN(32 / 8);. = ALIGN(32 / 8); end =. ; _end =.; PROVIDE (end =.);. = DATA_SEGMENT_END (.); } ================================================== code@kernel:~$ -T 옵션을통해서자신만의링커스크립트를링커에게제공할수있다. 아래코드는간단한링커스크립 트파일이다. OUTPUT_FORMAT( elf32-littlearm, /* 실행할바이너리를 elf */ elf32-littlearm, /* 포멧으로생성한다. */ elf32-littlearm ) OUTPUT_ARCH(arm) /* 아키텍처를 ARM 으로명시한다. */ ENTRY(_start) /* 시작함수를 _start 로설정한다. */ SECTIONS {. = 0x ; /* 이미지시작주소 - mmu 사용을하지않을경우 0xA 과같이물리메모리의주소가들어갈수도있다.*/. = ALIGN(4);

8 62 Chapter 5 커널압축해제준비하기 }.text : { *(.text) }. = ALIGN(4);.rodata : { *(.rodata) } /* 각오브젝트 (.o) 파일의 text 섹션 ( 코드영역 ) 들이링커에의해서하나의 text 섹션으로재배치된다. */ /* 각오브젝트 (.o) 파일의 rodata 섹션 ( 읽기전용데이터영역 ) 들이링커에의해서하나의 rodata 섹션으로재배치된다. */. = ALIGN(4); /* 각오브젝트 (.o) 파일의 data 섹션 ( 데이터.data : { *(.data) } 영역 ) 들이링커에의해서하나의 data 섹션으로재배치된다. */. = ALIGN(4); /* 각오브젝트 (.o) 파일의 got 섹션 (global got : { *(.got) } offset table) 들이링커에의해서하나의 got 섹션으로재배치된다.*/. = ALIGN(4); /* 각오브젝트 (.o) 파일의 bss 섹션 ( 초기화.bss : { *(.bss) } 되지않은데이터영역 ) 들이링커에의해서 하나의 bss 섹션으로재배치된다. */ 5.3 캐시활성화하기 - cache_on 레이블 BSS 영역초기화와동적메모리영역설정등을해주었다면커널압축해제를위한마지막준비단계로서캐시켜기 (cache on) 를수행한다. 리눅스에서캐시켜기는 ARM 아키텍처버전마다서로다르게구현된다. cache_on 레이블에서는현재시스템의 ARM 아키텍처버전에맞는캐시켜기서브루틴을찾아호출한다. 또한 setup_mmu라는서브루틴을호출하여페이지디렉터리를초기화해준다. 코드 5-3을통해자세히살펴보자. 코드 5-3 arch/arm/boot/compressed/head.s 의 cache_on 레이블 cache_on: mov r3, cache_on 함수 ➊ b call_cache_fn call_cache_fn: adr r12, r12 = 테이블의시작주소 ➋ #ifdef CONFIG_CPU_CP15 mrc p15, 0, r6, c0, get processor ID #else ldr r6, r6에프로세서아이디를얻어옴 #endif 1: ldr r1, [r12, core ID ➌ ldr r2, [r12, Mask

9 5.3 캐시활성화하기 - cache_on 레이블 63 eor r1, r1, (real ^ match)-> exclusive or 두비트가같으면 0, 두비트가다르면 1 tst r1, & mask -> tst는선택된 bit들이 all zero인지검사할때사용 addeq pc, r12, cache 함수호출 -> 결과값이 r12+r3 값을 pc에넣어점프. add r12, r12, 일치하지않으면 r12에 ( 다음엔트리를가리키게한다.) b 뒤에있는레이블 1로점프 코드섹션 ➊에서는레지스터 r3에상수 8을저장하고 call_cache_fn 레이블로점프한다. ARM 프로세서버전마다다른캐시켜기 (cache on), 캐시플러시 (cache flush), 캐시끄기 (cache off) 기능을 proc_types 테이블로관리한다. 즉, proc_types 테이블의각엔트리는특정 ARM 프로세서버전에알맞은캐시켜기, 캐시플러시, 캐시끄기서브루틴에대한정보를갖고있다. 상수 8은 proc_types 테이블의각엔트리에존재하는캐시켜기서브루틴의시작주소를가리키는오프셋으로사용된다. proc_types 테이블의구성은 알아봅시다! proc_ types 테이블 을참조하길바란다. 알아봅시다! proc_types 테이블 proc_types 테이블은 ARM 프로세서버전마다하나의엔트리로표현되며, 엔트리는아래그림 5-2 와같 이구성된다. CPU ID match CPU ID mask cache on subroutine Entry 1 cache off subroutine cache flush subroutine 그림 5-2 proc_types 테이블코드 5-3의코드섹션 ➌에서 ((real_id ^ match) & mask) == 0일경우엔트리가일치한다. 그리고라이트쓰루 (writethrough, 바로쓰기 ) 정책을사용하는캐시는캐시켜기 / 끄기 (cache on/off) 에대한함수가존재하지만, 라이트백 (writeback, 나중쓰기 ) 정책을사용하는캐시의경우는메모리와의동기화를위해서캐시플러시 (cache flush) 함수가추가적으로필요하다.

10 64 Chapter 5 커널압축해제준비하기 코드섹션 ➋에서는앞서설명한 proc_types 테이블의시작주소를레지스터 r12에저장한다. CONFIG_CPU_CP15는코프로세서 (coprocessor1 CP15) 13) 의존재여부에대한커널설정매크로다. 만약 CP15가존재하는 ARM 아키텍처의경우는 CPU ID를 CP15를통해서얻어온다. 코드섹션 ➌에서는현재 ARM 아키텍처에알맞은 cache_on 서브루틴을 proc_types 테이블에서찾은후점프한다. 앞서 proc_types 테이블을통해서 ARM 프로세서버전에맞는캐시켜기구현서브루틴으로이동해왔다. ARM 버전별로캐시켜기구현방법은서로다르지만, 결국하는일은모두같다. 코드 5-4는 ARM v6의예제다. ARM v6은 ARM v4와같은방법으로캐시켜기를수행하므로 armv4_mmu_cache_on 서브루틴을수행한다. 코드 5-4 arch/arm/boot/compressed/head.s 의 amrv4_mmu_cache_on 레이블 armv4_mmu_cache_on: mov r12, lr ➊ bl setup_mmu mov r0, #0 mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c8, c7, 0 mrc p15, 0, r0, c1, c0, 0 ➋ orr r0, r0, #0x5000 rr r0, r0, #0x0030 ➌ bl common_mmu_cache_on ➍ mov r0, #0 mcr p15, 0, r0, c8, c7, 0 ➎ mov pc, r12 먼저코드섹션 ➊에서레지스터 lr에담긴복귀주소를 r12에저장한후에 setup_mmu 서브루틴을호출한다. 이는 setup_mmu 서브루틴수행을마치고반환된후나머지코드를마저수행하기위해서다. 코드섹션 ➋에서는 CP15를이용해서쓰기버퍼의내용을모두메모리에업데이트하고, 13) 코프로세서는추가된명령어집합 (instruction set) 과설정레지스터 (configuration register) 를통해서 ARM 코어의추가기능을지원한다. 특히 CP15 는 ARM 프로세서가 Cache, TCM, Identification Register, Write Buffer, Memory Management 를제어할수있게해준다.

11 5.4 페이지디렉터리엔트리초기화하기 - setup_mmu 레이블 65 I-Cache( 명령어캐시 ), D-Cache( 데이터캐시 ), TLB에대해서도플러시해준다. 코드섹션 ➌에서는 CP15의제어레지스터 (control register) 의내용을읽어와서 I-Cache 활성화비트, 라운드로빈캐시교체정책활성화비트를설정한다. 보다자세한내용은 알아봅시다! CP15 제어레지스터 를참조하길바란다. 변경된설정에대한적용은 common_mmu_cache_on 서브루틴에서수행된다. 알아봅시다! CP15 제어레지스터 ARM 은 CP15 의제어레지스터를통해서 MMU 와캐시의활성화, 캐시교체정책설정등을수행한다. CP15 의제어레지스터는그림 5-3 과같다 SBZ F A T R SBZ E E V E X P U F I SBZ I T S B Z D T L 4 R R V I Z F R S B SBO W C A M 그림 5-3 CP15 제어레지스터 0x5000 은 12 번째비트 (I bit) 와 14 번째비트 (RR bit) 를설정함으로써 I-Cache 활성화와라운드로빈캐시교 체정책을설정한다. 코드섹션 ➍의 common_mmu_cache_on 서브루틴에서는앞서코드섹션 ➌에서변경된도메인 (domain) 설정과 I-Cache 활성화및라운드로빈캐시교체정책을적용한다. 또한페이지디렉터리 (page directory) 의시작주소값을 CP15의전용레지스터 (Translation Table Base Register) 14) 에저장한다마지막으로코드섹션 ➎를통해서 I-Cache, D-Cache, TLB를플러시하고코드 5-2의 bl cache_on 다음명령어로반환한다. 5.4 페이지디렉터리엔트리초기화하기 - setup_mmu 레이블 setup_mmu 레이블은 cache_on 레이블내에서호출되며, 커널압축해제에필요한페이지디렉터리엔트리 (page directory entry) 를초기화해준다. 특히메모리의 256MB 영역에대해서는 cacheable, bufferable로설정을해준다. 이것은커널의압축해제시캐시와쓰 14) TTBR 는 L1( 레벨 1) 테이블의물리주소를저장하는 CP15 내의특수레지스터다. TTBR 은 OS 를통해사용되며, L1 테이블에빠른접근을하기위한목적을갖는다.

12 66 Chapter 5 커널압축해제준비하기 기버퍼사용을통해서압축해제의성능을높이기위함이다. setup_mmu 수행이후페 이지디렉터리의모습은그림 5-4 와같다. RAM Entry P-Address Value in Virtual zimage x50007FFC 0x xFFF00C12 0x60000C12 0x50C00000 unzip x500057FC 0x5FF00C1E 256 Cacheable/ Bufferable x x50000C1E zimage x500053FC 0x4FF00C12 0x KB 0x Page Directory (4096 Entries) x x x x00200C12 0x00100C12 0x00000C12 그림 5-4 setup_mmu 수행후페이지테이블 코드 5-5 를통해서커널이어떻게페이지디렉터리를초기화하는지알아보도록하자. 코드 5-5 arch/arm/boot/compressed/head.s 의 setup_mmu 레이블 setup_mmu: sub r3, r4, #16384 bic r3, r3, #0xff bic r3, r3, #0x3f00 mov r0, r3 = 0x > page directory 시작주소 ➊ mov r9, r0, lsr 18비트만큼 right shift, ➋ mov r9, r9, lsl 다시 18비트만큼 left shift ->r9 = start of RAM add r10, r9, r10 = end of RAM mov r1, #0x12 orr r1, r1, #3 << r1과 0xC00을 or 연산 -> r1 = 3 * 2^10 -> 3k -> 0xC00 /* r2 와 r4 는같음 (zreladdr) */ add r2, r3, # : cmp r1, r9

13 5.4 페이지디렉터리엔트리초기화하기 - setup_mmu 레이블 67 orrhs r1, r1, r1 의값이램영역일경우 set cacheable, bufferable, cmp r1, r10 bichs r1, r1, r1 의값이램영역이아닐경우 clear cacheable, bufferable str r1, [r0], 1:1 mapping add r1, r1, # teq r0, r2 bne 같지않다면뒤쪽에있는레이블 1로점프 mov pc, lr ENDPROC( lr 은 arm4_mmu_cache_on bl setup_mmu 다음주소 코드섹션 ➊에서는페이지디렉터리의시작주소를레지스터 r0에저장한다. 이시작주소는 ZRELADDR(zImage의물리주소 ) - 16KB를통해서구해지며, 커널이미지바로앞에위치하게된다. 또한 16KB의크기를갖는다. ZRELADDR의값은각아키텍처마다달라지며, arch/arm/$(mach)/makefile.boot에서찾아볼수있다. 페이지디렉터리에대해서는 알아봅시다! MMU 페이지테이블 을참조하길바란다. 코드섹션 ➋를통해서페이지디렉터리는메모리를 1MB 단위의섹션 (section) 으로관리한다. 페이지디렉터리내의 4,096개엔트리에대해서접근권한 (access permission) 을읽기 / 쓰기가능으로해준다. 또한 4,096개의엔트리중 256개 (256MB 영역 ) 에대해서는 cacheable, bufferable 설정을해준다. 알아봅시다! MMU 페이지테이블 MMU는가상주소를물리주소로변환 (virtual to physical translation), 메모리접근제어 (memory access permission control), 메모리내의각페이지에대한캐시및쓰기버퍼설정등을한다. 만약 MMU가비활성화되어있으면가상메모리와물리메모리는 1:1 매핑이된다. ARM MMU 하드웨어는 L1과 L2의 2단계구조인멀티레벨페이지테이블 (multilevel page table) 구조를갖는다. L1 페이지테이블은마스터페이지테이블 (master page table) 이라고하고, 각엔트리에는 L2 페이지테이블의시작주소를가지며, 1MB 크기의페이지변환을한다. 이것때문에섹션페이지테이블 (section page table) 이라고부르기도한다. 마스터 L1 페이지테이블은 4GB 를 1MB의섹션으로나눔에따라 4,096의페이지엔트리를갖는다.

14 68 Chapter 5 커널압축해제준비하기 앞서소개된코드 5-5 상에서는마스터 L1 페이지테이블이크기가 1MB 인가상페이지의시작주소를갖 는섹션페이지테이블의역할을한다. 리눅스에서사용하는섹션테이블 (section table) 의각섹션엔트리 (section entry) 는그림 5-5 와같다. Section Entry [31] [20] [19] [12] [11][10][9] [8] [5] [4][3][2][1][0] Base Address SBZ AP 0 Domain 1 C B 1 0 그림 5-5 MMU 섹션테이블엔트리 알아봅시다! 캐시및쓰기버퍼 프로세서에서쓰기를수행하는속도와메모리에서쓰기를처리하는속도는매우큰차이를나타낸다. 프로세서에서의쓰기명령이완료될때까지프로세서는기다려야한다. 메모리쓰기는프로세서입장에서매우많은클럭 (clock) 을소모해야하는일이기때문에쓰기버퍼를통해서이러한지연이발생하는것을어느정도대비한다. 쓰기버퍼 (write buffer) 란매우작고빠른 FIFO 메모리버퍼이며, 메인메모리에쓰여져야하는데이터를일시적으로저장함으로써프로세서가메모리에쓰기동작시필요한클럭소모를줄여준다. 마찬가지로프로세서에서읽기를수행하는속도와메모리에서읽기를처리하는속도는매우큰차이를나타낸다. 프로세서에서의읽기명령이완료될때까지프로세서는기다려야한다. 캐시 (cache) 는매우빠른속도의저장장치이며, 임시적으로프로세서가메모리로부터읽어온코드혹은데이터를저장한다. 이를통해서프로세서가최근에한번읽었던데이터에접근할때메모리접근에필요한클록소모를줄여준다. 앞서소개한코드 5-5에서 256개의엔트리에대해서 cacheable, bufferable 설정을하는것을보았다. 이를통해서 256개의섹션내의데이터들의읽기 / 쓰기수행시캐시와쓰기버퍼가사용된다. 섹션엔트리내에설정되는값은그림 5-6과같다. Section Entry [31] [20] Base Address 0xC12 0xC1E [19] [12] [11][10] [9] [8] [5] [4] [3] [2] [1] [0] SBZ AP 0 Domain 1 C B fixed Cacheable Bufferable Section Entry 그림 5-6 MMU 섹션엔트리에설정되는값들

15 5.5 I-Cache 활성화및캐시정책적용하기 - common_mmu_cache_on 레이블 I-Cache 활성화및캐시정책적용하기 - common_mmu_cache_on 레이블 common_mmu_cache_on 은 cache_on 레이블내에서호출되며, ARM 버전 7 이전의 프로세서에대해서만수행된다. I-Cache 활성화및캐시교체정책을 CP15 에적용하고, TTBR 을초기화한다. 코드 5-6 을통해커널이어떻게 I-Cache 를활성화하고캐시정책 을적용하는지알아보도록하자. 코드 5-6 arch/arm/boot/compressed/head.s 의 common_mmu_cache_on 레이블 common_mmu_cache_on: mcr p15, 0, r3, c2, c0, 페이지테이블주소를저장 ➊ 1: mcr p15, 0, r0, c1, c0, r0을컨트롤레지스터에넣기 ➋ mrc p15, 0, r0, c1, c0, 0 sub pc, lr, r0, lsr #32 우선코드섹션 ➊에서는레지스터 r3에저장되어있는페이지디렉터리의주소값을 CP15 에있는 TTBR에저장한다. 코드섹션 ➋에서는 armv4_mmu_cache_on 레이블에서설정해준라운드로빈캐시교체정책, I-Cache 활성화설정을 CP15의제어레지스터 (control register) 에적용한다.

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - o8.pptx 메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)

More information

Microsoft Word - 1. ARM Assembly 실습_xp2.doc

Microsoft Word - 1. ARM Assembly 실습_xp2.doc ARM asm 의구조 ARM Assembly 실습 1. 기본골격 AREA armex,code, READONLY ;Mark first instruction to execute start MOV r0, #10 MOV r1,#3 ADD r0, r0, r1 ; r0 = r0 + r1 stop NOP NOP B stop ; Mark end of file 위의 asm의구조를이해하고실행해보세요.

More information

Microsoft PowerPoint - 05-ARM-Instruction-Set.ppt

Microsoft PowerPoint - 05-ARM-Instruction-Set.ppt ARM 명령어집합 임베디드시스템소프트웨어 I 내용 ARM 구조 프로세서수행모드 레지스터구조 예외처리과정 ARM 명령어형식 조건수행접미사 데이터처리명령어 곱셈명령어 Load/Store 명령어 다중레지스터 Load/Store 스택명령어 SWI 명령어 Branch 명령어 상태레지스터접근명령어 명령어요약 ARM 명령어집합 2 ARM 구조특징 모든명령어가 32bit

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

Chapter ...

Chapter ... Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준

More information

Microsoft Word ARM_ver2_0a.docx

Microsoft Word ARM_ver2_0a.docx [Smart]0703-ARM 프로그램설치 _ver1_0a 목차 1 윈도우기반으로리눅스컴파일하기 (Cygwin, GNU ARM 설치 )... 2 1.1 ARM datasheet 받기... 2 1.2 Cygwin GCC-4.0 4.1 4.2 toolchain 파일받기... 2 1.3 Cygwin 다운로드... 3 1.4 Cygwin Setup... 5 2 Cygwin

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 BOOTLOADER Jo, Heeseung 부트로더컴파일 부트로더소스복사및압축해제 부트로더소스는웹페이지에서다운로드 /working 디렉터리로이동한후, wget으로다운로드 이후작업은모두 /working 디렉터리에서진행 root@ubuntu:# cp /media/sm5-linux-111031/source/platform/uboot-s4210.tar.bz2 /working

More information

Here is a "PLDWorld.com"... // EXCALIBUR... // Additional Resources // µc/os-ii... Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL D

Here is a PLDWorld.com... // EXCALIBUR... // Additional Resources // µc/os-ii... Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL D Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL Digital Sig Date: 2004929 µ (1) uc/os-ii RTOS uc/os-ii EP7209 uc/os-ii, EP7209 EP7209,, CPU ARM720 Core CPU ARM7 CPU wwwnanowitcom10 '

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

Microsoft PowerPoint - LN_2_Bootloader.ppt [호환 모드]

Microsoft PowerPoint - LN_2_Bootloader.ppt [호환 모드] 프로젝트 2 부트로더동작원리분석 단국대학교컴퓨터학과 2009 백승재 baeksj@dankook.ac.kr k k k http://embedded.dankook.ac.kr/~baeksj Target Board 가생기면... Schematic Chip manual Bootloader blob, u-boot,... Kernel Rootfs ramdisk, cramfs,

More information

Computer Architecture

Computer Architecture 명령어의구조와주소지정방식 명령어세트명령어의형식주소지정방식실제명령어의형태 이자료는김종현저 - 컴퓨터구조론 ( 생능출판사 ) 의내용을편집한것입니다. 2.4 명령어세트 (instruction set) 어떤 CPU 를위하여정의되어있는명령어들의집합 명령어세트설계를위해결정되어야할사항들 2 연산종류 (operation repertoire) CPU 가수행할연산들의수와종류및복잡도

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치 컴퓨터구조 제 12 강제어장치 학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 2 12. 제어장치 학습목표 r 프로세스내의제어장치의기능과역할을공부한다. r 마이크로연산의표현을공부하다. r제어장치의구성과마이크로연산을공부한다. r제어장치의구현방법을알아본다. r 마이크로프로그램을이용한제어장치의구조와동작을공부한다.

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128

More information

ARM Reverse Engineering

ARM Reverse Engineering singi@hackerschool Facebook : @sjh21a http://kernelhack.co.kr/netsec-singi.zip - First Phase About ARM ARM Operating Mode and Registers Basic ARM Instruction Thumb Mode - Second Phase Configuration of

More information

Microsoft PowerPoint - hy2-12.pptx

Microsoft PowerPoint - hy2-12.pptx CPU의구조와기능 CPU 의명령어수행과정 명령어인출 (Instruction Fetch) : 기억장치로부터명령어를읽어온다 명령어해독 (Instruction Decode) : 수행해야할동작을결정하기위하여명령어를해독한다 모든명령어들에대하여공통적으로수행 데이터인출 (Data Fetch) : 명령어실행을위하여데이터가필요한경우에는기억장치혹은 I/O 장치로부터그데이터를읽어온다

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Internship in OCZ Technology VLDB 연구실 오기환 wurikiji@gmail.com 5/30/2012 1 At San Jose, CA, USA SSD product OCZ Technology Worked at Indilinx firmware team 2012. 1. 3 ~ 2012. 2. 3 ( 약 32 일 ) 오전 9 시출근오후 6

More information

정보보안 개론과 실습:네트워크

정보보안 개론과 실습:네트워크 ` 마이크로프로세서설계및실습 2 주차강의자료 2/31 Contents 학습목표 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ATmega128 내부구조에서특수레지스터, 범용레지스터의역할을이해할수있다. ATmega128 내부에포함된명령어인출과실행절차를알아보고, 명령어유형을통해동작을이해할수있다. 내용

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여

More information

<4D F736F F F696E74202D2037C0E52DC4B3BDC3BFCDB8DEB8F0B8AE>

<4D F736F F F696E74202D2037C0E52DC4B3BDC3BFCDB8DEB8F0B8AE> 7장 : 캐시와메모리 메모리계층 사용자들은값싸고빠른메모리를크면클수록갖고싶어한다! - 나에게하드디스크 (300GB) 만큼의, 속도는 RAM 정도이고비휘발성메모리가있다면.. 그런데돈이없다. 2006년현재 RAM은 52 MB/5 만원 ( GB/0 만원 ) HD는 300GB/0 만원 (GB/330원) 캐시가격을정확히산정하기는어려우나 52KB/2 만원 (GB/4000

More information

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능 컴퓨터구조 제 9 강 중앙처리장치의조직과기능 학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능 학습목표 rcpu 의성능을향상시키는요인들을알아본다. rcpu 의기본적인기능을이해한다. rcpu 는 ALU, 제어장치, 레지스터집합,

More information

Computer Architecture

Computer Architecture CPU 의구조와기능 CPU 의기본구조 명령어실행과실행사이클 명령어파이프라이닝 CPU 의기능 2 명령어인출 (Instruction Fetch) 기억장치로부터명령어읽기 명령어해독 (Instruction Decode) 수행해야할동작을결정하기위하여명령어를해독 모든명령어들에대하여공통적으로수행 데이터인출 (Data Fetch) 명령어실행에필요한데이터를기억장치혹은 I/O

More information

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수

More information

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

온라인 IT 교육최강 (  강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1 - 2. 중앙처리장치 (Central Processing Unit) 주기억장치에기억된명령을꺼내서해독하고, 시스템전체에지시신호를내는장치명령코드가명령을수행할수있게필요한제어기능을제공제어장치의구성

More information

Microsoft PowerPoint - hy2-12.pptx

Microsoft PowerPoint - hy2-12.pptx 2.4 명령어세트 (instruction set) 명령어세트 CPU 가지원하는기계어명령어들의집합 명령어연산의종류 데이터전송 : 레지스터 / 메모리간에데이터이동 산술연산 : 덧셈, 뺄셈, 곱셈및나눗셈 논리연산 : 비트들간의 AND, OR, NOT 및 XOR 연산 입출력 (I/O) : CPU( 레지스터 ) 와외부장치들간의데이터이동 프로그램제어 : 분기, 서브루틴호출

More information

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고 CHAPTER 7 인터럽트 가. 레지스터구조이해하기 나. 엔코더제어하기 인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고급한일을처리한후에본래의일을다시수행하는것을말한다.

More information

망고100 보드로 놀아보자 -10

망고100 보드로 놀아보자 -10 망고 100 보드로놀아보자 -10 Kernel build 분석 http:// http://www.mangoboard.com 커널 build 환경분석 >(Top Dir)/Makefile 첫번째라인에위치 > 커널 2.6.29 버전사용 >ARCH?=arm 의미는 ARCH 의값으로 arm 있느냐묻고, 없으면, arm 문자를대입 >.cross_compile 이있으면,.cross_compile

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

초보자를 위한 분산 캐시 활용 전략

초보자를 위한 분산 캐시 활용 전략 초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

hlogin2

hlogin2 0x02. Stack Corruption off-limit Kernel Stack libc Heap BSS Data Code off-limit Kernel Kernel : OS Stack libc Heap BSS Data Code Stack : libc : Heap : BSS, Data : bss Code : off-limit Kernel Kernel : OS

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 시스템호출개요 리눅스에서는사용자공간과커널공간을구분 사용자프로그램은사용자모드, 운영체제는커널모드에서수행 커널공간에대한접근은커널 ( 특권, priviledged) 모드에서가능 컴퓨팅자원 (CPU, memory, I/O 등 ) 을안전하게보호 커널수행을안전하게유지

More information

Mango220 Android How to compile and Transfer image to Target

Mango220 Android How to compile and Transfer image to Target Mango220 Android How to compile and Transfer image to Target http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다.

학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다. 마이크로프로세서의원리 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 (slee@wku.ac.kr) 소속 : 원광대학교전기 정보통신공학부 학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

Reusing Dynamic Linker For Exploitation Author : Date : 2012 / 05 / 13 Contact : Facebook : fb.me/kwonpwn

Reusing Dynamic Linker For Exploitation Author :  Date : 2012 / 05 / 13 Contact : Facebook : fb.me/kwonpwn Reusing Dynamic Linker For Exploitation Author : pwn3r @ B10S @WiseGuyz Date : 2012 / 05 / 13 Contact : austinkwon2@gmail.com Facebook : fb.me/kwonpwn3r Abstract 대부분의 Unix 에선공유라이브러리를메모리에로드하고프로그램과 link

More information

[8051] 강의자료.PDF

[8051] 강의자료.PDF CY AC F0 RS1 RS0 OV - P 0xFF 0x80 0x7F 0x30 0x2F 0x20 0x1F 0x18 0x17 0x10 0x0F 0x08 0x07 0x00 0x0000 0x0FFF 0x1000 0xFFFF 0x0000 0xFFFF RAM SFR SMOD - - - GF1 GF0 PD IDL 31 19 18 9 12 13 14 15 1 2 3 4

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

PowerPoint Presentation

PowerPoint Presentation GPU-based Keylogger Jihwan yoon 131ackcon@gmail.com Index Who am I Keylogger, GPU GPU based Keylogging - Locating the keyboard buffer - Capturing KEYSTROKES Demo About me Who am I 윤지환 CERT-IS reader BOB

More information

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F FB1E2BBE7C6D0BDBABFEB2E687770>

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F FB1E2BBE7C6D0BDBABFEB2E687770> 4 명령실행과제어 4.1 마이크로오퍼레이션(Micro Operation) (1) 마이크로오퍼레이션( 동작) 0609 0509 1) 명령을수행하기위해 CPU 내의레지스터와플래그의상태변환을일으키는 작업 0308 0405 2) 레지스터에저장된데이터에의해서이루어지는동작 0109 0209 0503 3) 마이크로오퍼레이션을순서적으로일어나게하는데필요한신호를제어신호 라함

More information

Deok9_Exploit Technique

Deok9_Exploit Technique Exploit Technique CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 > 1. Shell Code 2. Security

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600 균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

Adobe Flash 취약점 분석 (CVE-2012-0754)

Adobe Flash 취약점 분석 (CVE-2012-0754) 기술문서 14. 08. 13. 작성 GNU C library dynamic linker $ORIGIN expansion Vulnerability Author : E-Mail : 윤지환 131ackcon@gmail.com Abstract 2010 년 Tavis Ormandy 에 의해 발견된 취약점으로써 정확한 명칭은 GNU C library dynamic linker

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR Configure Kernel Build Environment And kernel & root file system Build 2018-09-27 VLSI Design Lab 1 지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함.

More information

<4D F736F F F696E74202D206D61696E D F6E D20C7C1B7CEBCBCBCAD20B7CEB5F920C8C420B8DEB8F0B8AE20B9D B20B1B8C1B6C0CCC7D8>

<4D F736F F F696E74202D206D61696E D F6E D20C7C1B7CEBCBCBCAD20B7CEB5F920C8C420B8DEB8F0B8AE20B9D B20B1B8C1B6C0CCC7D8> 프로세스로딩후메모리및 stack 구조이해 학습목표 실제프로그램이 CPU 에의해메모리에상주되었을때메모리구조에대하여숙지한다. 논리적스택에대한개념과작동원리를이해한다. 논리적스택구조에대하여자세히각부분별기능이무슨역할을하는지를파악한다. 메모리구조모습 (1) 메모리구조 ( 코드영역 ) 논리적스택개념논리적스택구조논리적스택구조특징 more 프로그램실행후메모리구조모습 (1)

More information

Abstract View of System Components

Abstract View of System Components Operating System 4 주차 - System Call Implementation - Real-Time Computing and Communications Lab. Hanyang University jtlim@rtcc.hanyang.ac.kr yschoi@rtcc.hanyang.ac.kr shpark@rtcc.hanyang.ac.kr Contents

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

Microsoft Word - ExecutionStack

Microsoft Word - ExecutionStack Lecture 15: LM code from high level language /* Simple Program */ external int get_int(); external void put_int(); int sum; clear_sum() { sum=0; int step=2; main() { register int i; static int count; clear_sum();

More information

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr 강의정보처리필기강사조대호 차시명 체크문제 [CA-07 강 ] 주소지정방식과연산, 명령실행과제어 차시 7 차시 학습내용 1. 주소지정방식과연산 2. 명령실행과제어 학습목표 1. 주소지정방식과연산에대해이해할수있다 2. 명령실행과제어를이해하고해결할수있다 학습내용 3.3 주소지정방식 1. 주소설계시고려해야할점이아닌것은? 가. 주소를효율적으로나타낼수있어야한다. 나.

More information

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F E687770>

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F E687770> 3.2 명령어 (1) 명령어 (Instruction) 의구성 연산자 (Operation Code) 부자료 (Operand) 부 0405 명령어의연산자부분이나타낼수있는것오답 인스트럭션의순서 1) 연산자부 (Op-Code, Operation Code부 ) 1 실행할명령이들어있음 2 명령어의연산자부분이나타낼수있는것 9910 0203 명령어의형식 연산자 자료의종류

More information

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1) [ Version 1.3 ] Access Point,. Access Point IP 10.0.0.1, Subnet Mask 255.255.255.224, DHCP Client. DHCP Server IP IP,, IP 10.0.0.X. (Tip: Auto Sensing Straight, Cross-over.) step 1]. step 2] LAN. step

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

Code Generation in Rapid

Code Generation in Rapid 임베디드시스템설계실습 (3) Embedded System Design Real-Time Computing and Communications Lab. Hanyang University 자료복사 USB 파일복사 파일및폴더리스트 PL2303_Prolific_DriverInstaller (Windows) toolchain-s5pc1xx.tar.gz u-boot-1.3.4.tar.gz

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-SEGMENT DEVICE CONTROL - DEVICE DRIVER Jo, Heeseung 디바이스드라이버구현 : 7-SEGMENT HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 디바이스드라이버구현 : 7-SEGMENT 6-Digit 7-Segment LED

More information

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다. C 언어와 Assembly Language 을사용한 Programming 20011.9 경희대학교조원경 1. AVR Studio 에서사용하는 Assembler AVR Studio에서는 GCC Assembler와 AVR Assmbler를사용한다. A. GCC Assembler : GCC를사용하는경우 (WinAVR 등을사용하는경우 ) 사용할수있다. New Project

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

KEY 디바이스 드라이버

KEY 디바이스 드라이버 KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)

More information

<BDC7C7E83120B0E1B0FABAB8B0EDBCAD202832C1D6C2F7292E687770>

<BDC7C7E83120B0E1B0FABAB8B0EDBCAD202832C1D6C2F7292E687770> 제목 : 실험 #1 결과보고서 GPIO LED 제어 실험일 : 2013. 03. 12. (2 주차 ) 실험내용 - 예비과제 : ATmega126의 8개의핀에연결되어있는 LED 점멸하는프로그램 - 실험과제 : ATmega126의 8개의 LED를순차적으로켜고끄는프로그램 실험결과 - 예비과제 - 해결방법 : 점멸되는시간 (Delay) 를구현하기위해임의의변수 i를적당한지연시간이생길정도의크기만큼증가시킨후,

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M 중앙처리장치 (CPU: Central Process Unit) 1) 제어장치 (Control Unit) 컴퓨터시스템의모든장치들에게동작을지시하고제어하는장치로주기억장치에서읽어온명령어를해독하고해당장치에게제어신호를보낸다. 구성회로 : 부호기, 명령해독기, 번지해독기 구성레지스터 : PC( 프로그램카운터 ), IR( 명령어레지스터 ) 부호기 ( 제어신호발생기 ) 해독한명령어에따라서해당장치로보낼제어신호를생성하는회로

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드] 리눅스 설치 Vmware를 이용한 Fedora Core 8 설치 소프트웨어실습 1 Contents 가상 머신 실습 환경 구축 Fedora Core 8 설치 가상 머신 가상 머신 가상 머신의 개념 VMware의 설치 VMware : 가상 머신 생성 VMware의 특징 실습 환경 구축 실습 환경 구축 Fedora Core 8 설치 가상 머신의 개념 가상 머신 (Virtual

More information

슬라이드 1

슬라이드 1 명령어집합 주소지정모드 (addressing mode) 내용 명령어는크게연산자부분과이연산에필요한주소부분으로구성 이때주소부분은다양한형태를해석될수있으며, 해석하는방법을주소지정방식 ( 모드 )(addressing mode) 라한다. 즉피연산자정보를구하는방법을주소지정방식이라고함 명령어형식 주소지정 명령어형식에있는주소필드는상대적으로짧다. 따라서지정할수있는위치가제한된다.

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

<C6F7C6AEB6F5B1B3C0E72E687770>

<C6F7C6AEB6F5B1B3C0E72E687770> 1-1. 포트란 언어의 역사 1 1-2. 포트란 언어의 실행 단계 1 1-3. 문제해결의 순서 2 1-4. Overview of Fortran 2 1-5. Use of Columns in Fortran 3 1-6. INTEGER, REAL, and CHARACTER Data Types 4 1-7. Arithmetic Expressions 4 1-8. 포트란에서의

More information

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 Outline n n n n n n 보드개요보드연결필수패키지, Tool-Chain 설치 Kernel, file system build Fastboot 및 Tera Term설치 Kernel, file system 이미지전송및설치 - 2 - Young-Jin Kim X-Hyper320TKU

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 중앙처리장치의명령어 Prof. Jae Young Choi ( 최재영교수 ) (2015 Spring 의학진단및치료기기학 ) Prof. Jae Young Choi 스택저장장치 (1/2) 스택 (Stack) 은 CPU 내부의레지스터집합에존재하는저장장치 데이터가순차적으로저장 / 스택의길이는가변함 한번에하나의요소에만액세스가능 데이터접근방법 : 나중입력먼저출력 (LIFO:

More information

임베디드 시스템 구조

임베디드 시스템 구조 ARM 프로세서요약 www.dignsys.com Contents 1. 임베디드시스템의구조 2. 임베디드시스템의개발 3. ARM 아키텍처 4. ARM 프로세서의구조 5. ARM 프로세서명령어 6. Cached ARM 7. 임베디드소프트웨어개발 8. S3C2410 및실습용보드의이해 9. 디바이스제어 1 프로세서의구조 레지스터 (Register) 산술논리연산장치

More information

Computer Architecture

Computer Architecture 제 2 장 CPU 의구조와기능 2.1 CPU의기본구조 2.2 명령어실행 2.3 명령어파이프라이닝 2.4 명령어세트 CPU 의기능 명령어인출 (Instruction Fetch) : 기억장치로부터명령어를읽어온다 IF ID 명령어해독 (Instruction Decode) : 수행해야할동작을결정하기위하여명령어를해독한다 모든명령어들에대하여공통적으로수행 Computer

More information

Microsoft PowerPoint - LN_1_ARM_CPU_0.ppt [호환 모드]

Microsoft PowerPoint - LN_1_ARM_CPU_0.ppt [호환 모드] 프로젝트 1 1 ARM CPU Architecture 단국대학교컴퓨터학과 2009 백승재 ibanez1383@dankook.ac.kr k k http://embedded.dankook.ac.kr/~ibanez1383 강의목표 2 ARM 종류와특징및최신동향파악 ARM CPU Architecture 이해 ARM Assembly 숙지 ARM 3 ARM? Advanced

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

<4D F736F F D20B1B9B0A1BAB020BEC6C0CCC7C720C2F7B4DC20B0A1C0CCB5E5>

<4D F736F F D20B1B9B0A1BAB020BEC6C0CCC7C720C2F7B4DC20B0A1C0CCB5E5> 국가별아이피차단가이드 작성자 : 기술지원팀백철현작성일 : 2009 년 2 월 20 일 가이드소개 급증하는웹해킹과침해사고, DDOS 공격때문에서비스에장애가많으신분들은 IPTALBES 를활용하여침해사고를예방할수가있습니다. DDOS 공격도또한마찬가지입니다. 중국에서한크래커가사이트를공격을위해서준비할때, 웹사이트를먼저확인하고공격을시도할것입니다. 그러나, 공격전에미리중국으로부터의접속을막고있다면,

More information

제목을 입력하세요

제목을 입력하세요 기술문서 13. 10. 31. 작성 320 사이버대란복구 2013-04-30 fatapple 목차 1. 개요...3 2. 복구...4 2.1 MBR... 4 2.2 VBR... 9 2.3 복구 Tool...13 3. 결론... 16 4. 참고문헌... 17 2 1. 개요 이번 320 사이버대란에서주관심사는손실된저장매체의 Data였다. 피해를입은여러기업의 PC들의

More information

Microsoft Word - NAT_1_.doc

Microsoft Word - NAT_1_.doc NAT(Network Address Translation) 1. NAT 개요 1 패킷의 IP 헤더의수신지주소, 발신지주소또는그주소를다른주소로변경하는과정 2 NAT기능을갖는장치를 NAT-BOX라함 ( 시스코라우터, 유닉스시스템, 윈도우의호스트혹은몇개의다른시스템일수있기때문에이렇게지칭하기도함 ) 3 NAT 기능을갖는장치는일반적으로스텁도메인 (Stub-domain)

More information