교육지원 IT시스템 선진화
|
|
- 민서 창
- 5 years ago
- Views:
Transcription
1 Module 7: Bootloader ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부
2 주차별목표 부트로더의기능이해하기 부트로더의주요소스이해하기 uboot 명령어알아보기 타겟보드에컴파일된부트로더이미지설치하기 부트로더에신규명령어추가하기 부트로더컴파일하기 2
3 Bootloader 임베디드시스템에서의부트로더 (Bootloader) 시스템을켰을때가장먼저실행되는프로그램 CPU 가리셋되었을때접근하는메모리주소 ( 일반적으로주소는 0 번이나메모리의마지막번지가됨 ) 부터시작 부트로더의가장기본적인기능들 하드웨어를초기화 커널을로드 몇몇커널파라미터들을커널에넘겨주는역할을함 호스트컴퓨터의리눅스에서는 GRUB 이라는부트로더를많이사용 임베디드시스템에서는 armboot, blob, ppcboot, redboot, uboot 등이있음 Achro-210T 에서는 uboot 를사용 3
4 Bootloader 부트로더의기능 부트로더는 CPU 클럭이나메모리타이밍, 인터럽트벡터, UART 등의시스템을구성하고있는기본적인하드웨어초기화와레지스터설정등을통하여시스템을활성화시켜운영체제가시작될수있는기본환경을만들어줌 운영체제의핵심프로그램인커널을메모리에올리고실행권한을커널로넘겨주는역할을함 임베디드시스템에서사용하는부트로더는이러한기본기능외에도시스템의개발을도와주는부가적인기능도제공 4
5 Bootloader 부트로더의기능 대부분의임베디드시스템 ( 또는타겟보드 ) 은개발환경을갖추고있지않으므로개발은호스트컴퓨터에서하게됨 부트로더는개발한프로그램을타겟보드로전송할수있는다양한통신채널을지원 직렬장치를통해데이터를전송할수있도록 xmodem, zmodem, uuencode 등의기능제공 이더넷을통해데이터를전송할수있도록 tftp 나 bootp 기능들도제공 비휘발성메모리를퓨징하는기능 직렬통신프로그램인미니컴이나 putty 프로그램을사용하여타겟보드의상태를알아보거나명령어를입력할수도있음 5
6 부트로더의실행흐름 부트로더의실행흐름도 6
7 부트로더의실행흐름 보드가리셋상태에서깨어난후, start.s 의 reset() 루틴이 internal SRAM(Stepping Stone) 에서바로실행 해당함수가실행된다음 cpu_init_crit() 함수가호출되고, lowlevel_init.s 의 lowlevel_init() 함수를호출해서각보드의초기화를수행하고난후, 캐쉬를초기화 이때 SRAM 에저장된실행코드를 SDRAM 의 TEXT_BASE 번지로복사하는 relocation 을수행 Relocation 을하는이유는부트로더가 microsd 에서이용되는경우, 부트로더를업데이트하는데문제가발생하기때문임 그래서 RAM 에 relocation 을수행하게되고, 이후 relocation 된곳으로점프해서 SDRAM 에서실행됨. 그이후에 0 으로초기화해야할영역인 BSS 영역을초기화 BSS 까지초기화가되었다면 start_armboot() 를이용하여이전에 relocation 된 SDRAM 으로점프 해당메모리로점프를하게되면서부트로더코드가실행 7
8 Main Sources of Bootloader -Makefile Makefile 수정 Makefile 에서 arm 에대한 CROSS_COMPILE 정보를추가 ifeq ($(ARCH),arm) CROSS_COMPILE = / 자신의 toolchain compile 경로 /arm-none-linux-gnueabiendif 새로운 210T 개발보드에맞는설정 achropv210_config : $(@:_config=) arm s5pc11x achropv210 samsung "TEXT_BASE = 0x2fd00000" > $(obj)board/samsung/achropv210/config.mk 8
9 Main Sources of Bootloader -Complie make 명령어를이용하여컴파일하기 u-boot.bin 파일이생성됨 # make distclean ( 생략 ) # make achropv210_config Configuring for achropv210 board... # make ( 생략 ) # ls -l u-boot.bin -rwxr-xr-x 1 root root 월 22 11:10 u-boot.bin make distclean 을이용하여기존에컴파일했었던오브젝트나설정 (*.bak, *.o, *.a 등 ) 을모두삭제 make achro210_config 를이용해서앞서설명한 210T 에서참조하는헤더파일등의정보를 mkconfig 스크립트를호출하여해당내용이적용된 include/config.h, include/config.mk 파일을생성 9
10 Main Sources of Bootloader -Compile make 명령어를이용하여컴파일하기 include/config.h /* Automatically generated - do not edit */ #include <configs/achropv210.h> include/config.mk ARCH = arm CPU = s5pc11x BOARD = achropv210 VENDOR = samsung SOC = s5pc110 ARCH = arm 아키텍처가무엇인지를나타낸다. 어떤크로스컴파일러를사용할것인지결정된다. (arm-linux-) 어떤라이브러리를사용할것인지결정된다. (lib_arm/*) CPU = s5pc11x CPU 가무엇인지를나타낸다.(s5pv210 은 s5pc110 에서파생되었다.) 어떤라이브러리를사용할것인지결정된다. (cpu/s5pc11x/*) BOARD = achropv210 Achro210 개발보드가무엇인지를나타낸다. VENDOR = samsung 어떤라이브러리를사용할것인지결정된다. (board/samsung/achropv210/*) SOC = s5pc110 SOC 가무엇인지를나타낸다. 어떤라이브러리를사용할것인지결정된다. (cpu/s5pc11x/s5pc110/*) 10
11 Main Sources of Bootloader board/samsung/achropv210/config.mk board/samsung/achropv210 디렉토리에는 Achro-210T 개발보드에관련된소스들과컴파일과정에필요한설정파일들이들어있음 TEXT_BASE = 0x2fd00000 TEXT_BASE 는부트로더가실행되는베이스번지를나타냄 board/samsung/achropv210/u-boot.lds 이파일은 make 과정의마지막인링크과정에서사용되는링크스크립트 11
12 Main Sources of Bootloader board/samsung/achropv210/u-boot.lds OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") /*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32- arm")*/ OUTPUT_ARCH(arm) ENTRY(_start) SECTIONS {. = 0x ; // 메모리의시작주소. = ALIGN(4); // 위치카운터를 4 의배수로정렬.text : // 텍스트섹션 { cpu/s5pc11x/start.o (.text) cpu/s5pc11x/s5pc110/cpu_init.o (.text) board/samsung/achropv210/lowlevel_init.o (.text) cpu/s5pc11x/nand_cp.o (.text) cpu/s5pc11x/movi.o (.text) common/secure.o (.text) common/ace_sha1.o (.text) cpu/s5pc11x/pmic.o (.text) *(.text) }. = ALIGN(4);.rodata : { *(.rodata) } // 읽기전용데이터섹션. = ALIGN(4);.data : { *(.data) }. = ALIGN(4);.got : { *(.got) } // Global Offset Table Section u_boot_cmd_start =.;.u_boot_cmd : { *(.u_boot_cmd) } u_boot_cmd_end =.;. = ALIGN(4);.mmudata : { *(.mmudata) } // MMU Section. = ALIGN(4); bss_start =.;.bss : { *(.bss) } // 비초기화변수들을저장하는데이터세그먼트 _end =.; } 12
13 Main Sources of Bootloader board/samsung/achropv210/u-boot.lds 코드에서 OUTPUT_FORMAT 은 elf32 의 little endian 형식으로코드를생성하겠다는의미 매개변수가 3 개인것은링크할때옵션으로 EB 를준경우, -EL 을준경우, 아무것도지정하지않은경우에어떤형식으로코드를생성할것인가를알려주기위함 이경우에는모든경우에 elf32 의 little endian 형식으로코드를생성 참고로리눅스에서는오브젝트코드와실행파일형식으로 ELF(Executable and Linkable Format) 를사용 OUTPUT_ARCH(arm) 은생성될바이너리파일은 arm 용으로하겠다는의미 ENTRY(_start) 는 uboot 의진입점이며최초실행함수를 _start 로지정한경우 _start 는 start.s 에글로벌레이블로선언되어있으며실제 uboot 의시작위치가됨 13
14 Main Sources of Bootloader board/samsung/achropv210/u-boot.lds SECTIONS{} 에서는코드를목적에맞게각섹션에분배 ELF 형식에서는소스의명령어부분, 데이터부분을각섹션별로묶어서관리. = 0x ; 은위치카운터로, 코드가오브젝트코드내에서위치할곳의주소. = ALIGN(4); 는위치카운터를 4 바이트단위로정렬함을의미.text : { *(.text) } 에의해지정된 text 섹션에는소스코드의명령어부분이저장됨.rodata : { *(.rodata) } 에의해지정된 rodata 섹션에는읽기전용데이터들이저장됨.data : { *(.data) } 에의해지정된 data 섹션에는초기화된전역변수들이저장됨.got : { *(.got) } 에의해지정된 got 섹션에는위치와무관한코드 (position independent code) 를위해절대주소를동적으로매핑시켜주기위한정보들이저장됨.bss : { *(.bss) } 에의해지정된 bss(block started by symbol) 섹션에는초기화되지않은전역변수들이저장됨 14
15 Main Sources of Bootloader board/samsung/achropv210/achropv210.c 이파일에는해당 Achro-210T 개발보드를위한초기화루틴들이정의되어있음 int board_init (void) lib_arm/board.c 소스에서정의된 void start_armboot() 함수에서호출 Start_armboot() 함수는초기어셈블리루틴 (cpu/s5pc11x/start.s) 의마지막에서호출되는것으로, 어셈블리루틴에의해호출되는함수중처음으로 C 언어로작성된함수 start_armboot() 초기화하기위한시퀀스정보를가지고있는 init_fnc_t *init_sequence[] 에등록된함수들을차례로호출하는데, 제일처음으로 cpu_init() 함수가호출되고난후에 board_init() 함수가호출됨 즉, CPU 관련초기화가진행된후에바로보드관련초기화가실행 gd->bd->bi_arch_number 변수는리눅스를부팅할때넘겨주는 Machine Number 값 gd->bd->bi_boot_params 변수는리눅스를부팅할때넘겨주는커널파라미터문자열에관련된정보가저장된번지를나타냄 커널파라미터문자열은환경변수 bootargs 에저장됨 15
16 Main Sources of Bootloader board/samsung/achropv210/achropv210.c int board_late_init (void) Lib_arm/board.c 소스에서정의된 void start_armboot() 함수에서호출 start_armboot() 함수의마지막부분에서 main_loop() 함수를호출하기전에 board_late_init() 함수를호출 해당함수가호출되려면보드설정헤더 (include/configs/achropv210.h) 파일에 BOARD_LATE_INIT 를정의해야함 int dram_init (void) Lib_arm/board.c 소스에서정의된 void start_armboot() 함수에서호출 start_armboot() 함수에서는 init_fnc_t *init_sequence[] 에등록된함수들을차례로호출하는데, 리스트에 dram_init() 함수가등록되어있음 보드정보를저장하고있는 gd->bd 구조체의 DRAM 관련된항목을설정 16
17 Main Sources of Bootloader board/samsung/achropv210/lowlevel_init.s 보드가리셋상태에서깨어난직후하드웨어적으로초기화되어져야하는부분들에대한초기화를진행하게됨 lowlevel_init() 함수에서초기화하는내용 전원유지를위한 PMIC 를초기화 (PMIC_init) 클럭에관련된레지스터를설정 (system_clock_init) SDRAM 메모리가동작하도록관련된레지스터를설정 ( mem_ctrl_asm_init) 부트로더모니터링을위한 UART 를초기화 (uart_asm_init) 17
18 Main Sources of Bootloader include/configs/achropv210.h 210T 보드의설정에관련된헤더파일 보드와관련된모든사항들을정의해야하며, S5PV210(S5PC110 에서파생됨 ) CPU 와관련된루틴들이포함되도록함 그러면컴파일과정에서해당 CPU 에만적용되어야할루틴들이컴파일됨 #define CONFIG_S5PC110 1 #define CONFIG_S5PC11X 1 보드의초기화과정중에인터럽트가발생되지않도록설정 #undef CONFIG_USE_IRQ 18
19 Main Sources of Bootloader include/configs/achropv210.h 그다음은 SDRAM 메모리와관련된값들 #define MEMORY_BASE_ADDRESS 0x #define MEMORY_BASE_ADDRESS2 0x #define CONFIG_NR_DRAM_BANKS 2 /* we have 2 bank of DRAM */ #define SDRAM_BANK_SIZE 0x /* 256 MB */ #define PHYS_SDRAM_1 MEMORY_BASE_ADDRESS /* SDRAM Bank #1 */ #define PHYS_SDRAM_1_SIZE SDRAM_BANK_SIZE #define PHYS_SDRAM_2 MEMORY_BASE_ADDRESS2 /* SDRAM Bank #2 */ #define PHYS_SDRAM_2_SIZE SDRAM_BANK_SIZE malloc() 함수에서사용할버퍼의크기를설정 #define CFG_MALLOC_LEN (CFG_ENV_SIZE *1024) #define CFG_MEMTEST_END MEMORY_BASE_ADDRESS + 0xFD00000 #define CFG_UBOOT_BASE CFG_MEMTEST_END #define CFG_UBOOT_SIZE (3*1024*1024) #define CFG_STACK_SIZE 512*
20 Main Sources of Bootloader include/configs/achropv210.h include/asm-arm/global_data.h 헤더파일에정의된 gd_t 타입의변수를저장할공간의크기를설정 #define CFG_GBL_DATA_SIZE 128 스택의크기를설정하는부분 #define CONFIG_STACKSIZE 0x40000 #ifdef CONFIG_USE_IRQ #define CONFIG_STACKSIZE_IRQ (4*1024) #define CONFIG_STACKSIZE_FIQ (4*1024) #endif 직렬통신관련설정하는부분 #define CONFIG_SERIAL1 1 #define CONFIG_BAUDRATE
21 Main Sources of Bootloader include/configs/achropv210.h Achro-210T 와별도로제공되는개발보드에실장되어있는 21 SMSC LAN91C111 칩을액세스하기위한설정사항 #define CONFIG_DRIVER_SMC911X 1 #define CONFIG_DRIVER_SMC911X_16_BIT #define CONFIG_DRIVER_SMC911X_BASE 0x 환경변수는 SD 메모리에저장되도록설정되어있음 #define CFG_ENV_IS_IN_AUTO #define CFG_ENV_OFFSET 0x0007C000 #define CFG_ENV_SIZE 0x 기본적으로환경변수에포함될내용들을정의 #define CONFIG_EXTRA_ENV_SETTINGS BOARD_LATE_INIT 설정은 board/samsung/achropv210/achropv210.c 소스에정의된 board_late_init() 함수가 lib_arm/board.c 소스에정의된 start_armboot() 함수에서호출되도록설정 #define BOARD_LATE_INIT
22 uboot Command uboot 명령어 부트로더명령을실행하기위해서는부트로더상태로진입후다음을진행 help PV210 # help? - alias for 'help' autoscr - run script from memory base - print or set address offset bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd ( 생략 ) tftpboot- boot image via network using TFTP protocol version - print monitor version PV210 # 22
23 uboot Command Information Command bdinfo Achro-210T 개발보드정보를출력하는명령 PV210 # bdinfo arch_number = 0x env_t = 0x boot_params = 0x DRAM bank = 0x > start = 0x > size = 0x DRAM bank = 0x > start = 0x > size = 0x ethaddr = 00:40:5C:26:0A:5B ip_addr = baudrate = bps 23
24 uboot Command Information Command help 도움말을출력해주는명령 help 명령어뒤에사용할명령어를인자로주면해당명령어의기능과형식에대한도움말을출력 PV210 # help base 수행하고있는메모리명령어의메모리위치를출력하거나설정하는명령 PV210 # help base base - print address offset for memory commands base off - set address offset for memory commands to 'off' PV210 # base Base Address: 0x
25 uboot Command Memory Control 부트로더에서 SDRAM 이나 SD 메모리에접근하기위한명령어들 cp 부트로더상태에서메모리를복사하는명령 PV210 # help cp cp [.b,.w,.l] source target count - copy memory PV210 # cp
26 uboot Command Memory Control md 부트로더상태에서지정한메모리영역의값을출력해주는명령 PV210 # help md md [.b,.w,.l] address [# of objects] - memory display PV210 # md : : ea e59ff014 e59ff014 e59ff : e59ff014 e59ff014 e59ff014 e59ff : 2fe001e0 2fe fe002a0 2fe /@../.../.../ : 2fe fe003c0 2fe `../.../../xv4. ( 이하생략 ) 26
27 uboot Command Memory Control mm 메모리의값을변경하는명령 본명령은리눅스부팅전에특정한레지스터를설정해서리눅스퓨징이전에어느정도하드웨어가정상동작을하는지를확인하는용도로종종쓰임 PV210 # help mm mm [.b,.w,.l] address - memory modify, auto increment address PV210 # mm : ? : ? : ? q (mm 명령을종료할때는 16 진수가아닌값을됨 ) 27
28 uboot Command Memory Control mw 어떤값으로메모리를초기화 ( 의미상기록 ) 하는방법 카운트인자없이사용될때, 이값들은특정주소에만쓰여짐 PV210 # help mw mw [.b,.w,.l] address value [count] - write memory PV210 # mw PV210 # md : DD
29 uboot Command Memory Control nm 메모리를수정하는명령어 nm 명령어는데이터를기록할때해당어드레스가자동증가하지않고해당데이터를반복해서기록할수있음 디버깅할때특정레지스터에값을바꾸면서테스트하는경우유용하게사용할수있음 PV210 # help nm nm [.b,.w,.l] address - memory modify, read and keep address PV210 # nm : ? : ? : ? : ? q 29
30 uboot Command Memory Control dnw tftp USB 를통해서데이터를수신할경우사용되는명령어 PV210 # help dnw dnw [download address] PV210 # dnw 0x Insert a OTG cable into the connector! TFTP 프로토콜을이용하여호스트의 tftp 데몬에서서비스하는디렉토리에서부트로더나커널을지정한메모리로다운로드받는명령어 30 PV210 # help tftp tftpboot [loadaddress] [[hostipaddr:]bootfilename] PV210 # tftp 0x u-boot.bin smc911x: initializing smc911x: detected LAN9115 controller smc911x: phy initialized smc911x: MAC 00:40:5c:26:0a:5b TFTP from server ; our IP address is Filename 'u-boot.bin'. Load address: 0x Loading: ####################################
31 uboot Command SD 관련 Command 210T 는내부에 NOR 혹은 NAND 와같은메모리를이용하지않고, microsd 메모리를이용하여시스템을구동하도록구성되어있음 부트로더와커널, 파일시스템등모든데이터는 2GB 의시스템메모리에기록 부트로더모드에서는 USB 혹은이더넷을통하여다운로드받은부트로더와커널이미지등을메모리로받았다가, 메모리에서 microsd 로기록 31
32 uboot Command SD 관련 Command PV210 # help movi movi init - Initialize movinand and show card info movi read {u-boot kernel} {addr} - Read data from sd/mmc movi write {fwbl1 u-boot kernel} {addr} - Write data to sd/mmc movi read rootfs {addr} [bytes(hex)] - Read rootfs data from sd/mmc by size movi write rootfs {addr} [bytes(hex)] - Write rootfs data to sd/mmc by size movi read {sector#} {bytes(hex)} {addr} - instead of this, you can use "mmc read" movi write {sector#} {bytes(hex)} {addr} - instead of this, you can use "mmc write" 32
33 uboot Command SD 관련 Command movi init 초기화명령어로서장착된 microsd를인식하고메모리카드의정보와 MBR의정보를읽어와출력해줌 PV210 # movi init Device: S3C_HSMMC0 Manufacturer ID: 1b RCA: 2 OEM: 534d Name: Tran Speed: Rd Block Len: 512 SD version 2.0 High Capacity: No Size: 1910MB (block: ) Bus Width: 4-bit 33
34 uboot Command SD 관련 Command movi read 읽기명령어로서 microsd 로부터특정데이터를읽는명령어 PV210 # movi read u-boot 0x reading bootloader.. 49, 1024 MMC read: dev # 0, block # 49, count blocks read: OK completed PV210 # movi read kernel 0x reading kernel , 8192 MMC read: dev # 0, block # 1073, count blocks read: OK completed 34
35 uboot Command SD 관련 Command movi read rootfs microsd 에서사용하는읽기명령어 PV210 # movi read rootfs 0x x reading RFS , 2048 MMC read: dev # 0, block # 9265, count blocks read: OK completed 35
36 uboot Command SD 관련 Command movi write 메모리에있는부트로더및커널을 microsd에기록하기위한명령어 PV210 # movi write uboot 0x Writing BL1 to sector 1 (16 sectors).. checksum : 0xeaa33 writing bootloader.. 49, 1024 MMC write: dev # 0, block # 49, count blocks written: OK completed PV210 # movi write kernel 0x writing kernel , 8192 MMC write: dev # 0, block # 1073, count blocks written: OK completed 36
37 uboot Command SD 관련 Command movi write rootfs SDRAM 에있는 rootfs 를지정한크기만만큼가져와서 microsd 의 rootfs 영역에기록하는명령이 PV210 # movi write rootfs 0x x writing RFS , 2048 MMC write: dev # 0, block # 9265, count blocks written: OK completed 37
38 Bootloader Compile 부트로더컴파일하기 Achro-210T 의부트로더소스는제공되는 DVD 의 bootloader 디렉토리에위치하고있음 컴파일하기위해해당미디어로부터파일을복사한다음, 압축을해제하고컴파일설정을기본환경으로한다음 make 를입력하여컴파일함 컴파일이완료되면부트로더소스디렉토리에 u-boot.bin 파일이생성됨 38
39 Bootloader Compile 부트로더소스준비 부트로더컴파일작업은압축된부트로더소스파일을 /root/work 에푸는것으로시작 cd /root/achro-210t/bootloader/ ls 합계 uboot tar.gz tar xvfz uboot tar.gz -C /root/work ( 생략 ) uboot /lib_sparc/time.c uboot /makeall uboot /avr32_config.mk uboot /copying root@esp:~/achro-210t/bootloader# cd ~/work/uboot / 39
40 Bootloader Compile 부트로더소스준비 압축이해제되면 /root/work/uboot 이라는디렉토리가생성됨 해당디렉토리로이동한다음 Makefile 을수정 vi Makefile CROSS_COMPILE?= /opt/toolchains/arm-2009q3/bin/arm-none-linux-gnueabi- 40
41 Bootloader Compile 부트로더컴파일 부트로더를컴파일하는순서 make distclean 명령을통해서기존설정해놓은환경과관련된내용을모두지우기 210T 개발보드의기본적인설정 (CPU, 플랫폼등 ) 을해주기위해서 make achropv210_config 명령을수행 make 를사용하여컴파일을시작 root@esp:~/work/uboot # make distclean root@esp:~/work/uboot # make achropv210_config Configuring for achropv210 board... root@esp:~/work/uboot # make 41
42 Bootloader Compile 부트로더컴파일 생성된부트로더바이너리파일확인 42
43 To Update the Bootloader 부트로더업데이트 부트로더를업데이트하기위해서호스트리눅스에서미니컴을실행 개발보드의전원을켠후, uboot 명령모드로진입 개발보드의전원을켜면, 화면에 Hit any key to stop autoboot : 3 이라고카운트다운이시작 카운트가 0 이되기전아무키값이나입력하면 ubot 명령모드로진입할수있음 210T 의 USB OTG 와호스트가 USB 케이블로연결 dnw 0x 명령어를통해호스트로부터파일수신대기상태진입 43
44 To Update the Bootloader 부트로더업데이트 VirtualBox 관리자메뉴표시줄에서 [ 장치 ] - [USB 장치 ] 를클릭하여 System MCU SEC S3C6400X Test B/D[0100] 을선택 호스트 PC 에서 smdk-usbdl 명령어를통해컴파일된부트로더바이너리를 210T 개발보드로전송 movi write 명령어를통해다운로드받은바이너리를 microsd 의부트로더영역 (BL2) 에기록 reset 명령을통해장치를리부팅 새로적용된 uboot 이미지를이용해부팅 44
45 To Update the Bootloader 부트로더업데이트 부트로더 (uboot) 시작화면 45
46 To Update the Bootloader 부트로더업데이트 미니컴을통해보드의부트로더에서 DNW 명령실행 46
47 To Update the Bootloader 부트로더업데이트 smdk-usbdl 사용을위한 USB 장치선택 47
48 To Update the Bootloader 부트로더업데이트 호스트리눅스에서 smdk-usbdl 을이용데이터전송 48
49 To Update the Bootloader 부트로더업데이트 OTG 를이용한다운로드완료 49
50 To Update the Bootloader 부트로더업데이트 microsd 에부트로더기록 50
51 부트로더에명령어추가하기 부트로더명령추가 부트로더는네트워크를이용한 tftp, usb 를이용한 OTG 등여러가지전송방식을지원 이런명령들은 uboot 를제작하는프로젝트에서개발하기보다하드웨어개발업체에서해당프로그래밍을해서동작하도록하고있음 부트로더에서는물리적인어드레스에접근이가능 부트로더명령어추가를위해서는 2 개의파일을작성혹은수정해야함 부트로더에서명령으로실행할소스코드예제에서는 cmd_hello.c ([ 부트로더소스 ]/common) 파일 컴파일시참조되는 Makefile ([ 부트로더소스 ]/common) 파일 51
52 부트로더에새로운명령어추가 부트로더명령추가 52 부트로더소스디렉토리의서브디렉토리인 common 디렉토리로이동 다음의소스코드작성 cd ~/work/uboot /common vi cmd_hello.c /* Bootloader Test Example - Helloworld */ #include <common.h> #include <command.h> #include <net.h> int do_hello (void) { printf("hello World!\n"); return 0; } U_BOOT_CMD ( hello, 1, 1, do_hello, "hello - Bootloader Command Test\n", "using hello.\n" );
53 부트로더에새로운명령어추가 부트로더명령추가 소스의가장아래의 U_BOOT_CMD() 는부트로더에명령어로등록하기위한매크로임 uboot 에서사용하는명령어들은 U_BOOT_CMD() 매크로를사용하여등록 이매크로는명령어에대한도움말뿐만아니라부트로더에서명령어 (hello) 입력시실행할함수 (do_hello) 를지정하는데사용 #define Struct_Section attribute ((unused,section (".u_boot_cmd"))) #define U_BOOT_CMD (name,maxargs,rep,cmd,usage,help) \ cmd_tbl_t u_boot_cmd_##name Struct_Section = \ { #name, maxargs, rep, cmd, usage, help } 53
54 부트로더에새로운명령어추가 부트로더명령추가 Makefile(bootloader_src/common) 을수정 기존의 Makefile 의다음의내용을추가 COBJS-y += cmd_pcmcia.o COBJS-$(CONFIG_CMD_PORTIO) += cmd_portio.o ( 생략 ) COBJS-$(CONFIG_S3C_USBD) += cmd_usbd.o COBJS-$(CONFIG_CMD_XIMG) += cmd_ximg.o COBJS-y += cmd_vfd.o COBJS-y += cmd_hello.o hello 명령이추가되도록컴파일항목을추가 54
55 새로추가된부트로더명령어확인 부트로더명령추가 타겟보드를새로작성된부트로더로업데이트한후추가된명령어확인하기 PV210 # help hello hello using hello. PV210 # hello Hello World! PV210 # 55
PowerPoint 프레젠테이션
BOOTLOADER Jo, Heeseung 부트로더컴파일 부트로더소스복사및압축해제 부트로더소스는웹페이지에서다운로드 /working 디렉터리로이동한후, wget으로다운로드 이후작업은모두 /working 디렉터리에서진행 root@ubuntu:# cp /media/sm5-linux-111031/source/platform/uboot-s4210.tar.bz2 /working
More informationMango220 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임베디드시스템설계강의자료 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 informationChap 10 안드로이드커널 (Kernel)
Chap 10 안드로이드커널 (Kernel) 1. Kernel Operating System에서 Kernel은운영체제의핵심부분이다. Bootloader에서하드웨어초기화를담당했다면, 커널은우리가사용해야할시스템자원을관리해주는기능을해준다. 아래는기본적인커널의역할을나열해보았다. 물론, 안드로이드가적용되면서기본적인커널에추가적인기능이포함되었다. 기본적인커널의역할을나열하면아래와같다.
More informationMango-AM335x LCD Type 커널 Module Parameter에서 변경하기
Mango-AM335x LCD Type 커널 Module Parameter 에서 변경하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology
More informationMicrosoft PowerPoint - 03-Development-Environment-2.ppt
개발환경 2 임베디드시스템소프트웨어 I 차례 부트로더의기능, 컴파일방법 커널의기능, 컴파일방법 파일시스템의기능, 생성방법 Host-KIT 네트워크연결방법 (Bootp, TFTP, NFS) 개발환경 2 2 부트로더의기능 하드웨어초기화 CPU clock, Memory Timing, Interrupt, UART, GPIO 등을초기화 커널로드 커널이미지를 flash
More information지난시간에... 우리는 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슬라이드 제목 없음
< > Target cross compiler Target code Target Software Development Kit (SDK) T-Appl T-Appl T-VM Cross downloader Cross debugger Case 1) Serial line Case 2) LAN line LAN line T-OS Target debugger Host System
More informationMicrosoft PowerPoint - chap02-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 학습목표 을 작성하면서 C 프로그램의
More informationMango-IMX6Q mfgtool을 이용한 이미지 Write하기
Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document
More information임베디드시스템설계강의자료 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 informationCode 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망고 M 카메라 포팅 가이드
망고 220 1.3M 카메라포팅 가이드 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History
More informationChap 3 부트로더 (Bootloader)
Chap 3 부트로더 (Bootloader) 1. Bootloader 임베디드장치의초기화를위해서사용되는 bootloader 에대해서알아보도록한다. Achro-i.MX6Q 는 u-boot 를이용한다. 1.1. Bootloader 임베디드시스템에 bootloader가존재하는이유는다음과같다. 일반적인 X86시스템에서는마더보드와 CPU가잘동작할수있도록초기화하는프로그램이보드에내장되어있다.
More informationPowerPoint 프레젠테이션
임베디드리눅스개발환경실습 Jo, Heeseung 타겟보드모니터링동작실습 호스트 PC 에서시리얼포트를통해서타겟보드를모니터링 타겟보드가프로그램을실행하는동안일어나는일을시리얼포트로메시지를출력하면호스트 PC 에서는시리얼포트를통해메시지를수신하여이를화면에출력 minicom 프로그램사용 - minicom 이정상적으로설정이되고, 타겟보드에최소한부트로더가올라간상태라면 minicom
More informationDE1-SoC Board
실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically
More informationPowerPoint 프레젠테이션
(Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet
More informationPowerPoint 프레젠테이션
Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여
More informationUSB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox
USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 2010. 10. 21. 최초작성 by 김정현 2010. 10. 24. 스크립트추가, 설명보충 by 유형목 1. VritualBox 설정 Windows 환경에서 VirtualBox 를설치한다음게스트 OS 로우분투리눅스를사용하는경우,
More informationMango24R2 Auto Write
Mango24R2 Auto Write http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History Revision
More information임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 시스템호출개요 리눅스에서는사용자공간과커널공간을구분 사용자프로그램은사용자모드, 운영체제는커널모드에서수행 커널공간에대한접근은커널 ( 특권, priviledged) 모드에서가능 컴퓨팅자원 (CPU, memory, I/O 등 ) 을안전하게보호 커널수행을안전하게유지
More information휠세미나3 ver0.4
andromeda@sparcs:/$ ls -al dev/sda* brw-rw---- 1 root disk 8, 0 2014-06-09 18:43 dev/sda brw-rw---- 1 root disk 8, 1 2014-06-09 18:43 dev/sda1 brw-rw---- 1 root disk 8, 2 2014-06-09 18:43 dev/sda2 andromeda@sparcs:/$
More informationPowerPoint 프레젠테이션
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<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(SW3704) Gingerbread Source Build & Working Guide
(Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History
More informationPowerPoint 프레젠테이션
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 informationChap 5 루트파일시스템 (Root F/S)
Chap 5 루트파일시스템 (Root F/S) Chap 5. 루트파일시스템 (Root F/S) 1. Root File System 1.1. Root File system Root file system이란 / 에마운트되는 file system을말한다. 리눅스시스템에서커널이기본적인운용환경을구성해주고난다음, 루트파일시스템이리눅스시스템에서사용하는유틸리티, 라이브러리등과같은부가적인요소들을제공한다.
More informationPowerPoint 프레젠테이션
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슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More information망고100 보드로 놀아보자-5
망고 100 보드로놀아보자 -6 U-boot build 환경분석 U-boot build 환경분석 Board/$(Vendor)/$(BOARD)/Config.mk 파일분석 (U-boot 가실행하는주소정의 ) ifndeftext_base //TEXT_BASE = 0xc7e00000 :MMU 사용 TEXT_BASE = 0x2fe00000 # Physical Address
More information<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교육지원 IT시스템 선진화
Module 5: Installation of Development Tools ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 툴체인 (Toolchain) 또는크로스컴파일러설치하기 타겟보드와의통신설정하기 기타시스템툴설치하기 2 툴체인 (Toolchain) 이란? 크로스컴파일러를설치해야하는이유
More information망고100 보드로 놀아보자-4
망고 100 보드로놀아보자 -4 Minicom,tftp,nfs 설정,vnc 설정 minicom 설정 Minicom 설정 >#yum install minicom >#ls /dev/ttyusb* ># minicom s Minicom 설정 Serial Device :/dev/ttyusb0 Baudrate:115200 Hardware Flow control: NO
More informationMicrosoft 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 informationPowerPoint 프레젠테이션
Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드
More informationPowerPoint 프레젠테이션
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 informationMicrosoft 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교육지원 IT시스템 선진화
Module 6: Target Board (Achro-210T) Initialization ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 타겟보드 (Achro-210T) 타겟보드하드웨어사양 타겟보드소프트웨어구성요소 타겟보드구동하기 MicroSD 메모리초기화하기 MicroSD 메모리에시스템이미지올리기
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationPowerPoint Presentation
#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 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.
More informationAPI 매뉴얼
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 informationLXR 설치 및 사용법.doc
Installation of LXR (Linux Cross-Reference) for Source Code Reference Code Reference LXR : 2002512( ), : 1/1 1 3 2 LXR 3 21 LXR 3 22 LXR 221 LXR 3 222 LXR 3 3 23 LXR lxrconf 4 24 241 httpdconf 6 242 htaccess
More information버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습
앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수
More informationMicrosoft 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 informationPRO1_04E [읽기 전용]
Siemens AG 1999 All rights reserved File: PRO1_04E1 Information and S7-300 2 S7-400 3 EPROM / 4 5 6 HW Config 7 8 9 CPU 10 CPU : 11 CPU : 12 CPU : 13 CPU : / 14 CPU : 15 CPU : / 16 HW 17 HW PG 18 SIMATIC
More informationuntitled
Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II
More informationPowerPoint 프레젠테이션
임베디드리눅스개발환경구축 Jo, Heeseung 개발환경 HBE-SM5-S4210 개발환경 타겟보드와리눅스가설치된호스트컴퓨터가필요 임베디드리눅스개발환경 - 호스트컴퓨터환경설치 - 호스트와타겟연결 - 디버그환경 호스트컴퓨터는임베디드시스템의동작을모니터링하는디버깅환경으로서의역할도수행 임베디드시스템을위한소프트웨어를개발하기위해서호스트시스템에구축하는개발환경 교차개발환경
More informationPowerPoint 프레젠테이션
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 informationPRO1_09E [읽기 전용]
Siemens AG 1999 All rights reserved File: PRO1_09E1 Information and - ( ) 2 3 4 5 Monitor/Modify Variables" 6 7 8 9 10 11 CPU 12 Stop 13 (Forcing) 14 (1) 15 (2) 16 : 17 : Stop 18 : 19 : (Forcing) 20 :
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationThe Pocket Guide to TCP/IP Sockets: C Version
인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)
More informationMicrosoft Word - Armjtag_문서1.doc
ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor
More informationPowerPoint 프레젠테이션
Deep Learning 작업환경조성 & 사용법 ISL 안재원 Ubuntu 설치 작업환경조성 접속방법 사용예시 2 - ISO file Download www.ubuntu.com Ubuntu 설치 3 - Make Booting USB Ubuntu 설치 http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/
More informationMicrosoft PowerPoint - 15-MARS
MARS 소개및실행 어셈블리프로그램실행예 순천향대학교컴퓨터공학과이상정 1 MARS 소개및실행 순천향대학교컴퓨터공학과 2 MARS 소개 MARS MIPS Assembler and Runtime Simulator MIPS 어셈블리언어를위한소프트웨어시뮬레이터 미주리대학 (Missouri State Univ.) 의 Ken Vollmar 등이자바로개발한교육용시뮬레이터
More informationAPI 매뉴얼
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 informationMicrosoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More informationPowerPoint Presentation
KOSR 공개세미나 - 임베디드리눅스 - 김도집 2006.2.18 본강좌의목표 임베디드리눅스입문하는분 맛뵈기를보여드립니다. 리눅스를설치하긴부담스러운분 리눅스설치하지않아도됩니다. 임베디드하드웨어를구하기어려운분 비싼하드웨어사지않아도됩니다. 2 1. 리눅스이해및 개발환경구성 리눅스란? UNIX 계열의운영체제 오픈소스 다양한아키텍처지원 자유 (Free) 지만, 공짜
More informationMicrosoft PowerPoint - 02-Development-Environment-1.ppt
개발환경 1 임베디드시스템소프트웨어 I 차례 개발환경 Host와 Target의연결 Host 및 target 사양 Toolchain이란, 설치방법 시험 Cross Compile Minicom 설정및사용방법 JTAG 설치및사용방법 Bootloader, kernel, file system flash 방법 개발환경 1 2 개발환경 Host 시스템 임베디드소프트웨어를개발하는시스템
More informationTizen
1 Porting Tizen on ODROID (1/2) Compile kernel Index 2 Hardware check Configure platform Bootloader Building a kernel Building a Tizen platform Platform image flash Platform configuration Trouble shooting
More informationSRC 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 informationMicrosoft PowerPoint - ch07.ppt
chapter 07. 시스코라우터기본동작 한빛미디어 -1- 학습목표 시스코라우터외적, 내적구성요소 시스코라우터부팅단계 시스코라우터명령어모드 한빛미디어 -2- 시스코라우터구성요소 라우터외부구성요소 (1) [ 그림 ] 2600 라우터전면도 인터페이스카드 전원부 LED 라우터조건 한빛미디어 -3- 시스코라우터구성요소 라우터외부구성요소 (2) [ 그림 ] VTY 를이용한라우터접속
More informationMicrosoft Word - 3부A windows 환경 IVF + visual studio.doc
Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration
More informationA 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 informationChapter. 5 Embedded System I Bootloader, Kernel, Ramdisk Professor. Jaeheung, Lee
Chapter. 5 Bootloader, Kernel, Ramdisk Professor. Jaeheung, Lee 목차 Bootloader Kernel File System 1 Bootloader Bootloader 란? 리눅스커널부팅이전에미리실행되면서커널이올바르게부팅되기위해필요한모든관련작업을마무리하고최종적으로리눅스커널을부팅시키기위한목적으로짜여진프로그램 Bootloader
More information슬라이드 1
Delino EVM 용처음시작하기 - 프로젝트만들기 (85) Delfino EVM 처음시작하기앞서 이예제는타겟보드와개발홖경이반드시갖추어져있어야실습이가능합니다. 타겟보드 : Delfino EVM + TMS0F85 초소형모듈 개발소프트웨어 : Code Composer Studio 4 ( 이자료에서사용된버전은 v4..입니다. ) 하드웨어장비 : TI 정식 JTAG
More informationMicrosoft Word doc
TCP/IP 구조 1. I.P 구조설명 2. ARP 구조설명 3. TCP 구조설명 4. UDT 구조설명 5. RIP 구조설명 6. BOOTP 구조설명 7. TFTP 구조설명 destination addr source addr type data CRC 6 6 2 46-1500 4 type 0X0800 IP datagram 2 46-1500 type 0X0806
More informationPowerPoint 프레젠테이션
Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationPowerPoint 프레젠테이션
1 Tizen 실습예제 : Remote Key Framework 시스템소프트웨어특론 (2014 년 2 학기 ) Sungkyunkwan University Contents 2 Motivation and Concept Requirements Design Implementation Virtual Input Device Driver 제작 Tizen Service 개발절차
More informationMicrosoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]
System Programming Lab Week 1: Basic Skills for Practice Contents vi Editor 사용법 GCC 컴파일러사용법 Makefile 사용법 GDB 사용법 VI Editor Usage vi 모드 입력모드 : 실제문서를편집하는모드. 명령모드 : 키입력이바로명령이되는모드로서쓴내용을삭제하거나, 복사할때사용. ex 명령모드
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작성자 : 기술지원부 김 삼 수
작성자 : 기술지원부김삼수 qpopper 설치 qpopper란무엇인가? 메일수신을하기위해필요한프로그램으로 qpopper는가장인기있는 email 클라이언트에의해사용되는인터넷 email 다운로딩을위한 POP3프로토콜을사용합니다. 그러나 qpopper는 sendmail이나 smail과같이 SMTP프로토콜은포함하고있지않습니다. (
More informationPowerPoint 프레젠테이션
임베디드리눅스개발환경구축 Jo, Heeseung 개발환경 HBE-SM5-S4210 개발환경 타겟보드와리눅스가설치된호스트컴퓨터가필요 임베디드리눅스개발환경 - 호스트컴퓨터환경설치 - 호스트와타겟연결 - 디버그환경 호스트컴퓨터는임베디드시스템의동작을모니터링하는디버깅환경으로서의역할도수행 임베디드시스템을위한소프트웨어를개발하기위해서호스트시스템에구축하는개발환경 교차개발환경
More informationuntitled
시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000
More information슬라이드 1
CCS v4 사용자안내서 CCSv4 사용자용예제따라하기안내 0. CCS v4.x 사용자 - 준비사항 예제에사용된 CCS 버전은 V4..3 버전이며, CCS 버전에따라메뉴화면이조금다를수있습니다. 예제실습전준비하기 처음시작하기예제모음집 CD 를 PC 의 CD-ROM 드라이브에삽입합니다. 아래안내에따라, 예제소스와헤더파일들을 PC 에설치합니다. CD 드라이브 \SW\TIDCS\TIDCS_DSP80x.exe
More informationMicrosoft 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강의10
Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced
More informationMicrosoft Word doc
2. 디바이스드라이버 [ DIO ] 2.1. 개요 타겟보드의데이터버스를이용하여 LED 및스위치동작을제어하는방법을설명하겠다. 2.2. 회로도 2.3. 준비조건 ARM 용크로스컴파일러가설치되어있어야한다. 하드웨어적인점검을하여정상적인동작을한다고가정한다. NFS(Network File System) 를사용할경우에는 NFS가마운트되어있어야한다. 여기서는소스전문을포함하지않았다.
More informationMPLAB C18 C
MPLAB C18 C MPLAB C18 MPLAB C18 C MPLAB C18 C #define START, c:\mcc18 errorlevel{0 1} char isascii(char ch); list[list_optioin,list_option] OK, Cancel , MPLAB IDE User s Guide MPLAB C18 C
More information<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 informationCopyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su
Java Desktop System 2 Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. : 817 7757 10 2004 9 Copyright 2004 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A..,,.
More informationMicrosoft PowerPoint - em8-리눅스설치.ppt
임베디드리눅스커널설치개요 임베디드리눅스설치 Linux Kernel* Root File System* jffs2.img 1 2 구성요소 리눅스커널 필수구성요소 하드웨어를초기화하고 kernel image를 에올려주어수행을넘겨주는역할을하는프로그램 OS Kernel OS 의핵심프로그램 Root File System Kernel 에서사용할 File System 임베디드리눅스에서는
More information<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>
쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 통합개발환경 통합개발환경 (IDE: integrated development environment) 에디터 + 컴파일러 + 디버거 Visual C++: 이클립스 (eclipse): Dev-C++: 마이크로소프트제작 오픈소스프로젝트 오픈소스프로젝트 통합개발환경의종류 비주얼 C++(Visual C++)
More informationSmart Power Scope Release Informations.pages
v2.3.7 (2017.09.07) 1. Galaxy S8 2. SS100, SS200 v2.7.6 (2017.09.07) 1. SS100, SS200 v1.0.7 (2017.09.07) [SHM-SS200 Firmware] 1. UART Command v1.3.9 (2017.09.07) [SHM-SS100 Firmware] 1. UART Command SH모바일
More informationPowerPoint 프레젠테이션
WEB SERVER PORTING 1 Jo, Heeseung 웹서버포팅 HBE-SM5-S4210 를임베디드웹서버로사용할수있도록웹서버를올리는작업 임베디드서버에널리쓰이는웹서버들중 GoAhead 라는웹서버를포팅 CGI 프로그램을이용하여웹에서 HBE-SM5-S4210 의 LED, 7- Segment, TextLCD 를제어실습 2 Goahead webserver 소스를다운받거나제공된
More informationuntitled
CAN BUS RS232 Line Ethernet CAN H/W FIFO RS232 FIFO IP ARP CAN S/W FIFO TERMINAL Emulator COMMAND Interpreter ICMP TCP UDP PROTOCOL Converter TELNET DHCP C2E SW1 CAN RS232 RJ45 Power
More informationChapter #01 Subject
Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More informationAbstract 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 informationMango64R3 How to write Wince 6.0
Mango64R3 How to write Wince 6.0 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document
More informationMicrosoft 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 informationPowerPoint 프레젠테이션
Chapter 15 고급프로그램을 만들기위한 C... 1. main( ) 함수의숨겨진이야기 2. 헤더파일 3. 전처리문과예약어 1. main( ) 함수의숨겨진이야기 main( ) 함수의매개변수 [ 기본 14-1] main( ) 함수에매개변수를사용한예 1 01 #include 02 03 int main(int argc, char* argv[])
More informationKEY 디바이스 드라이버
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 informationPRO1_16E [읽기 전용]
MPI PG 720 Siemens AG 1999 All rights reserved File: PRO1_16E1 Information and MPI 2 MPI 3 : 4 GD 5 : 6 : 7 GD 8 GD 9 GD 10 GD 11 : 12 : 13 : 14 SFC 60 SFC 61 15 NETPRO 16 SIMATIC 17 S7 18 1 MPI MPI S7-300
More informationChap 2 임베디드시스템 개발환경구성
Chap 2 임베디드시스템 개발환경구성 1. 임베디드시스템개발환경구축 1.1. 네트워크기반의개발관련툴 tftp는 2가지형태로구동된다. 아래의세부절은예전부터사용되고있는 xinetd 수퍼데몬기반의 tftp와기능이향상된 tftpd-hpa를설명한다. 시스템의환경에따라서설치이후에동작하지않는문제가있어두가지방법모두를기술하였다. 가상머신인 VMware를이용하는경우라면 xinetd기반의
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationMicrosoft 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 informationMicrosoft PowerPoint - lab14.pptx
Mobile & Embedded System Lab. Dept. of Computer Engineering Kyung Hee Univ. Keypad Device Control in Embedded Linux HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착되어있다. 2 Keypad Device Driver
More informationMicrosoft Word - EISC-GANG_User_Guide_V1.4.doc
HW/SW User Guide EISC-GANG II 사용 설명서 Ver 1.4, 2014-2-7 All right reserved. No part of this document may be reproduced in any form without written permission from Advanced Digital Chips Inc. Advanced Digital
More information