adStar SDK Reference Manual
|
|
- 이경 궁
- 6 years ago
- Views:
Transcription
1 adstar - SDK Reference Manual - 32bits EISC MicroprocessoradStar Ver 1.30 April 30, 2012 Advanced Digital Chips Inc.
2 Ver 1.30 adstar SDK Reference Manual History Created Preliminary Specification Ver adstar SDK 구성, adstar 사용하기부분이 adstar SDK 활용으로통합및내용수정. - UART uart_putdata, uart_putstring 내용추가. - GRAPHIC loadtga, loadtgap, loadpng, loadpngp, drawsetclipwindow, drawsurfacescale drawsurfacescalerect 내용추가 Ver1.1 - Bootloader 내용추가 - lib_config.h 내용추가 - Font 내용추가 - SOUND sound_vol_wav, sound_loadwavp, sound_loadmp3p 내용추가. - 회사주소수정 Ver lib_config.h 의이미지및 Nested Interrupt 내용변경 Ver GRAPHIC createsurface_from 내용추가. ( 이미지회전관련 ) - Font bitmapfont bmfont_setautokerning, bmfont_write_vleft, bmfont_write_vright 추가 - Font bitfont bf_drawstring_vleft, bf_drawstring_vright 추가 Demo Program 실행 의 Linker Script 관련내용수정 Bootloader 의 Mode 관련내용수정, Linker Script 관련내용수정. Execute Mode 내용수정. User Define Mode 내용추가 BootLoader 없이사용하기 내용추가 Ver 라. User Define Mode 의 SD Card 의 boot.bin 파일사용과련내용수정 Ver UART 에 <UART Interrupt> 내용추가 Sound output channel 변경방법수정 Font <font image 제작방법 > 의 Export option 이미지변경 SPI 내용추가. 2 Advanced Digital Chips Inc.
3 adstar SDK Reference Manual Ver 1.30 adstarsdk Reference Manual cadvanced Digital Chips Inc. All right reserved. No part of this document may be reproduced in any form without written permission from Advanced Digital Chips Inc. Advanced Digital Chips Inc. reserves the right to change in its products or product specification to improve function or design at any time, without notice. Office 22F, Bldg A, KeumkangPenterium IT Tower, 810, Gwanyang_dong, Dongan-Gu, Anyang-si, Gyeonggi-do, , Korea Tel : Fax : URL : Advanced Digital Chips Inc. 3
4 Ver 1.30 adstar SDK Reference Manual Table of Contents 1. SOFTWARE 개발환경 ADSTAR SDK 활용 adstar SDK 구성및기본정의 adstar SDK library build Demo Program 실행 Project build & download Nand Flash(SD Card) 에파일복사하기 (Mass Storage Mode 사용하기 ) Demo Program build & download adstar새프로젝트만들기 BOOTLOADER Bootloader Bootloader 사용하기 Bootloader Mode 가. Remote Communication Mode 나. Mass Storage Mode 다. Execute Mode 라. User Define Mode (execute_fat) Namd Boot Code Namd Boot Code 사용하기 BootLoader 없이사용하기 LIB_CONFIG.H UART uart_config uart_putch uart_putdata uart_putstring uart_getch uart_getdata uart_rx_flush uart_tx_flush set_debug_channel get_debug_channel debugprintf debugstring PRINTLINE PRINTVAR( A ) Advanced Digital Chips Inc.
5 adstar SDK Reference Manual Ver UART Example < UART Interrupt > INTERRUPT init_interrupt set_interrupt enable_interrupt Interrupt Example TIMER set_timer stop_timer delayms TIMER Example GRAPHIC setscreen createframe setframebuffer setdoubleframebuffer setframebufferxy setdrawtarget getdrawtarget getbackframe getfrontframe flip getscreenwidth getscreenheight getscreenpitch getscreenbpp drawsetrgb drawgetrgb drawputpixel drawline drawrect drawrectfill drawround drawroundfill drawcircle drawcirclefill drawellipse drawellipsefill Advanced Digital Chips Inc. 5
6 Ver 1.30 adstar SDK Reference Manual 8.27 loadbmp loadbmpp loadjpg loadjpgp loadtga loadtgap loadpng loadpngp loadimage drawsurface drawsurfacerect drawsetclipwinodw drawsurfacescale drawsurfacescalerect releasesurface createsurface_from single frame & double frame사용예 set frame buffer xy사용예 Graphic Example SOUND sount_init() sound_loadwav sound_loadwavp sound_loadmp sound_loadmp3p sound_release sound_play sound_stop sound_vol sound_vol_wav sound_pause sound_resume sound_isplay sound_ispause Sound Example FILE SYSTEM f_mount f_chdrive f_chdir FILE System Example Advanced Digital Chips Inc.
7 adstar SDK Reference Manual Ver FONT bmfont_init bmfont_setfont bmfont_write bmfont_setrgb bmfont_close bmfont_makesurface bmfont_setkerning bmfont_setautokerning bmfont_write_vleft bmfont_write_vright bf_init bf_setrgb bf_setsize bf_drawstring bf_drawstring_vleft bf_drawstring_vleft bf_makesurface FONT Example < font image 제작방법 > SPI spi_master_init spi_set_freq spi_master_xfer spi_wait_empty_fifo SPI Example Advanced Digital Chips Inc. 7
8 Ver 1.30 adstar SDK Reference Manual 1. Software 개발환경 첫번째장으로 adstar 를사용하기위한개발환경을구축하는방법부터알아보도록하겠다. 에이디칩스에서는 adstar Chip 을위해프로그램코드편집, compile, download, debugging 을하나의프로그램에서수행할수있는통합개발환경 (IDE) EISC Studio3 를제공하기때문에자료실에서 EISC Studio3 설치파일을내려받아설치만해주면간단하게개발환경구축을마칠수있다. 참고로 EISC Studio3 는 Windows OS 만지원하면 XP 이상에서동작한다. 1. 에이디칩스홈페이지 ( 에접속해서, Product System EISC Studio3 Download 에서 EISC Studio ver 3.x 의 v3.5.2 를내려받는다. ( 설치및사용자매뉴얼도있으니참고하도록한다.) 2. 내려받은 ES3_setup_v3.5.2.exe 를실행하여설치를시작하면, 설치를시작한다는창이뜨는데 다음 을클릭하여설치를시작한다. 다음 을클릭하면아래와같이설치할 Compiler 와개발장비인 E-CON 의 Driver 설치를선택하는창이뜬다. adstar 는 AE32000 processor 1 를내장한 Chip 으로 AE32000 compiler 를선택하면된다. 그리고 E-CON 2 장비를처음사용하는사용자라면 E-CON 을선택하여 E-Con Driver 도설치한다. 1 에이디칩스에서개발한 32bit Processor. (EISC Architecture) 2 adstar 와연결하여 program download 및 debugging 을수행할때필요한장비. 8 Advanced Digital Chips Inc.
9 adstar SDK Reference Manual Ver compiler 와 E-CON Driver 선택을하고다음을클릭하면, 설치할폴더를선택하는창이나온다. 특별한경우가아니라면 default 로되어있는경로에설치하면된다. ( 주의사항으로 64bit 운영체제를사용할경우 default 로 c:\program Files(x86) 이라고되어있는데, (x86) 을제거한후 c:\program Files 에설치하길바란다.) 4. 다음을클릭하면아래와같은시작메뉴폴더를선택하는창이뜨고, 설치를누르면설치가 시작된다. Advanced Digital Chips Inc. 9
10 Ver 1.30 adstar SDK Reference Manual 5. 구성요소선택에서 E-CON 을체크하였으면설치가끝날무렵 E-Con Driver 설치를위한다음과같은창이뜨고, 다음을클릭하면 Driver 설치를시작한다. 드라이버설치중 Windows 보안경고창이뜨면 이드라이버소프트웨어를설치합니다. 를선택하도록한다. ( 주의사항으로는컴퓨터와 E-CON 이연결되어있을경우설치에문제가생길수도있으므로, 컴퓨터와 E-CON 이연결되지않은상태에서설치하기바란다.) 10 Advanced Digital Chips Inc.
11 adstar SDK Reference Manual Ver 장치드라이버설치가완료되면다음과같은창이나오고, 마침을눌러 EISC Studio3 의남은 설치과정을계속진행한다. 7. 다음과같이 Microsoft Visual C 재배포가능패키지를설치하라는창이뜨면동의함에체크한후설치하면된다. EISC Studio3 를실행하는데필요하므로설치하고넘어가도록한다. 8. 설치가완료되면다음과같은창이출력되고, 다음을누르면설치가완료된다. Advanced Digital Chips Inc. 11
12 Ver 1.30 adstar SDK Reference Manual 9. EISC Studio 3 설치가완료되면다음으로 Download 장비인 E-Con driver 를설치하여야한다. EISC Studio 3 를설치하면서 E-Con driver 파일을복사하였다면 E-Con 을컴퓨터와연결하여 driver 설치를진행하면되고, E-Con driver 파일을복사하지않았을경우에는 EISC Studio 3 를설치한폴더에 econ\driver 라는폴더안에 DPInstx86.exe(32bit) 또는 DPInstx64(64bit) 를실행하여드라이버파일을복사하고, 설치를진행하면된다. (DPInstx86.exe 또는 DPInstx64.exe 를실행해서설치할경우에도, 컴퓨터와 E-CON 을연결하지않은상태에서진행하도록한다.) 10. E-Con driver 파일복사가되었다면, 컴퓨터와 E-Con 을연결하였을때 Windows7 의경우에는자동으로드라이버를찾아설치를진행하게된다. Windows XP 이하버전에서는다음과같이새하드웨어검색마법사창이뜨게되는데, 소프트웨어자동으로설치 를체크하고확인을클릭하면 driver 설치가진행된다. 설치중다음과같은경고창이뜨게되는데, 계속을클릭하면된다. 12 Advanced Digital Chips Inc.
13 adstar SDK Reference Manual Ver E-Con 은 A,B 두개의채널로되어있어위와같은방식으로 B 채널도설치해주면된다. 설치가모두완료되면장치관리자에서다음과같이드라이버설치가완료된것을확인할수있다. E- Con driver 설치와관련된좀더자세한내용은 adchips 홈페이지 ( Product System E-CON Download 의 E-CON Driver Install Guide 를참고하기바란다. Advanced Digital Chips Inc. 13
14 Ver 1.30 adstar SDK Reference Manual 2. adstar SDK 활용 개발에편의를위해 adchips 에서는 adstar SDK 를제공하고있다. adstar SDK 는 adchips 의홈페이지 ( 의 Product SoC ADSTAR Tools & Software 에서내려받을수있다. 2.1 adstar SDK 구성및기본정의 adstar SDK 는다음과같이구성되어있다. Doc 현재보고있는매뉴얼을포함, adstar 와관련된문서가들어있는폴더. Example adstar STK Board 에서동작하는예제프로그램폴더. ( Example 폴더의 flash_data 에는 SDK 예제프로그램이동작하는데있어필요한 image, sound 파일이들어있다. ) Include adstar SDK 의 header file 폴더. lib adstar SDK 의 library file 폴더. lib_src adstar SDK 의 library source file 폴더. ( 최초에는 library 가 build 되지않고 source 형태로만존재하기때문에, lib_src 폴더의 adstar.epx 프로젝트를 build 하여 lib 폴더에 libadstar.a 파일을생성해주어야한다. adstar.epx 를 open 한다음에 F7 또는 build menu 의 build project 를실행하면된다. ) 14 Advanced Digital Chips Inc.
15 adstar SDK Reference Manual Ver 1.30 Pc-util adstar 를사용하는데있어필요한 Utility 폴더. adstar USB Driver 가들어있다. Startup adstar 개발에필요한 startup 코드와 link script 코드가들어있는폴더. 이외에 STK board 기본설정코드도들어있다. adstar SDK 에는사용하기편하고구분이쉽게변수형을아래와같이정의해놓았다. SDK Source 를참조하는데아래표를참고하기바란다. Signed char S8, s8 Signed short S16, s16 Signed int S32, s32 Unsigned chr U8, u8, u8 Unsigned short U16, u16, u16, BYTE, uchar Unsigned int U32, u32, u32, WORD, ushort Unsigned long long Volatile unsigned char Volatile unsigned short Volatile unsigned int U64, u64, u64, DWORD, ulong vu8 vu16 vu32 Volatile unsigned long long vu64 1 TRUE, true 0 FALSE, false 그리고 Register 의경우 R_ 접두어를붙여정의해놓았으므로 SDK Source 에서 R_ 이붙은명칭은 Register 로생각하면된다. 예를들어 R_TM0CON 은채널 0 번 timer control register 이다. Advanced Digital Chips Inc. 15
16 Ver 1.30 adstar SDK Reference Manual 2.2 adstar SDK library build adstar SDK 를홈페이지에서내려받았으면, 제일먼저 adstar SDK Library 를 build 해주어야한다. adstar SDK Library source 는 lib_src 폴더에있으므로, lib_src 폴더의 adstar.epx 파일을열어서 build menu 의 build project 를실행하거나, F7 을눌러서 project build 를진행하면된다. Build 가정상적으로완료되면, lib 폴더안에 libadstar.a 파일이생성된다. (adstar SDK 의모든예제들이 library 를참조하므로제일먼저해주어야한다.) [ lib_src 폴더 ] [ adstar.epx 파일 ] 16 Advanced Digital Chips Inc.
17 adstar SDK Reference Manual Ver 1.30 [ Build Project ] [ Build Project 정상완료 ] [ libadstar.a 파일생성 ] 만약에 adstar library 를수정하게되면위처럼다시 library 를 build 해주어야한다. 그리고 adstar library 를사용하는 program 도다시 build 해주어야수정된 library 가적용된다. Advanced Digital Chips Inc. 17
18 Ver 1.30 adstar SDK Reference Manual 2.3 Demo Program 실행 adstar SDK example 폴더에는 adstar STK Board 에서동작하는예제들이준비되어있어서, STK Board 에서 adstar 동작을쉽게확인해볼수있다. 이번장에서는 SDK 의 example 중 Demo Project Source 를 build, download, 실행하는방법에대해알아보도록하겠다. 우선 Demo 예제를동작시키기위해서는 Nand Flash 에출력될이미지및사운드파일이있어야한다. Nand Flash 에파일을복사하기위해서는 Example 폴더의 usb_mass_storage project 를실행하거나 bootloader 의 mass storage mode 를사용하면되는데, bootloader 는다음장에서설명하도록하고, 이번장에서는 usb_mass_storage project 를사용하여진행하는방법에대해설명하도록하겠다. usb_mass_storage 를실행하기위해우선 project 를 build 하고, download 하는방법에대해서알아보자 Project build & download example 폴더의 usb_mass_storage 폴더를열어 usb_mass_storage.epx 파일을마우스로더블클릭하여 project 를 open 한다. Project 를 open 한후 build 하여 board 에서실행되는.bin(binary) 파일을만들기전에좌측 Project Explorer 창의 Linker Script 에있는파일을변경해주어야한다. SDK 에서제공되는 Linker Script 파일은두가지가있는데, 하나는 adstar.ld 파일이고, 다른하나는 adstar_ram.ld 파일이다. SDK 에 example 에는기본적으로 adstar_ram.ld 파일을사용하도록되어있는데, adstar_ram.ld 파일은프로그램을 SDRam 에서동작시킬때사용하는 Linker Script 파일로 bootloader 가올라간상황에서프로그램을동작시킬때사용할수있다. 이번장에서는 bootloader 없이프로그램을동작시키는방법에대한설명으로, adstar_ram.ld 파일대신 adstar.ld 파일을사용한다. 따라서 Linker Script 에서마우스오른쪽을클릭하여 Set Linker Script File 을선택하여, startup 폴더의 adstar.ld 파일을선택해준다. < adstar_ram.ld 파일을 adstar.ld 파일로변경 > 18 Advanced Digital Chips Inc.
19 adstar SDK Reference Manual Ver 1.30 Linker Script 를변경하였으면, build Build Project 를실행하거나 F7 키를눌러서 project 를 build 한다. build 가완료되면 Output View 에다음과같이출력된다. [ Output View ] Build 가정상적으로완료되면, output 폴더에 usb_mass_storage.elf.bin 파일이생성된것을 확인할수있다. 다음으로 build 로생성된 usb_mass_storage.elf.bin 파일을 STK board 로 download 하는방법에 대해알아보겠다. Download 는 download 할 project 를 EISC Studio3 에열어놓은상태에서 E- CON 을사용하여다음의순서대로진행하면된다. 1. Download 를하기위해 adstar board 와 E-CON 장비를준비한다. (EISC Studio 3 가설치되어있어야하고, E-CON Driver 가설치되어있어야한다. 설치방법은 1 장의 Software 개발환경을참고하기바란다.) 2. adstar board 와 E-CON 장비를연결한후 board 의전원을켠다. 3. Build 메뉴의 Download Option 을클릭한다. 그러면다음과같이 Download Manager 창이뜨는데, Set Command 에는 EISC Studio3 를설치한폴더에서 econ 이라는폴더안의 EConMan.exe 라는 E-CON 용다운로드프로그램을선택해준다. (default 값인 EconMan.exe 로하여도된다. 그리고 Set Argument 에는 target adstar sysinit ffw 0x0 $(TargetPath).bin -exit 이라고입력하고 OK 를클릭한다. Advanced Digital Chips Inc. 19
20 Ver 1.30 adstar SDK Reference Manual Argument 에대해설명하면, -target 은말그대로 download 할 target 을말하며 adstar 로적어주면된다. -sysinit 는 download 를위한초기화를해주는 command 이다. -ffw 는 build 결과물로나온 bin 파일을다운로드하는 command 로 0x0 은 download 할주소이고, $(TargetPaht).bin 은 download 할파일명으로 $(TargetPath).bin 은현재열려있는 project 의 bin 파일을뜻한다. -exit 는 download 가완료되면자동으로종료하라는 command 이다. (Set Argument 에대한자세한내용은 Product System E-CON Download E-CON.pdf 파일을참고하기바란다.) 4. Build 메뉴의 Download to Target 을클릭하면 download 가진행이된다 Nand Flash(SD Card) 에파일복사하기 (Mass Storage Mode 사용하기 ) Download 가완료된후 usb cable 을컴퓨터와 STK board 의 device 단자에연결을한후 board 에전원을켠다. 전원을켜면다음과같이새로운저장장치가나타난다. 이저장장치가 board 의 Nand Flash 가잡힌것으로이곳에파일을복사하면 NandFlash 에저장되어 adstar 프로그램에서사용할수있다. Demo Project 에서사용하는이미지및사운드파일은 example 폴더의 flash_data 폴더안의 내용을복사하면된다. 만약 Nand Flash 대신 SD Card 에파일을복사하기위해서는 usb_mass_storage project 의 mass_stor.c 파일을열어상단에주석으로처리되어있는 #define SDCARD_STORAGE 를주석을푼다음 build 한후 board 에 download 하면위와같은방법으로 SD Card 에파일을복사할수있다 Demo Program build & download Nand Flash 에 Demo Project 에서사용하는이미지및사운드를복사하였으면 example 폴더의 Demo Project 를열어서이전 usb_mass_storage project 때와마찬가지로 Linker Script 를 adstar.ld 파일로변경한후 build 하여 E-Con 으로 download 하면 Demo 동작을확인할수있다. 20 Advanced Digital Chips Inc.
21 adstar SDK Reference Manual Ver adstar 새프로젝트만들기 이번장에서는 Hello adchips! 라는문장을 UART 를통해출력하는프로그램을작성하면서새프로젝트를만드는법에대해알아보겠다. 1. 먼저 EISC Studio3 를실행한다. 2. 메뉴의 File New Project 를클릭하면다음과같은창이나오는데, 아래그림과같이 EISC General.dll 을선택한후 OK 버튼을누른다. 3. 다음과같이, project 설정창이출력되는데, CPU Type, Build Type, Project Name, Project Directory 를결정해주어야한다. adstar 는 CPU Type 으로 AE32000 을선택해주면되고, 동작프로그램을작성할것이기에 Build Type 으로 Executable 을선택해준다. 다음으로 Project Name 과 Project 를생성할위치를정해주면된다. Project Directory 옆에위치한체크박스 (Make New Project Folder) 는 Project Name 과같은이름의폴더를생성유무를결정하는것으로, 체크하게되면 Project Directory 로지정해놓은폴더에 Project Name 과같은이름의폴더를생성한후그안에 Project file 을생성해준다. 체크하지않을경우에는 Project Directory 로지정해놓은폴더에 Project file 을생성한다. 모든설정이끝나면 OK 를클릭하여새프로젝트생성을완료한다. Advanced Digital Chips Inc. 21
22 Ver 1.30 adstar SDK Reference Manual 4. 새로운프로젝트가생성되면다음과같이 Project Explorer 창에 Projet 명과 Project tree 를 확인할수있는데, 이곳에 adstar 용 project 에기본적으로필요한파일들을추가해주어야 한다. 5. 먼저 Source Files 에서마우스오른쪽키를클릭하여 Add Exist Files 를선택하여파일을 추가한다. 추가할파일은 SDK 의 startup 폴더에있는 startup_adstart.s, adstarinit.c, stk_board.c 이다. (stk_board.c 파일은 adstar 용 stk board 를사용할경우추가해주면된다.) 22 Advanced Digital Chips Inc.
23 adstar SDK Reference Manual Ver 다음으로 Source Files 와마찬가지로 Header Files 에서도마우스오른쪽키를클릭하여 include 폴더에있는 adstar.h 파일을추가해준다. adstar.h 파일만추가해줘도되지만프로그램작성시함수사용에도움을받기위해서는 include/adstar 폴더에있는관련 header 파일도같이추가해주면좋다. 여기서는 UART 를사용하는프로그램을작성해볼것이므로, UART.h 파일도추가하도록하겠다. 7. 다음으로 Linker Script 에 startup 폴더에있는 adstar.ld 파일을추가하고, Static Library Files 에 lib 폴더에있는 libadstar.a 파일을추가한다. 그리고지금작성하고있는 UART 예제프로그램에는필요없지만, MP3 재생이나, JPG 이미지파일을출력하는프로그램작성시에는 libmad.a 파일과 libjpeg.a 파일도추가해주어야한다. Advanced Digital Chips Inc. 23
24 Ver 1.30 adstar SDK Reference Manual 8. 위처럼추가를다했으면 Source Files 에서마우스오른쪽키를누르고 Add New File 을 클릭 main 프로그램을작성할 main.c 를생성해주면된다. 다음은 main.c 를생성하고, UART 를통해 Hello adchips! 라는문자열을출력하는코드를작성한것이다. 9. 코드를살펴보면, 제일먼저 boardinit() 함수를호출하여사용하는 board 에맞게 pin 설정을한다. (boardinit() 함수는사용하는 board 마다다르므로 board 에맞게 pin 설정을해주어야한다.) 다음으로 uart_config() 함수를호출하여 UART 를설정한값대로초기화해준다. 그리고 debugprintf() 함수를사용하여 hello adchips! 를출력한다. 10. 코드작성을마쳤으면, project 를 build 해야하는데, 그전에먼저 project 설정을해주어야한다. Project Explorer 창에서 project 명에서마우스오른쪽을클릭하여 Properties 를클릭한다. 그러면다음과같은창이나오는데, Directory 에서 Include Directory 에 SDK 의 include 폴더를추가해준다. ( 우측상단의점선박스를클릭하면폴더를추가할수있다.) 24 Advanced Digital Chips Inc.
25 adstar SDK Reference Manual Ver include 폴더까지추가를했으면 Build 메뉴에서 Build Project 를클릭하거나, F7 을누르면 Project Build 가이루어진다. Build 가정상적으로완료되었다면, Output View 창에다음과 같이출력되고, output 폴더에 project name.elf.bin 파일이생성된다. 12. 생성된 bin 파일을 E-Con 을사용하여 STK board 에 download 하면 Uart 0 번채널을통해 hello adchips! 가출력되는것을확인할수있다. Advanced Digital Chips Inc. 25
26 Ver 1.30 adstar SDK Reference Manual 3. Bootloader 이번장에서는 adstar Bootloader 에대해설명한다. adstar 내부에 Flash 를포함한것과, Flash 를포함하지않은칩을위해, 내부 Flash Booting 과 Nand Booting 이가능하다. 이에맞춰 Bootloader 도 Flash Booting 을위한 bootloader 와 Nand Booting 을위한 Nand Boot Code 를지원한다. 3.1 Bootloader Bootloader 는 Serial Flash 를사용한 Flash Boot Mode 3 일경우에사용할수있도록제작된 booting 프로그램으로, SDK Example 의 bootloader 폴더안에있으며, adstar Booting 기능외에다음의기능을제공한다. 가. Remote Communication Mode. 나. Mass Storage Mode. 다. Execute Mode. 라. User Define Mode Remote Communication Mode 는 RemoteManCLI 프로그램을사용하여 adstar 와 Communication 할수있는 mode 로, 주로 USB 를사용하여 application 프로그램을 DRAM 으로 download 하여실행할때사용한다. application 프로그램의동작을빠르게확인해볼수있는장점이있다. 단 DRAM 에 download 하는것이기때문에, 동작을확인할때마다 download 해주어야한다. Mass Storage Mode 는 example 의 usb_mass_storage 와같은동작을수행하는 Mode 로 adstar board 의 Nand Flash 를 usb memory 와같이컴퓨터에서저장장치로인식되도록해준다. 따라서 bootloader 가 adstar 칩에 download 되어있으면, Nand Flash 에 file 을복사하기위해 usb_mass_storage 예제를 download 하지않고도, bootloader 의 Mode 만변경하여 file 을복사할수있다. Execute Mode 는실행모드로, Flash 의 0x14000(sector number : 20) 번지에저장된실행프로그램을 Dram 으로복사한후복사한프로그램을실행하는 Mode 이다. 마지막으로 User Define Mode 는사용자가원하는동작을코딩하여사용하도록해놓은 Mode 인데 Bootloader 에서는기본적으로 Execute Mode 와비슷한동작을하도록프로그램되어있다. Execute Mode 와다른점은내부 Flash 에서실행프로그램을복사하는것이아니라, Nand Flash(SD Card) 에 boot.bin 이라는파일을 Dram 으로복사한후실행하도록되어있다. 자세한동작및사용법에대해서는뒤에설명하도록하겠다. 3 adstar 의 Boot Mode 중하나로 Serial Flash 를사용하여 booting 하는 mode 이다. 자세한사항은 datasheet 를참고하기 바란다. 26 Advanced Digital Chips Inc.
27 adstar SDK Reference Manual Ver Bootloader 사용하기 Bootloader 는 SDK example 안에들어있다. 다른 application 과마찬가지로 project 를열어서 build 후에 adstar 에 download 하면동작을확인할수있다. Bootloader project 를열었으면 build Build Project 를실행하여프로그램을 build 한다. Build 가완료되면, E-Con 을 board 와연결한후전원을켜고, build Download to Target 을실행하면 download 가진행된다. (build 및 download 의좀더자세한설명은본매뉴얼의 장을참고한다.) Bootloader 에몇가지의모드가있는데, 코드상에서다음부분이모드를설정하는부분이다. < bootloader project 의 main.c > 코드를보면 P0.2 와 P0.3 PIO 를입력으로받아 mode 를선택하게되어있는데, STK 보드상에서는 SW4 번과 SW5 번에연결되어있다. ( STK board 와다른 PIO 를사용하고싶다면, 위코드를수정하여사용자가원하는 PIO 를사용하면된다.) <SW4, SW5 과 SW setting 방법 > 위의사진에서보듯이 booting mode 별 SW 설정은다음과같다. MODE SW4 SW5 Execute Mode down down USB Communication Mode down up Mass Storage Mode up down User Define Mode up up Advanced Digital Chips Inc. 27
28 Ver 1.30 adstar SDK Reference Manual Bootloader Mode 가. Remote Communication Mode Remote Communication Mode 는 RemoteManCLI 프로그램을사용하여 adstar 와 Communication 할수있는 mode 로, 주로 USB 를사용하여 application 프로그램을 DRAM 으로 download 한후바로실행하여, 동작을빠르게확인해볼때사용한다. Remote Communication Mode 로부팅을하면다음과같은 debug message 가출력된다. [ Remote Communication Mode ] Remote Communication Mode 는 adstar USB device 를사용하기때문에 adstar USB Driver 를설치해주어야된다. USB Driver 는 pc-util/usb_driver 폴더에들어있는데, 설치하는방법에는두가지가있다. 하나는 usb_driver 폴더에있는 DPInstx86.exe(DPInstx64.exe) 4 파일을이용하는방법이고, 다른하나는 windows 의장치관리자에서직접 usb_driver 폴더의 driver 파일을직접찾아설치해주는방법이다. 이문서에서는 DPInstx86.exe(DPInstx64.exe) 파일을사용하기를권장한다. DPInstx86.exe(DPInstx64.exe) 파일을사용하여 usb driver 를설치하는방법은다음과같다. 1. Usb_driver 폴더의 DPInstx86.exe(DPInstx64.exe) 파일을실행하여설치를진행한다. 2. 설치가정상적으로완료되면, usb 를연결하고, bootloader 의 Remote Communication Mode 로부팅을한다. 3. 새로운장치를찾았다고화면의우측하단에표시되면서, driver 설치를시작하게된다. Windows7 을사용하는사용자라면 dpinst.exe 에의해서 driver 가복사되었기때문에자동으로설치가이루어진다. Windows xp 를사용하는사용자라면 새하드웨어검색마법사 창이나타나는데, 소프트웨어자동으로설치 ( 권장 ) 을선택한후다음을누르면역시 driver 파일을찾아자동으로설치가이루어진다. 4. 만약자동으로설치가이루어지지않는다면, 목록또는특정위치에서설치 ( 고급 ) 을선택해서 usb_driver 폴더를선택해주거나, 장치관리자에서 driver update 를해서 usb_driver 폴더를선택해주어야한다. 5. USB driver 설치가완료되면, 장치관리자에서 adstar USB driver 가설치된것을확인할수있다 bit OS 사용시 DPInstx86.exe 를사용하고, 64 bit OS 사용시 DPInstx64.exe 를사용한다. 28 Advanced Digital Chips Inc.
29 adstar SDK Reference Manual Ver 1.30 [ 장치관리자 ] USB Driver 설치를완료했으면 Remote Communication Mode 에서 example 폴더에있는 application 프로그램을 Dram 에 download 하여바로확인을해볼수있는데, Dram 에서 application 을동작시키기전에 application project 를열어 link script 파일을확인하도록한다. [ Linker Script ] Demo Project 는기본적으로 Linker Script 에../../startup/adstar_ram.ld 파일로되어있는데, 확인하였을때 adstar_ram.ld 로되어있으면프로그램이 Dram 에서동작하도록되어있는것이기때문에그대로 build 하면된다. 만약 adstar.ld 파일로되어있다면, 이는 Dram 이아닌 flash 에서동작하도록되어있는것으로 startup 폴더의 adstar_ram.ld 파일로변경해야한다. 정리하면 Flash 에서동작하는프로그램은 link script 에 adstar.ld 파일을 load 하면되고, Dram 에서동작하는프로그램의경우에는 link script 에 adstar_ram.ld 파일을 load 하면된다. 같은프로그램에서 link script 파일만변경하여 Flash 또는 Dram 에서동작하는 binary 를생성할수있다. (bootloader 를사용할경우 Dram 에서 application 을동작시키므로 Bootloader 를사용할경우특별한경우가아니라면 application 의 link script 는 adstar_ram.ld 파일을사용하면된다.) Advanced Digital Chips Inc. 29
30 Ver 1.30 adstar SDK Reference Manual Link script 를확인하였으면다음으로 Dram 에 download 하여실행하는방법에대해 알아보겠다. build 한후에 adstar 를 Remote Communication Mode 로부팅한다. 그런후에 ECon 으로 download 할때와마찬가지로 build download option 을실행한다. [ build -> download option ] Dram 에 download 하기위해서는 EConMan 프로그램이아닌 RemoteMenCLI 라는프로그램을사용해야하는데, pc_util 폴더에있으므로찾아서선택하면된다. Argument 는 EConMan 과비슷한데, 설명하면다음과같다. -target adstar EConMan 과동일하게 target 명을명시하는부분으로 adstar 로지정한다. -frun 0x $(TargetPath).bin binary file 을 downlaod 하고실행하는명령어로, Dram 영역인 0x 에현재 project 에서생성된 binary 파일을 download 한후실행한다. -exit 모든동작이정상적으로이루어졌으면프로그램을종료한다. 위처럼 download option 을설정한후에, Remote Communication Mode 상태에서 build download to target 을실행하면현재열려져있는 project 의 binary 파일 download 가 진행되고, 진행이완료되면바로실행한다. 처음에설명했듯이, Remote Communication Mode 상태에서 application 을빨리확인을해볼수있지만, Dram 에 download 하여실행하는것으로, reset 시다시 download 해야한다는점을알고있어야한다. reset 시에도항상같은동작을하도록하고싶은경우에는 Flash 에서 application 을동작하도록하거나, 뒤에설명할 Execute Mode 를사용하면된다. 나. Mass Storage Mode Mass Storage Mode 는 example 의 usb_mass_storage 와같은동작을수행하는 Mode 로 adstar board 의 Nand Flash 를 usb memory 와같이컴퓨터에서저장장치로인식되도록해준다. 따라서 Mass Storage Mode 를이용하여 usb_mass_storage 프로그램을새로 download 할필요없이 Nand Flash 를저장장치로사용할수있다. Mass Storage Mode 로부팅을하면다음과같이 30 Advanced Digital Chips Inc.
31 adstar SDK Reference Manual Ver 1.30 debug message 를출력하고, usb_mass_storage 와같이이동식디스크장치라는저장장치가 생성된다. [ Mass Storage Mode ] [ 이동식디스크저장장치 ] usb_mass_storage 와마찬가지로이저장장치에이미지및사운드파일을복사할수있다. 다. Execute Mode Excute Mode 는 booting 과동시에 application 이동작하는모드로, 주로 application 개발이 완료되었을때사용하는모드이다. Excute Mode 로 booting 을하면다음과같이터미널창에 출력되는것을확인할수있다. [ Execute Mode ] Advanced Digital Chips Inc. 31
32 Ver 1.30 adstar SDK Reference Manual Execute Mode 는내부 Flash 의 data 를 Dram 으로복사하여실행하는형태는 build 하여생성된 project_name.elf.bin 파일을지정된내부 Flash 영역에 download 한후에 Execute mode 로부팅을하면 application 이동작을한다. Dram 으로복사되어실행될프로그램이기에 link script 는 adstar_dram.ld 파일을사용한다. 지정된내부 Flash 영역은 20 번째섹터로 address 로하면 0x14000 번지이다. bootloader 에서 0x14000 번지에서부터 data 를 dram 에복사하여실행하게된다 [ bootloader main.c ] Main.c 의 46 번재줄을보면 Flash 영역의시작주소가정의되어있는데, bootloader 의 size 가커져서영역이겹치게되면정의값을수정해주어야한다. 내부 Flash 의 0x14000 번지에 download 하는방법은다음의두가지방법중하나를사용하면된다. 1) EConMan 을사용 [ download option ] 기존에 EConMan 프로그램을사용하여 download 하는방법에서 address 를 0x14000 으로만해주면된다. 이런식으로원하는 address 에 binary 파일을 download 할 수있다. 2) RemoteManager 사용 Bootloader 의 Remote Communication Mode 로 booting 하여 RemoteManCLI 를사용하여 0x14000 에 download 할수있다. 방법은 Download Option 을실행하여다음과같이적어주면된다. 32 Advanced Digital Chips Inc.
33 adstar SDK Reference Manual Ver flash_filewrite 라는 command 를사용하여 Flash 의지정한 0x14000 번지에 application 을 download 한다. EConMan 또는 RemoteManCLI 를사용하여 download 를완료한후에 Excute mode 로 booting 하면 application 이동작하는것을확인할수있다. 라. User Define Mode (execute_fat) User Define Mode 는사용자가원하는동작을코딩하여사용할수있도록만들어놓은 Mode 이지만, bootloader 에서기본적으로 Execute Mode 와비슷한동작을하도록프로그램되어있다. Booting 을하면 Execute Mode 와같이바로 application 이동작을한다. 다만 Execute Mode 가내부 Flash 에저장되어있는프로그램을 Dram 에복사하여실행하는것이었다면, User Define Mode(execute_fat) 에서는 Nand Flash(SD Card) 의 boot.bin 파일을 Dram 으로복사한후에실행한다는점이다르다. Nand Flash(SD Card) 의 boot.bin 파일을 Dram 으로복사하여실행하는형태에대해설명하면, build 하여생성된 project_name.elf.bin 파일을 boot.bin 파일로이름을변경하여 Mass Storage 모드로부팅, 저장장치 root 에복사를한후, User Define Mode 로부팅을하면저장한 application 이동작을한다. 여기서주의할점은 application 을 Dram 에서동작시키기때문에 link script 를 Dram 에서동작하도록설정된 adstar_dram.ld 파일을사용하여야한다. [ Nand Flash 의 boot.bin 파일 ] Advanced Digital Chips Inc. 33
34 Ver 1.30 adstar SDK Reference Manual SD Card 에서 boot.bin 파일을 Dram 으로복사하여실행할수도있는데, main.c 의 4 번째줄의 #define FAT_APP_TYPE DRIVE_NAND 대신 #define FAT_APP_TYPE DRIVE _SDCARD 를사용하면, SD Card 의 boot.bin 파일을 Dram 에복사하여실행한다. 3.2 Nand Boot Code Nand Boot Code 는내부 Flash 가없는 adstar 를사용할경우사용하는 Nand Booting 용 bootloader 로 Nand Flash Auto Boot Mode 5 로설정이되어있어야한다. Nand Flash Auto Boot Mode 는 Nand Flash 0 번블록의 2Kbyte data 를내부 sram 에복사하여 booting 하는 mode 이기때문에, Nand Boot Code 의크기는 2Kbyte 로제한된다. 따라서 Nand Boot Code 는수정없이제공되는것을그대로사용하기를권장한다. Nand Boot Code 가하는역할은 Nand Flash 1 번블록부터 7 개블록의 data(application program) 를 Dram 으로복사하여실행하는역할을수행한다. [ nand_boot_code 의 main.c ] Nand Boot Code 사용하기 Nand Boot Code 는 SDK example 안에들어있다. 다른 application 과마찬가지로 project 를열어서 build 후에 Nand Flash 의 0 번블록에 download 하면된다. Build 는이전에설명한방법대로진행을하면되는데, download 는기존내부 Flash 에 download 하는것과는 command 가다르다. 다음은 Nand Flash 에 download 시 download option 이다. 참고하기바란다. 5 adstar 의 Boot Mode 중하나로 Nand Flash 를사용하여 booting 하는 mode 이다. 자세한사항은 datasheet 를참고하기 바란다. 34 Advanced Digital Chips Inc.
35 adstar SDK Reference Manual Ver 1.30 [ Download Option ] -nand writefile command 를사용하여 Nand Flash 에 download 한다. 다음으로 Nand Boot Code 에서 Dram 에복사하여실행할코드를 download 하는방법에대해알아보겠다. 먼저 Nand Boot Code 에의해 Dram 에복사될코드는 Dram 에서수행되기때문에 link script 가 adstar_ram.ld 인지확인을한다. [ Linker Script ] 확인을한후 build 과정을거쳐 download 를진행하면된다. 이역시 Nand Flash 에 download 하므로 Nand Boot Code 를 download 할때와같은 command 를사용한다. 다른점은 download 하는위치가달라진다. Nand Boot Code 에의해 Dram 에복사되어실행할코드는 Nand Flash 의 1 번블록에 download 한다. Nand Flash 1 번블록의 address 는 Nand Flash 마다다르므로주의하기바란다. ( 기본적으로 small page Flash 의경우 1 번블록은 0x4000 이고, large page Flash 의경우 1 번블록은 0x20000 이다.) Advanced Digital Chips Inc. 35
36 Ver 1.30 adstar SDK Reference Manual [ Download Option ] Download 완료후실행하면다음과같이 Nand Booting 라고출력되고, 1 번블록에 download 한 application 이실행되는것을확인할수있다. 3.3 BootLoader 없이사용하기 지금까지 Bootloader 와 Nand Boot Code 에대해서알아보았는데, 이번에는 Bootloader 를사용하지않고프로그램을실행하는방법에대해설명하도록하겠다. Bootloader 를사용하지않으면 Linker Script 파일과, 프로그램을 download 하는위치가달라지게된다. Linker Script 는 adstar_ram.ld 파일대신 adstar.ld 파일을사용한다. 앞에서몇차례설명하였지만, adstar_ram.ld 파일은 Dram 에서프로그램이동작하도록설정되어있는파일이고, adstar.ld 파일은 flash 에서프로그램이동작하도록설정되어있는파일이다. Bootloader 를사용하지않으면실행프로그램을 flash 에서동작시켜야하므로 adstar.ld 파일을사용해야한다. adstar.ld 파일은 startup 폴더에있으므로변경해주면된다. 36 Advanced Digital Chips Inc.
37 adstar SDK Reference Manual Ver 1.30 [ Linker Script ] Linker Script 를변경하였으면, build 후에 download 해주어야하는데, bootloader 를사용하지않기때문에, RemoteCLI 프로그램을사용할수없고, EConMan 프로그램을사용해서 download 해야한다. Build Download Option 에다음과같이적고, Download to Target 을실행하면된다. [ Download Option ] Bootloader 를사용하지않기때문에 0 번지에바로 download 하면된다. Download 가완료된후 reset 을하면동작을확인할수있다. 정상적으로 download 하였는데도아무런동작을하지 않는다면, Linker Script 가 adstar.ld 로되어있는지확인하기바란다. Advanced Digital Chips Inc. 37
38 Ver 1.30 adstar SDK Reference Manual 4. lib_config.h adstar SDK 의 lib_src 를보면 Header Files 에 lib_config.h 파일이있는데, 파일명에서도알수있듯이 lib_config.h 파일은 adstar SDK library 의설정파일이라고보면된다. 이장에서는 lib_config.h 파일에대해설명하도록하겠다. [ lib_config.h 요약 ] lib_config.h 는 Nested Interrupt 설정에대한내용으로시작한다. 38 Advanced Digital Chips Inc.
39 adstar SDK Reference Manual Ver 1.30 Nested Interrupt 사용을설정하는부분으로 1 로설정하면해당 Interrupt routine 에서 Nested Interrupt 를허용한다는의미이다. Nested Interrupt 설명에적혀있듯이, MP3 decoding 이 DMA Interrupt 내에서 frame 단위로이루어지는데, 그사이에다른 Interrupt 를받아들여야하므로 DMA 쪽 Interrupt 는 default 로 Nested Interrupt 를허용해놓는다. 이외에도 Nested Interrupt 를허용하고싶은경우에는 1 로설정하면된다. 중첩허용은최대 14 개까지가능하므로, 꼭필요한경우만사용하기바란다. 다음은 TWI Timeout count 값을설정하는부분이있고, 사용할저장장치를설정하는부분이 있다. 이곳에서사용할저장장치를설정하여사용하지않는저장장치에관련된부분의 size 를줄일 Advanced Digital Chips Inc. 39
40 Ver 1.30 adstar SDK Reference Manual 수있다. default 로모두 1 로되어있다. 그리고 SD Card 의경우에는 adstar chip 에서사용할수 있는 Pin 이두곳이존재하는데, 어디를사용할지에따라설정을해주면된다. default 값은 STK board 와같이 Nand Flash 와같은 port 를사용하도록되어있다. 다음은 library 에서지원할이미지포맷을결정하는부분으로 default 로모두사용하도록되어 있다. 하지만굳이사용하지않을이미지포맷은 0 으로설정하여코드의사이즈를줄이는것이좋다. 사용하는저장장치의 driver number 를설정하는부분과 driver 의개수를설정하는부분이다. 그리고 filesystem 에서영문만을사용할지한글도사용할지에따라설정을해줄수있는데, 적힌 내용처럼영문만사용할경우변경을해주면 filesystem 관련코드사이즈가줄어든다. Uart Config 에서는 Uart library 에서기본적으로 RX interrupt 를사용하고, Ring buf 를사용하여 uart 로전송되는 data 를저장을하는데, data 를저장하는 Ring buf 의사이즈를결정하고, 사용할 Interrupt 를설정한다. 기본적으로 library 에서 RX interrupt 사용하도록설정되어있고, Uart Interrupt Routine 도작성되어있다. 40 Advanced Digital Chips Inc.
41 adstar SDK Reference Manual Ver 1.30 lib_config.h 의마지막으로 System clock 설정과 Sound mixer 에대한설정이있다. Sound mixer 와관련하여 buffer size, volume, output channel, sample rate 를설정할수있다. 그리고 System clock 에서는입력 clock 을설정하는부분이있는데, 입력 clock 으로 10Mhz 가아닌다른 Clock 를사용할경우이부분을수정해주면된다. 그리고 PMUInit() 함수에서입력 Clock 에대한 PLL setting 을해주어야원하는 System clock 으로 adstar 를동작시킬수있다. lib_config.h 파일의모든설정이완료되었으면 library 를다시 build 하여 libadstar.a 파일을새로 생성하여사용하여야한다. Advanced Digital Chips Inc. 41
42 Ver 1.30 adstar SDK Reference Manual 5. UART 5.1 uart_config BOOL uart_config(int ch, int baud, UART_DATABITS databits, UART_STOPBITS stopbit, UART_PARITY parity ) UART 사용을위한초기설정을하는함수이다. lib_config.h 파일에 #define CONFIG_UART_RX_INTERRUPT 가정의되어있으면, Uart Rx Interrupt 설정도같이한다. ( 기본적으로 CONFIG_UART_RX_INTERRUPT 가정의되어있다.) ch UART channel 값. 초기설정할 channel 을입력한다. baud UART baud rate 값. Baud rate 값을설정한다. SDK 는기본적으로 을사용한다. databits UART 전송 data bit 을설정한다. SDK 에서는 data bit 를다음과같이정의하고있다. typedefenum{ DATABITS_5 = 5, DATABITS_6 = 6, DATABITS_7 = 7, DATABITS_8 = 8 }UART_DATABITS; stopbit UART 의 stop bit 를설정한다. SDK 에서는 stop bit 를다음과같이정의하고있다. Typedefenum{ STOPBITS_1 = 1, STOPBITS_2 = 2 }UART_STOPBITS; parity UART 의 parity bit 를설정한다. SDK 에서는 parity bit 를다음과같이정의하고있다. Typedefenum{ UART_PARNONE = 0, UART_PARODD, UART_PAREVEN }UART_PARITY; Return Value TRUE( 1 ) or FALSE( 0 ) 42 Advanced Digital Chips Inc.
43 adstar SDK Reference Manual Ver uart_putch BOOL uart_putch(int n, char ch ) UART n 채널을통해 ch 값 ( 한문자 ) 을출력한다. n 값을출력할 UART channel 값. adstar 는 UART 5 개 channel 을가지고있다. Ch UART 를통해출력할값. Return Value TRUE( 1 ) or FALSE( 0 ) 5.3 uart_putdata BOOL uart_putdata(int n, U8* buf, int len ) UART n 채널을통해 buf 에저장되어있는문자를 len 만큼출력한다.. n 값을출력할 UART channel 값. adstar 는 UART 5 개 channel 을가지고있다. buf 출력할문자열이저장되어있는 buffer. len 출력할문자열의개수. Return Value TRUE( 1 ) or FALSE( 0 ) 5.4 uart_putstring BOOL uart_putstring(int n, U8* buf) UART n 채널을통해 buf 에저장되어있는문자열을출력한다. n 값을출력할 UART channel 값. adstar 는 UART 5 개 channel 을가지고있다. buf 출력할문자열이저장되어있는 buffer. Return Value TRUE( 1 ) or FALSE( 0 ) Advanced Digital Chips Inc. 43
44 Ver 1.30 adstar SDK Reference Manual 5.5 uart_getch BOOL uart_getch(int n, char* ch ) UART n 채널을통해 1Byte 값 ( 한문자 ) 을받아 ch 에저장한다. n 값을입력받을 UART channel 값. adstar 는 UART 5 개 channel 을가지고있다. ch UART 를통해값을입력받을변수. Return Value TRUE( 1 ) or FALSE( 0 ) 5.6 uart_getdata int uart_getdata( int n, U8* buf, int bufmax ) UART n 채널을통해 bufmax 만큼값 ( 문자 ) 을읽어서 buf 에저장한다. n 값을입력받을 UART channel 값. Buf UART 를통해값을입력받을 buffer. Bufmax 값 ( 문자 ) 을읽을개수. (Byte 단위 ) Return Value 읽은 data byte 수. Bufmax 값과비교하여같으면함수가정상적으로처리한것이고, 그렇지않을 경우에는정상처리하지못한것이다. 5.7 uart_rx_flush void uart_rx_flush( int ch ) UART n 채널의 rxfifo 를초기화시킨다. ch 초기화시킬 UART channel 값. 없음. 44 Advanced Digital Chips Inc.
45 adstar SDK Reference Manual Ver uart_tx_flush void uart_tx_flush(int ch ) UART n 채널의 txfifo 를초기화시킨다. ch 초기화시킬 Uart channel 값. 없음. 5.9 set_debug_channel Void set_debug_channel(int ch ) 디버깅용으로사용하는 debugprintf, debugstring, PRINTVAR, PRINTLINE 함수에의해디버깅 메시지가출력될 UART 채널을결정한다. ch 디버깅용으로사용할 UART 채널. 없음 get_debug_channel int get_debug_channel( ) 디버깅용으로사용하는 UART 채널값을 return 한다. 없음 Return Value 현재설정된디버깅용 UART 채널값. Advanced Digital Chips Inc. 45
46 Ver 1.30 adstar SDK Reference Manual 5.11 debugprintf void debugprintf(const char*const format,... ) c 언어의 printf 와같은역할을하는함수로, UART 를통해, 숫자, 문자, 변수의내용을출력할때 사용한다. 출력되는 UART 채널은 set_debug_channel 함수를통해설정해놓은디버깅채널을 사용한다. 기본으로 0 번채널이설정되어있다. Usage debugprintf( result number : %d\r\n,result); UART 를통해 result number : 라는문자열과 result 변수값을 10 진수로출력한다. 그리고줄바꿈을한다. printf 함수와사용법이같다. 단줄바꿈시 \r\n 을모두써주어야한다 debugstring void debugstring(const char* str) 문자열을출력하는함수로, 문자열만출력하기를원할때사용하는함수이다. 출력되는 UART 채널은 set_debug_channel 함수를통해설정해놓은디버깅채널을사용한다. 기본으로 0 번채널이설정되어있다. 참고로 debugprintf 함수를사용하여도문자열만출력가능하다. Usage debugstring( === adstar Start ===\r\n ); 안의문자열을 UART 를통해출력한다 PRINTLINE 매크로함수로 PRINTLINE 을호출한곳의줄 (line) 값을 UART 통해출력한다. 채널은설정해놓은 디버깅채널을사용한다. 출력되는 UART 채널은 set_debug_channel 함수를통해설정해놓은 디버깅채널을사용한다. 기본으로 0 번채널이설정되어있다. Usage PRINTLINE; 함수를호출한곳의 line 값을출력한다.. 46 Advanced Digital Chips Inc.
47 adstar SDK Reference Manual Ver PRINTVAR( A ) 매크로함수로 PRINTVAR 를호출한곳의줄 (line) 값과 A 값을 UART 를통해출력한다. 출력되는 UART 채널은 set_debug_channel 함수를통해설정해놓은디버깅채널을사용한다. 기본으로 0 번채널이설정되어있다. Usage int a = 10; PRINTVAR(a);; 변수 a 의값을출력한다. 레지스터값을출력할수도있다 UART Example #include adstar.h Int main() { boardinit(); uart_config(0, , DATABITS_8, STOPBITS_1, UART_PARNONE ); // UART 0 번채널을다음과같이설정한다. // Baud rate = // Data bit = 8bit // Stop bit = 1 // Parity = none debugstring( ============================================\r\n ); debugprintf( ADSTAR UART Example. System clock(%dmhz)\r\n,get_ahb_clock()/ ); debugstring( ============================================\r\n ); } U8 ch; While(1) { if(uart_getch(0, &ch)) // UART 0 번에서 1Byte 데이터를읽어 ch 에저장한다. { uart_putch(0, ch);// UART 0 번에서입력받은데이터를 UART 0 번으로출력한다. } } Advanced Digital Chips Inc. 47
48 Ver 1.30 adstar SDK Reference Manual < UART Interrupt > adstar SDK library 는 lib_config.h 파일의정의에따라 UART Interrupt 를사용하도록설정되어있다. Default 값은 UART Rx Interrupt 를설정하도록되어있다. < lib_config.h > 기본적으로 UART Rx Interrupt 를사용하도록설정되어있기때문에, uart_config( ) 함수를호출하면 UART 초기화를진행하고, Interrupt 를설정한다. Interrupt 가설정된상태에서 UART Interrupt 가발생하면 uart.c 의 UARTxISR() 가호출되어 Interrupt Routine 을수행한다. (uart.c, uart.h 참조 ) 48 Advanced Digital Chips Inc.
49 adstar SDK Reference Manual Ver Interrupt 6.1 init_interrupt void init_interrupt(void); interrupt 를초기화하는함수이다. 인터럽트관련함수를사용하기위해서반드시 호출해주어야하는함수로 adstar SDK 의 startup_adstart.s 에서호출하여인터럽트를 초기화한다. 6.2 set_interrupt BOOL set_interrupt(interrupt_type intnum, void (*fp)()); 해당 interrupt 가발생하였을때호출할함수를등록하는함수이다. Uart, Sound mixer 등의 Interrupt 함수는 SDK 에서생성및설정되어있으므로중복 등록하지않도록주의하기바란다. intnum interrupt type (interrupt type 에대한정보는다음장참고 ) (*fp)() interrupt 가발생했을때호출할함수 TRUE or FALSE 6.3 enable_interrupt void enable_interrupt(interrupt_type intnum, BOOL b); 해당 interrupt 를 enable 하는함수이다.set_interrupt 함수로 interrupt 함수를등록하고, enable_interrupt 함수로활성화시킨다. intnum interrupt type (interrupt type 에대한정보는다음장참고 ) b 1 or TRUE => interrupt enable 0 or FALSE => interrupt disable TRUE or FALSE Advanced Digital Chips Inc. 49
50 Ver 1.30 adstar SDK Reference Manual INTERRUPT_TYPE INTERRUPT_TYPE INTERRUPT_TYPE INTNUM_EIRQ0 External interrupt 0 INTNUM_UART0 UART 0 interrupt INTNUM_EIRQ1 External interrupt 1 INTNUM_UART1 UART 1 interrupt INTNUM_TIMER0 Timer interrupt 0 INTNUM_UART2 UART 2 interrupt INTNUM_TIMER1 Timer interrupt 1 INTNUM_UART3 UART 3 interrupt INTNUM_TIMER2 Timer interrupt 2 INTNUM_UART4 UART 4 interrupt INTNUM_TIMER3 Timer interrupt 3 INTNUM_PMU PMU interrupt INTNUM_SOUNDMIXER Sound mixer interrupt INTNUM_SPIO SPI 0 interrupt INTNUM_DMA0 DMA interrupt 0 INTNUM_SPI1 SPI 1 interrupt INTNUM_DMA1 DMA interrupt 1 INTNUM_USB USB device interrupt INTNUM_DMA2 DMA interrupt 2 INTNUM_USBHOST USB host interrupt INTNUM_DMA3 DMA interrupt 3 INTNUM_NAND NAND Flash interrupt INTNUM_DMA4 DMA interrupt 4 INTNUM_SDHC SDHC interrupt INTNUM_DMA5 DMA interrupt 5 INTNUM_ADC ADC interrupt INTNUM_DMA6 DMA interrupt 6 INTNUM_WATCHDOG Watch dog interrupt INTNUM_DMA7 DMA interrupt 7 INTNUM_TWI TWI interrupt INTNUM_FRAMESYNC Frame sync interrupt INTNUM_CAPOVERFLOW Capture INTNUM_GPIOA GPIO A interrupt overflow interrupt INTNUM_GPIOB GPIO B interrupt INTNUM_MOTORFAULTA Motor INTNUM_GPIOC GPIO C interrupt Fault A interrupt INTNUM_GPIOD GPIO D interrupt INTNUM_MOTORFAULTB Motor INTNUM_GPIOE GPIO E interrupt Fault B Interrupt INTNUM_GPIOF GPIO F interrupt INTNUM_MOTORQEI Motor QEI interrupt INTNUM_GPIOG GPIO G interrupt INTNUM_MOTORPWM Motor PWM interrupt INTNUM_GPIOH GPIO H interrupt INTNUM_GPIOI GPIO I interrupt INTNUM_GPIOJ GPIO J interrupt 50 Advanced Digital Chips Inc.
51 adstar SDK Reference Manual Ver Interrupt Example #include adstar.h void EIRQ0ISR( ) { debugprintf( EIRQ0 Interrupt\r\n ); } int main() { boardinit(); uart_config(0, , DATABITS_8, STOPBITS_1, UART_PARNONE ); set_interrupt( INTNUM_EIRQ0, EIRQ0ISR ); //External Interrupt 0 번이발생하였을때호출될 interrupt 함수를등록한다. enable_interrupt( INTNUM_EIRQ0, TRUE ); // External Interrupt 0 번을 enable 시킨다. } while(1) return 0; Advanced Digital Chips Inc. 51
52 Ver 1.30 adstar SDK Reference Manual 7. TIMER 7.1 set_timer BOOL set_timer(int nch, U32 ms) nch 채널 timer 를설정및동작시키는함수이다. 사용할 timer 채널과주기를결정하고 timer control register 에서 timer 동작을 enable 한다. 그리고마지막으로 timer interrupt 를 enable 한다. set_interrupt 함수로 timer interrupt 등록한후이함수를호출하면설정한주기만큼 timer interrupt 가발생한다. nch 설정할 timer 채널값. ms timer interrupt 주기. (ms 단위 ) Return Value TRUE( 1 ) or FALSE ( 0 ) 7.2 stop_timer BOOL stop_timer(int nch) nch 채널 timer 를정지시키는함수이다. nch 채널의 timer 동작을 disable 시킨다. nch 정지시킬 timer 채널값. Return Value TRUE( 1 ) or FALSE ( 0 ) 7.3 delayms BOOL delayms(u32 ms) ms 만큼 delay 가걸린다. ( 단위는 ms 이다 ) ms delay 걸리는시간단위는 ms. 52 Advanced Digital Chips Inc.
53 adstar SDK Reference Manual Ver 1.30 Return Value TRUE( 1 ) or FALSE ( 0 ) 7.4 TIMER Example #include adstar.h void TIMER0ISR( ) { debugprintf( ==TIMER0ISR==\r\n ); } int main() { boardinit(); uart_config(0, , DATABITS_8, STOPBITS_1, UART_PARNONE ); set_interrupt( INTNUM_TIMER0, TIMER0ISR ); //Timer 0 번 Interrupt 가발생하였을때호출될 interrupt 함수를등록한다. set_timer( 0, 1000); // 1 초마다 Timer0 Interrupt 가발생한다. delayms(5000); // 5 초간 delay 가발생. stop_timer( 0 ); // Timer 0 번 Interrupt 를 disable 시킨다. 더이상 Timer 가발생하지않음. while(1) return 0; } Advanced Digital Chips Inc. 53
54 Ver 1.30 adstar SDK Reference Manual 8. Graphic 8.1 setscreen void setscreen(screenres size, U32 screenmode) LCD 해상도와 RGB 모드를설정하는함수. LCD 출력을위해처음으로설정해주어야한다. 설정한해상도에맞게 CRT Controller 를설정한다. size LCD 의해상도값으로, 사용하려는 LCD 의해상도로설정을해주면해상도에맞게 CRT Controller 를설정한다. SCREENRES 는다음과같이정의되어있다. (LCD 마다특성이다르기때문에해상도와맞게설정하였는데도 LCD 가정상적으로나오지않을경우에는 crt.c 의 setscreen( ) 함수에서 LCD 특성에맞게값을수정해주어야한다.) Typedefenum { SCREEN_480x272 = 0, SCREEN_640x480, SCREEN_800x480, } SCREENRES; Screenmode RGB 모드를설정하는값으로, 다음과같이정의되어있다. SCREENMODE_RGB888 SCREENMODE_RGB565 없음 8.2 createframe SURFACE* createframe(u32 w, U32 h, U32 bpp) 화면에출력될 frame( 메모리영역 ) 을생성하는함수. 가로크기가 w 이고, 세로크기가 h 인이미지 또는도형을그릴수있는영역을생성한다. 화면출력을위해서한개이상의 frame 이필요하다. w 생성될 frame 의가로크기를설정한다. 54 Advanced Digital Chips Inc.
55 adstar SDK Reference Manual Ver 1.30 h 생성될 frame 의세로크기를설정한다. bpp 생성될 frame 의 bit per pixel 값을설정한다. frame 의정보를가지고있는 SURFACE 구조체를 return 한다. SURFACE 는다음과같이정의되어있다. typedefstruct { U32 w; U32 h; U32 bpp; void* pixels; U32 pixtype; PALETTE* pal; U8 ashiftbit; U8 rshiftbit; U8 gshiftbit; U8 bshiftbit; void* reserve; } SURFACE; 8.3 setframebuffer void setframebuffer(surface* surf) 화면에보여지는 frame 을선택하는함수. createframe() 으로생성한 frame 을선택하면그 frame 이화면에보이게된다. ( single frame ) 화면출력을위해서반드시 setframebuffer(), setdoubleframebuffer() 중한가지를호출하여 frame 을선택해야한다. surf createframe() 에의해생성된 SURFACE 구조체. 없음. Advanced Digital Chips Inc. 55
56 Ver 1.30 adstar SDK Reference Manual 8.4 setdoubleframebuffer void setdoubleframebuffer(surface* surf, SURFACE* surf2) 화면에보여지는 frame 을두개설정하는함수. frame 을두개설정한후, getbackframe() 함수와, flip() 함수를사용하여두개의 frame 을번갈아가며화면에보여지게할수있다. ( double frame ) 두개의 frame 은편의상현재보이는 frame 을 front frame, 현재보여지지않고있는 frame 을 back frame 이라고한다. (setdoubleframebuffer() 함수를사용하기위해서는 frame 을두개생성해야한다.) 화면출력을위해서반드시 setframebuffer(), setdoubleframebuffer() 중한가지를호출하여 frame 을선택해야한다. surf surf2 createframe() 에의해생성된 SURFACE 구조체화면출력에사용될첫번째 frame 포인터이다. createframe() 에의해생성된 SURFACE 구조체화면출력에사용될두번째 frame 포인터. 없음. 8.5 setframebufferxy void setframebufferxy(surface* surf, U32 x, U32 y); 화면에보여지는 frame 의시작위치를조정하여, frame 의특정지점부터화면에보여지도록하는함수이다. frame 크기가화면보다클경우에적용할수있으며, x 와 y 값은 frame 의크기에서화면해상도의차이값을 Max 로가질수있다. ( 예 : 800*480 해상도, frame size : 1024*512 면, Max x = 224, Max y = 32 ) setframebufferxy() 함수를사용하기전에 setframebuffer() 또는 setdoublebuffer() 함수로화면에출력할 frame 선택을반드시해주어야한다. surf createframe() 에의해생성된 SURFACE 구조체. x 전체 frame 중출력할부분의시작 x 좌표. y 전체 frame 중출력할부분의시작 y 좌표. 없음. 56 Advanced Digital Chips Inc.
57 adstar SDK Reference Manual Ver setdrawtarget Void setdrawtarget(surface* surf) 이미지를출력하거나, 도형을그릴 frame 을선택하는함수. createframe() 으로생성된 frame 을 인자로적어주면, draw 관련함수를호출했을때해당 frame 에 draw 하게된다. surf frame 포인터. createframe() 로생성된 SURFACE 구조체 없음. 8.7 getdrawtarget SURFACE* getdrawtarget( ); 현재 drawtarget 으로지정된 frame 의포인터를불러온다. 없음. frame 포인터. createframe() 로생성된 SURFACE 구조체 8.8 getbackframe SURFACE*getbackframe() setdoubleframebuffer() 함수를사용하여 frame 두개를사용할경우, 현재화면에보여지지않고 있는 frame 의포인터를반환하는함수이다. 주로 setdrawtarget() 함수와함께사용하여현재 보여지지않고있는 frame 에 draw 하는경우에사용한다. 없음. createframe() 에의해생성된 SURFACE 구조체를 return 한다. frame 의정보를가지고있다. Advanced Digital Chips Inc. 57
58 Ver 1.30 adstar SDK Reference Manual 8.9 getfrontframe SURFACE*getfrontframe() setdoubleframebuffer() 함수를사용하여 frame 두개를사용할경우, 현재화면에보여지고있는 frame 의포인터를반환하는함수이다. 없음. createframe() 에의해생성된 SURFACE 구조체를 return 한다. frame 의정보를가지고있다 flip void flip() setdoubleframebuffer() 함수를사용하여 frame 두개를사용할경우, frame 간에전환을할때 사용하는함수이다. 없음. 없음 getscreenwidth U32 getscreenwidth( ) 현재화면의가로크기값을반환하는함수. setscreen() 함수를통해설정된 width 값이반환된다. 없음. 화면의가로크기값을반환한다. 58 Advanced Digital Chips Inc.
59 adstar SDK Reference Manual Ver getscreenheight U32 getscreenheight( ) 현재화면의세로크기값을반환하는함수. setscreen() 함수를통해설정된 height 값이반환된다. 없음. 화면의세로크기값을반환한다 getscreenpitch U32 getscreenpitch() 화면의 pitch 값을반환하는함수. Setscreen() 함수를통해서설정된 pitch 값이반환된다. pitch 값은 screen width bpp 8 이다. 없음. 화면의 pitch 값을반환한다 getscreenbpp U32 getscreenbpp(). 화면의 bpp(bit per pixel) 값을반환하는함수. setscreen() 함수를통해설정된 bpp 값이반환된다. 없음. 화면의 bpp 값을반환한다. Advanced Digital Chips Inc. 59
60 Ver 1.30 adstar SDK Reference Manual 8.15 drawsetrgb Void drawsetrgb(u8 sr, U8 sg, U8 sb) 선및도형의색상을설정한다. 설정된색으로선및도형이그려지게된다. sr RGB 중 R 의값. ( 0 ~ 255 ) sg RGB 중 G 의값. ( 0 ~ 255 ) sb RGB 중 B 의값. ( 0 ~ 255 ) 없음 drawgetrgb void drawgetrgb(u8* dr, U8* dg, U8* db) 선및도형의현재설정되어있는색상을읽어온다. dr 현재설정되어있는 R 값이저장될변수. dg 현재설정되어있는 G 값이저장될변수. db 현재설정되어있는 R 값이저장될변수. 없음 drawputpixel void drawputpixel(int x, int y, U8 r, U8 g, U8 b); 한점을찍는함수. 지정한위치에지정된색의점을찍는다. RGB 값을직접주는함수로 drawsetrgb( ) 함수의영향을받지않는다. x 점을찍은 x 좌표 y 점을찍은 y 좌표 r 점의색상중 r 값. ( 0 ~ 255 ) g 점의색상중 g 값. ( 0 ~ 255 ) 60 Advanced Digital Chips Inc.
61 adstar SDK Reference Manual Ver 1.30 b 점의색상중 b 값. ( 0 ~ 255 ) 없음 drawline void drawline( U32 x1, U32 y1, U32 x2, U32 y2 ) x1, y1 위치에서 x2, y2 위치로선을그린다. 선의색은 drawsetrgb( ) 함수에의해설정된색을 사용한다. x1 선의시작점의 x 좌표. y1 선의시작점의 y 좌표. x2 선의끝점의 x 좌표. y2 선의끝점의 y 좌표. Return Value 없음 drawrect void drawrect(s16 x, S16 y, U16 w, U16 h) x, y 좌표를시작점으로가로가 w, 세로가 h 인사각형을그린다. 사각형의색은 drawsetrgb() 함수에의해설정된색을사용한다. x 사각형의시작점의 x 좌표 y 사각형의시작점의 y 좌표 w 사각형의가로길이. h 사각형의세로길이. 없음. Advanced Digital Chips Inc. 61
62 Ver 1.30 adstar SDK Reference Manual 8.20 drawrectfill void drawrectfill(u32 x, U32 y, U32 w, U32 h) x, y 좌표를시작점으로가로가 w, 세로가 h 인사각형을그린다. Drawrect 와다른점은안을 채운사각형을그린다. 사각형의색은 drawsetrgb() 함수에의해설정된색을사용한다. x 사각형의시작점의 x 좌표 y 사각형의시작점의 y 좌표 w 사각형의가로길이. h 사각형의세로길이. 없음 drawround void drawround(s16 x0, S16 y0, U16 w, U16 h, U16 corner) x, y 좌표를시작점으로가로가 w, 세로가 h 인모서리가부드러운사각형을그린다. corner 값에 따라모서리의부드러운형태가조정된다. 색은 drawsetrgb() 함수에의해설정된색을사용한다. x0 사각형의시작점의 x 좌표 y0 사각형의시작점의 y 좌표 w 사각형의가로길이. h 사각형의세로길이. corner 모서리의부드러운형태조정값. 이값이클수록부드러운부분이넓어진다. 없음 drawroundfill void drawroundfill(s16 x0, S16 y0, U16 w, U16 h, U16 corner) x, y 좌표를시작점으로가로가 w, 세로가 h 인모서리가부드러운사각형을그린다. corner 값에 따라모서리의부드러운형태가조정된다. drawround 와다르게안을채운사각형을그린다. 색은 drawsetrgb() 함수에의해설정된색을사용한다. 62 Advanced Digital Chips Inc.
63 adstar SDK Reference Manual Ver 1.30 x0 사각형의시작점의 x 좌표 y0 사각형의시작점의 y 좌표 w 사각형의가로길이. h 사각형의세로길이. corner 모서리의부드러운형태조정값. 이값이클수록부드러운부분이넓어진다. 없음 drawcircle void drawcircle(u32 x, U32 y, U32 rad) x, y 좌표를원점으로하고반지름이 rad 인원을그린다. 원의색은 drawsetrgb() 함수에의해 설정된색을사용한다. x y rad 원점의 x 좌표 원점의 y 좌표 원의반지름 없음 drawcirclefill void drawcirclefill(u32 x0, U32 y0, U32 rad) x, y 좌표를원점으로하고반지름이 rad 인안을채운원을그린다. 색은 drawsetrgb() 함수에 의해설정된색을사용한다. X0 Y0 rad 원점의 x 좌표 원점의 y 좌표 원의반지름 Advanced Digital Chips Inc. 63
64 Ver 1.30 adstar SDK Reference Manual 없음 drawellipse void drawellipse (S16 x0, S16 y0, U16 Xradius, U16 Yradius); x0, y0 좌표를원점으로하고 x 축반지름이 Xradius 이고 y 축반지름이 Yradius 인타원을 그린다. 색은 drawsetrgb() 함수에의해설정된색을사용한다. x0 x0 Xradius Yradius 원점의 x 좌표원점의 y 좌표타원의 x 축반지름타원의 y 축반지름 없음 drawellipsefill void drawellipsefill (S16 x0, S16 y0, U16 Xradius, U16 Yradius); x0, y0 좌표를원점으로하고 x 축반지름이 Xradius 이고 y 축반지름이 Yradius 인안을채운 타원을그린다. 색은 drawsetrgb() 함수에의해설정된색을사용한다. x0 x0 Xradius Yradius 원점의 x 좌표원점의 y 좌표타원의 x 축반지름타원의 y 축반지름 없음. 64 Advanced Digital Chips Inc.
65 adstar SDK Reference Manual Ver loadbmp SURFACE* loadbmp(char* fname); Bmp 파일을 load 하는함수. bmp 파일을 load 하여메모리영역을생성 drawsurface( ) 함수를 사용하여이미지를출력할수있도록 SURFACE 구조체를생성후저장을한다. fname bmp 파일이름 이미지가정보와이미지데이터가저장된메모리영역의포인터 loadbmpp SURFACE* loadbmpp(u8* startaddr) BMP 이미지를메모리에서 load 하는함수. Loadbmp 와다른점은파일을 load 하는것이아니고, 메모리에서 load 한다는점이다. startaddr 이미지가저장되어있는메모리주소. 이미지가정보와이미지데이터가저장된메모리영역의포인터 loadjpg SURFACE* loadjpg(char* fname); jpg 파일을 load 하는함수. jpg 파일을 load 하여메모리영역을생성 drawsurface( ) 함수를 사용하여이미지를출력할수있도록 SURFACE 구조체를생성후저장을한다. ( 참고로 jpg image 출력을위해서는 libjpeg.a 파일을 project 에추가해주어야한다.) fname jpg 파일이름 이미지가정보와이미지데이터가저장된메모리영역의포인터. Advanced Digital Chips Inc. 65
66 Ver 1.30 adstar SDK Reference Manual 8.30 loadjpgp SURFACE* loadjpgp(u8* databuf, U32 len) JPG 이미지를메모리에서 load 하는함수. Loadjpg 와다른점은파일을 load 하는것이아니고, 메모리에서 load 한다는점이다. databuf 이미지가저장되어있는메모리주소. len 이미지데이터의길이 이미지가정보와이미지데이터가저장된메모리영역의포인터 loadtga SURFACE* loadtga(char* fname) tga 파일을 load 하는함수. tga 파일을 load 하여메모리영역을생성 drawsurface( ) 함수를 사용하여이미지를출력할수있도록 SURFACE 구조체를생성후저장을한다. fnametga 파일이름 이미지가정보와이미지데이터가저장된메모리영역의포인터 loadtgap SURFACE* loadtga(u8* startaddr) tga 이미지를메모리에서 load 하는함수. loadtga 와다른점은파일을 load 하는것이아니고, 메모리에서 load 한다는점이다. Startaddr 이미지가저장되어있는메모리주소. 이미지가정보와이미지데이터가저장된메모리영역의포인터. 66 Advanced Digital Chips Inc.
67 adstar SDK Reference Manual Ver loadpng SURFACE* loadpng(char* filename) png 파일을 load 하는함수. png 파일을 load 하여메모리영역을생성 drawsurface( ) 함수를 사용하여이미지를출력할수있도록 SURFACE 구조체를생성후저장을한다. ( 참고로 png image 출력을위해서는 libpng.a 와 libz.a 파일을 project 에추가해주어야한다.) filenamepng 파일이름 이미지가정보와이미지데이터가저장된메모리영역의포인터 loadpngp SURFACE* loadpngp(u8* pngbuf, U32 datalen) png 이미지를메모리에서 load 하는함수. loadpng 와다른점은파일을 load 하는것이아니고, 메모리에서 load 한다는점이다. Pngbuf Datalen 이미지가저장되어있는메모리주소 이미지데이터길이 이미지가정보와이미지데이터가저장된메모리영역의포인터 loadimage SURFACE*loadimage(char* fname) 이미지를 load 하는함수. bmp,jpg,tga,png 이미지에구분없이이함수로모두로드가능하다. 함수내부에서이미지를구분하여각각이미지에맞는 load 함수를호출한다. fname 이미지파일이름 이미지가정보와이미지데이터가저장된메모리영역의포인터. Advanced Digital Chips Inc. 67
68 Ver 1.30 adstar SDK Reference Manual 8.36 drawsurface BOOL drawsurface(surface* src_surf, int dx, int dy) 이미지를출력할때사용하는함수. src_surf load 함수에서 return 받은이미지데이터가저장된메모리영역포인터. dx 이미지가위치할 x 좌표. dy 이미지가위치할 y 좌표. TRUE or FALSE 8.37 drawsurfacerect BOOL drawsurfacerect(surface* src_surf, int dx, int dy, int sx, int sy, int w, int h) 이미지중지정된영역만출력할때사용하는함수. 이미지를지정한위치부터지정한 사이즈만큼 dx, dy 에출력한다. 이미지의일부분만출력할때사용하면된다. src_surfload 함수에서 return 받은이미지데이터가저장된메모리영역포인터. dx 이미지가위치할 x 좌표. dy 이미지가위치할 y 좌표. sx 이미지중출력할부분의시작 x 좌표. sy 이미지중출력할부분의시작 y 좌표. w 출력할이미지의가로길이. 시작 sx 값부터 w 만큼출력한다. h 출력할이미지의세로길이. 시작 sy 값부터 h 만큼출력한다. TRUE or FALSE 8.38 drawsetclipwinodw void drawsetclipwindow(int x, int y, int w, int h) 이미지가출력될수있는영역을제한한다. 좌표 x, y 부터가로 w 세로 h 영역에만이미지가 출력되고, 그외영역에는출력되지않는다. 68 Advanced Digital Chips Inc.
69 adstar SDK Reference Manual Ver 1.30 x y w h 이미지출력을허용할영역의시작 x 좌표이미지출력을허용할영역의시작 y 좌표이미지출력을허용할영역의가로길이이미지출력을허용할영역의세로길이 없음 drawsurfacescale BOOL drawsurfacescale(surface* src_surf, int dx, int dy, int dw, int dh) 이미지를확대또는축소해서출력한다. 원본이미지의가로세로길이보다 dw, dh 값이크면, 이미지가확대돼서출력되고, dw, dh 값이작으면, 축소돼서출력된다. src_surf load 함수에서 return 받은이미지데이터가저장된메모리영역포인터. dx 이미지가출력될 x 좌표. dy 이미지가출력될 y 좌표. dw 출력될이미지의가로길이, 원본이미지가로길이보다이값이크면 가로길이가확대되어출력되고, 작으면가로길이가축소되어출력된다. dh 출력될이미지의세로길이, 원본이미지세로길이보다이값이크면 세로길이가확대되고, 작으면세로길이가축소되어출력된다. TRUE or FALSE 8.40 drawsurfacescalerect BOOL drawsurfacescalerect(surface* src_surf, int dx, int dy, int dw, int dh, int sx, int sy, int sw, int sh) drawsurfacescale() 함수와 drawrect() 함수를합쳐놓은함수이다. 이미지의특정부분을확대 또는축소하여출력한다. 이미지의 (sx,sy) 부터 sw,sh 영역의이미지를 dx,dy 좌표에 dw, dh 크기로출력한다. sw,sh 값보다 dw, dh 값이크면확대, 작으면축소이다. src_surf load 함수에서 return 받은이미지데이터가저장된메모리영역포인터. Advanced Digital Chips Inc. 69
70 Ver 1.30 adstar SDK Reference Manual dx 이미지가출력될 x 좌표 dy 이미지가출력될 y 좌표 dw 출력될이미지의가로길이, 출력할부분이미지의가로길이보다크면 가로로확대되고, 작으면가로로축소된다. dh 출력될이미지의세로길이, 출력할부분이미지의세로길이보다크면 세로로확대되고, 작으면세로로축소된다. sx 원본이미지중출력할부분의시작 x 좌표. sy 원본이미지중출력할부분의시작 y 좌표 sw 출력할이미지의가로길이. 시작 sx 값부터 sw 만큼출력한다 sh 출력할이미지의세로길이. 시작 sy 값부터 sh 만큼출력한다 TRUE or FALSE 8.41 releasesurface void releasesurface(surface* surf); 이미지 load 함수에의해생성된메모리영역을해제한다. 메모리가제한적이기때문에사용하지 않는이미지에대해서 releasesurface( ) 함수로메모리해제해주는것이좋다. surf load 함수에서 return 받은이미지데이터가저장된메모리영역포인터.. 없음 createsurface_from SURFACE* createsurface_from(surface* src, U32 option); 이미지의복사본을만든다. option 을통해좌 / 우 90 도회전, 180 도회전, 좌우 / 상하뒤집은복사본을만들수있다. 이미지를회전하여출력할경우이미지를 load 한후에 createsurface_ from 함수를사용하여회전한복사본을만들어출력하면된다. 회전과관련된 option 은다음과같으며, 원본그대로의복사본을원하면, option 값으로 0 을적어주면된다. 복사본이생성되는것으로원본이미지는그대로사용할수있다. #define PIVOT_RIGHT (1) #define PIVOT_LEFT (1<<1) 70 Advanced Digital Chips Inc.
71 adstar SDK Reference Manual Ver 1.30 #define PIVOT_180 (1<<2) #define PIVOT_VFLIP (1<<4) #define PIVOT_HFLIP (1<<5) src option 복사할 surface 의원본 source. 복사본을만들면서적용할 option. 복사본이미지정보와데이터가저장된메모리영역의포인터. Example SURFACE* surface = loadbmp( test.bmp ); SURFACE* surface_right =createsurface_from(surface, PIVOT_RIGHT) // 원본이미지를오른쪽 90 도회전한복사본이미지를만든다. SURFACE* surface_left =createsurface_from(surface, PIVOT_LEFT) // 원본이미지를왼쪽 90 도회전한복사본이미지를만든다. SURFACE* surface_right =createsurface_from(surface, PIVOT_180) // 원본이미지를 180 도회전한복사본이미지를만든다. SURFACE* surface_right =createsurface_from(surface, PIVOT_VFLIP) // 원본이미지를상하뒤집은복사본이미지를만든다. SURFACE* surface_right =createsurface_from(surface, PIVOT_HFLIP) // 원본이미지를좌우뒤집은복사본이미지를만든다. drawsurface(surface,0,0); drawsurface(surface_right,200,0); drawsurface(surface_left,0,200);... Advanced Digital Chips Inc. 71
72 Ver 1.30 adstar SDK Reference Manual 8.43 single frame & double frame 사용예 < SINGLE FRAME > Single frame 은화면에보여지는 frame 을하나만생성한다. 그래서현재보여지는화면에이미지및도형을그리는동작을수행한다. 현재보여지는 frame 위그림처럼 frame 이하나만생성이되고, 이미지및도형은하나의 frame 에계속그려지게된다. Single frame 설정및사용법은다음과같다. setscreen(screen_800x480, SCREENMODE_RGB565 ) SURFACE* frame = createframe(800, 480, 16); setframebuffer(frame); setdrawtarget(frame); setdrawrgb(255,0,0); drawcirclefill(50,50,10); setdrawrgb(0,255,0); drawrect(100,100,100,100); frame 하나를생성하고, setframebuffer() 함수와 setdrawtarget() 함수로생성한하나의 frame 을 설정한후, 이미지또는도형을그리면된다. 72 Advanced Digital Chips Inc.
73 adstar SDK Reference Manual Ver 1.30 <DOUBLE FRAME > Double frame 은 frame 을두개생성한다. 그래서한개의 frame 은화면에보여지고, 다른한개의 frame 은화면에보여지지않는다. 편의상화면에보여지는 frame 을 front frame 이라하고, 화면에보이지않는 frame 을 back frame 라하겠다. Double frame 을사용하게되면 back frame 에이미지및도형을그려서현재보여지는 front frame 에영향을주지않고, 이미지및도형을그릴수있다. 보여지는 front frame flip() back frame 위그림에서보듯이 back frame 에도형을그려도 front frame 에는영향을미치지않아, 화면에변화를주지않는다. Back frame 에도형을그린후 flip() 함수를호출하면 frame 간에전환이이루어져 back frame 이 front frame 이되면서화면에보여지게되고, front frame 이 back frame 이되면서화면에보이지않게된다. double frame 의사용법은다음과같다. setscreen(screen_800x480, SCREENMODE_RGB565 ) SURFACE* frame1 = createframe(800, 480, 16); SURFACE* frame2 = createframe(800, 480, 16); setdoubleframebuffer(frame1, frame2); setdrawtarget(getbackframe()); setdrawrgb(255,0,0); drawcirclefill(50,50,10); flip(); Advanced Digital Chips Inc. 73
74 Ver 1.30 adstar SDK Reference Manual setdrawtarget(getbackframe()); setdrawrgb(0,255,0); drawrect(600,300,100,100); flip(); setdrawtarget(getbackframe()); setdrawrgb(255,0,0); drawrect(600,300,20); frame 을두개를생성하고, setdrawtarget() 함수를사용하여 backframe 을 draw target 으로설정한후이미지및도형을그린다. 다그린후에 flip() 함수를호출하여 back frame 을 front frame 으로만들어화면에보이게한다. Front frame 은 back frame 이되고, setdrawtarget() 함수로 draw target 이되어이미지및도형이그려지게된다. 74 Advanced Digital Chips Inc.
75 adstar SDK Reference Manual Ver set frame buffer xy 사용예 setframebufferxy 함수를사용하여, 화면크기보다큰 frame 을생성하였을때위그림처럼특정 위치만화면에보여지게할수있다. setscreen(screen_800x480, SCREENMODE_RGB565); SURFACE *frame = createframe(1600,800,16); setframebuffer(frame); setdrawtarget(frame);.... setframebufferxy(frame,800,320); // 위의두번째그림처럼전체 frame 중 800,320 부터화면에보여지게된다. 위코드에서처럼 frame 의크기를화면해상도보다크게설정하고, setframebuffer( ) 함수로화면 해상도보다큰 frame 을선택한다. 그런후에 setframebufferxt() 함수로화면에보여지는부분의 시작점을설정하면 frame 의그지점부터화면에보여지게된다. Advanced Digital Chips Inc. 75
76 Ver 1.30 adstar SDK Reference Manual 8.45 Graphic Example < SINGLE FRAME > #include adstar.h int main() { boardinit(); uart_config(0,115200,databits_8,stopbits_1,uart_parnone); debugstring("================================================\r\n"); debugprintf("adstar Graphic.System Clock(%dMhz)\r\n",get_ahb_clock()/ ); debugstring("================================================\r\n"); crtc_clock_init(); // CRT clock enable. setscreen(screen_800x480,screenmode_rgb565);// 해상도및 draw mode 를설정한다. SURFACE *frame = createframe(800,480,16);// frame 을생성한다. setframebuffer(frame); // 화면에보여질 frame 을선택한다. setfrawtarget(frame);// 이미지및도형이그려질 frame 을선택한다. lcdon(); drawsetrgb(255,255,255);// 도형의색을흰색으로설정한다. drawrectfill(0,0,getscreenwidth(),getscreenheight()); // 0,0 부터 800,480 크기의흰색채운사각형을기린다. 화면 clear. drawsetrgb(255,0,0); drawline(30,30,100,100); // 30,30 에서 100,100 까지선을그린다. drawrect(10,10,100,100); // 10,10 부터가로세로크기가 100 인사각형을그린다. drawcircle(100,100,10); // 원점이 100,100 이고반지름이 10 인원을그린다. drawcirclefill(200,200,20); // 원점이 200,200 이고반지름이 20 인채운원을그린다. drawround(50,50,100,100,5); // 50,50 부터가로세로크기가 100 인모서리가부드러운 // 사각형을그린다. drawellipse (300, 100, 20, 40);// 원점이 300,100 이고, x 축반지름이 20, y 축반지름이 40 인 타원을그린다. } while(1); return 0; 76 Advanced Digital Chips Inc.
77 adstar SDK Reference Manual Ver 1.30 < DOUBLE FRAME > #include adstar.h int main() { boardinit(); uart_config(0,115200,databits_8,stopbits_1,uart_parnone); debugstring("================================================\r\n"); debugprintf("adstar Graphic.System Clock(%dMhz)\r\n",GetAHBclock()/ ); debugstring("================================================\r\n"); FATFS fs; F_mount(DRIVE_NAND, &fs); crtc_clock_init(); // CRT clock enable. setscreen(screen_800x480,screenmode_rgb565);// 해상도및 draw mode 를설정한다. SURFACE *frame1 = createframe(800,480,16); // frame1 을생성한다. SURFACE *frame2 = createframe(800,480,16); // frame2 을생성한다. //double frame 사용을위해 frame 을 2 개생성한다. setdoubleframebuffer(frame1,frame2); //double frame 으로설정을한다.. lcdon(); setdrawtarget(getbackframe());// 이미지및도형이그려질 frame 을 // back frame 으로선택한다. SURFACE* image1 = loadbmp( test1.bmp );// Nand 에서 test1.bmp 파일을 load 한다. drawsurface(image1,0,0);// bmp 이미지를 0,0 에출력한다. (back frame) flip();// frame 을전환하여 back frame 을화면에보여준다. setdrawtarget(getbackframe());// 이미지및도형이그려질 frame 을 // back frame 으로선택한다. } SURFACE* image2 = loadjpg( test2.jpg );// Nand 에서 test2.jpg 파일을 load 한다. drawsurfacerect(image2,0,0,100,100,200,200);// jpg 이미지를 0,0 에출력하는데, // jpg 이미지중 100,100 부터가로세로 200 사이즈만큼출력한다. flip();// frame 을전환하여 back frame 을화면에보여준다. (jpg image). releasesurface(image1);// 사용하지않는 image1 을메모리에서제거한다. while(1); return 0; Advanced Digital Chips Inc. 77
78 Ver 1.30 adstar SDK Reference Manual 9. Sound 이번장에서는 adstar sound 출력에대해알아보겠다. adstar 는 8bit/16bit, signed/unsigned, mono/stereo WAV 와 MP3 를지원한다. 9.1 sount_init() BOOLsount_init Sound 출력을위해 Soundmixer 를초기화하는함수. 없음. 없음. 9.2 sound_loadwav WAVE* sound_loadwav(char* filename); WAV 파일을 load 하는함수. WAV 파일을 load 하여 WAVE 구조체를생성메모리에저장한다. filename WAV 파일 WAV 파일의정보와데이터가저장된 WAVE 구조체. 9.3 sound_loadwavp WAVE* sound_loadwavp(u8* buf, U32 len); WAV data 를메모리에서 load 하는함수. buf WAV data 가저장되어있는 buffer. len WAV data 의길이. 78 Advanced Digital Chips Inc.
79 adstar SDK Reference Manual Ver 1.30 WAV 파일의정보와데이터가저장된 WAVE 구조체. 9.4 sound_loadmp3 WAVE* sound_loadmp3(char* filename); MP3 파일을 load 하는함수. MP3 파일을 load 하여 WAVE 구조체를생성메모리에저장한다. filename MP3 파일 MP3 파일의정보와데이터가저장된 WAVE 구조체. 9.5 sound_loadmp3p WAVE* sound_loadmp3p(void* buf, U32 mp3databufsize);; MP3 data 를메모리에서 load 하는함수. buf MP3 data 가저장되어있는 buffer. Mp3databufsize mp3 data 의길이. MP3 파일의정보와데이터가저장된 WAVE 구조체. 9.4 sound_release BOOL sound_release(wave* pwave); load_soundwav() 또는 load_soundmp3() 함수에의해생성된메모리를해제한다. 사용할수있는 메모리가제한적이기때문에사용하지않는 sound 대해 sound_release( ) 함수를호출하여 사용하지않는메모리를반환하는것이좋다. pwavesound_loadwav( ) 함수또는 sound_loadmp3( ) 함수에의해생성된 WAVE 구조체. Advanced Digital Chips Inc. 79
80 Ver 1.30 adstar SDK Reference Manual TRUE(1) or FALSE(0) 9.5 sound_play BOOL sound_play(wave* pwave); load_soundwav() 또는 load_soundmp3() 함수로 load 한 sound 를 play 한다. pwavesound_loadwav( ) 함수또는 sound_loadmp3( ) 함수에의해생성된 WAVE 구조체. TRUE(1) or FALSE(0) adstar 는 sound 출력을 4 개채널중하나를선택해서할수있다. 0 번 1 번채널은 I2S 를통한출력이고, 2 번 3 번채널은 digital modulator 를통한출력이다. SDK 에서는 2 번채널을 default 출력으로정하고있는데, 이를변경하기위해서는 lib_src/adstar.epx 파일열어 libconfig.h 파일의 #define SND_OUTPUT_CHANNEL 2 에서 2 가채널을나타내는값으로이값을수정한후 rebuild 하면다른채널로출력이가능하다. 9.6 sound_stop BOOL sound_stop(wave* pwave) play 중인 sound 를 stop 시킨다. pwave 현재 play 중인 sound 의 WAVE 구조체. TRUE(1) or FALSE(0) 9.7 sound_vol void sound_vol(u8 vol); sound volume 을조정한다. 80 Advanced Digital Chips Inc.
81 adstar SDK Reference Manual Ver 1.30 vol volume 값. 범위는 0 부터 255 이다. 없음 9.7 sound_vol_wav void sound_vol_wav(wave* pwav, U8 vol); 음원파일각각의 volume 을조정한다. sound_vol() 함수와별도로 volume 을설정한다. 두개의 음원을동시에출력할때음원마다 volume 크기를다르게하고싶을경우에사용하면된다. pwave volume 을조정할 sound 구조체 vol volume 값. 범위는 0 부터 255 이다. 9.8 sound_pause BOOL sound_pause(wave* pwave); Play 중인 sound 를 pause 시킨다. pwave 현재 play 중인 sound 의 WAVE 구조체. TRUE(1) or FALSE(0) 9.9 sound_resume BOOL sound_resume(wave* pwave); Pause 상태의 sound 를 resume 시킨다. pwave 현재 pause 중인 sound 의 WAVE 구조체. Advanced Digital Chips Inc. 81
82 Ver 1.30 adstar SDK Reference Manual TRUE(1) or FALSE(0) 9.10 sound_isplay BOOL sound_isplay(wave* pwave); 현재 pwave sound 가 play 중인지확인할수있다. pwave 현재 play 중인지확인하려는 sound 의 WAVE 구조체. TRUE(1 = play) or FALSE(0 = stop) 9.11 sound_ispause BOOL sound_ispause(wave* pwave); 현재 pwave sound 가 pause 중인지확인할수있다. pwave 현재 pause 중인지확인하려는 sound 의 WAVE 구조체. TRUE(1 = pause) or FALSE(0 = none pause) 82 Advanced Digital Chips Inc.
83 adstar SDK Reference Manual Ver Sound Example < WAV File Play > #include adstar.h Intmain() { boardinit(); uart_config(0,115200,databits_8,stopbits_1,uart_parnone); debugstring("================================================\r\n"); debugprintf("adstar Wave Play.System Clock(%dMhz)\r\n",get_ahb_clock()/ ); debugstring("================================================\r\n"); FATFS fs; f_mount(drive_nand, &fs); sount_init(); // Sound 출력을위한 sound mixer 초기화 WAVE* sound = sount_loadwav( test.wav ); // wav 파일 load sound_play(sound); // wav 파일재생 delayms(1000); If(sound_isplay(sound)) { sound_stop(sound); } // 1 초후에 wav 파일재생중인지확인 // 재생중이면재생중지 sound_release(sound); // 더이상사용하지않을 sound 라메모리에서제거. } while(1); return 0; Advanced Digital Chips Inc. 83
84 Ver 1.30 adstar SDK Reference Manual < MP3 File Play > #include adstar.h Intmain() { uart_config(0,115200,databits_8,stopbits_1,uart_parnone); debugstring("================================================\r\n"); debugprintf("adstar MP3Play.System Clock(%dMhz)\r\n",get_ahb_clock()/ ); debugstring("================================================\r\n"); FATFS fs; f_mount(drive_nand, &fs); sound_init(); // Sound 출력을위한 sound mixer 초기화 WAVE* sound = sount_loadmp3( test.mp3 ); // mp3 파일 load sound_play(sound); // mp3 파일재생 delayms(1000); sound_pause(sound); // 1 초후에 Sound pause delayms(1000); If(sound_ispause(sound)) { sound_resume(sound); } // 1 초후에 Sound 가 pause 상태인지확인 // pasuse 중이면 resume } while(1); return 0; 84 Advanced Digital Chips Inc.
85 adstar SDK Reference Manual Ver File System adstar SDK 는 Nand Flash 와 SD Card 에 file system 을적용하여 file 저장장치로사용할수있다. 이번장에서는 Nand Flash 와 SD Card 를 file 저장장치로사용하기위해초기설정하는법에대해설명을하고, 자세한 file system 사용에관한내용은 adstar SDK 중 doc 폴더안의 fatfs 매뉴얼을참고하기바란다.( SDK/doc/fatfs/doc/00index_e.html) 10.1 f_mount FRESULT f_mount(byte, FATFS*); Nand Flash 또는 SD Card 를 mount 하여 file 저장장치로사용하도록설정한다. BYTE FATFS Nand Flash 또는 SD Card 의장치번호. 이에대해서는다음과같이정의되어있다. #define DRIVE_NAND 0 #define DRIVE_SDCARD 1 장치정보를가지고있는구조체 Result value 동작의결과. 0 인경우정상동작한것이다. 이외에결과값은 fatfs 매뉴얼을참조하기바란다 f_chdrive FRESULT f_chdrive(byte); Mount 된 driver 간에 drive change 할때사용한다. BYTE Nand Flash 또는 SD Card 의장치번호. #define DRIVE_NAND 0 #define DRIVE_SDCARD 1 동작의결과. 0 인경우정상동작한것이다. 이외에결과값은 fatfs 매뉴얼을참조하기바란다. Advanced Digital Chips Inc. 85
86 Ver 1.30 adstar SDK Reference Manual 10.3 f_chdir FRESULT f_chdir(const TCHAR* ); Mount 된 driver 에서 directory 이동할때사용한다. TCHAR* 이동할 directory 명 동작의결과. 0 인경우정상동작한것이다. 이외에결과값은 fatfs 매뉴얼을참조하기바란다 FILE System Example int main() { init_interrupt(); // Interrupt 초기화 uart_config(0, , DATABITS_8, STOPBITS_1, UART_PARNONE ); FATFS nand_fs, sdcard_fs; f_mount(drive_nand, &nand_fs);// Nand Flash mount f_mount(drive_sdcard, &sdcard_fs);// SD Card mount SURFACE* bmp = loadbmp( test.bmp ); // Nand Flash 에서이미지파일 Load f_chdrive(drive_sdcard); // SD Card 로 drive change WAVE* wav = sound_loadwav( test.wav ); // SD Card 에서사운드파일 Load f_chdir( font ); // SD Card 의 font directory 로이동. } while(1) return 0; 86 Advanced Digital Chips Inc.
87 adstar SDK Reference Manual Ver Font adstar SDK 에서는두종류의 font 를사용할수있다. 이미지폰트 ( 편의상 bm font 라하겠다 ) 와 bit 타입의폰트 ( 편의상 bit font 라하겠다 ) 가있는데, 이번장에서는이두폰트를사용하기위해필요한함수에대해설명하도록하겠다. bm font 는프로그램을사용하여폰트이미지를제작해야하지만여러종류의폰트를쉽게사용할수있다. bf font 는따로이미지제작없이제공되는파일을가지고사용할수있지만폰트의종류는변경할수없다. bmfont 의제작방법은추가로제공되는문서를참고하기바란다. << bm font >> 11.1 bmfont_init BMFont* bmfont_init(const char *fontfile) 폰트파일을 load 하여 bmfont 를사용할수있도록준비한다. fontfile 폰트파일이름 Result value bmfont 포인터 bmfont_setfont Bool bmfont_setfont(bmfont* pfont); init 한 bmfont 중사용할폰트를결정한다. pfont bmfont 포인터 TRUE(1) or FALSE(0) Advanced Digital Chips Inc. 87
88 Ver 1.30 adstar SDK Reference Manual 11.3 bmfont_write int bmfont_write(int x, int y, const char *text) bmfont 를사용하여특정위치에문자를출력한다. x 문자가출력될 x 좌표 y 문자가출력될 y 좌표 text 출력될문자 ( 열 ) 마지막문자가출력된 x 좌표 11.4 bmfont_setrgb bool bmfont_setrgb(bmfont* pfont, U8 r, U8 g, U8 b) 폰트의색을변경한다. pfont 색을변경하려는 bmfont 포인터. r RGB 중 R 값 g RGB 중 G 값 b RGB 중 B 값 TRUE(1) or FALSE(0) 11.5 bmfont_close int bmfont_close(bmfont* pfont) 더이상사용하지않는 bmfont 를 release 한다. pfont 더이상사용하지않는 bmfont 포인터. TRUE(1) or FALSE(0) 88 Advanced Digital Chips Inc.
89 adstar SDK Reference Manual Ver bmfont_makesurface SURFACE* bmfont_makesurface(char* text) 자주사용하는문자를이미지화시켜서필요할때마다 draw 함수를사용하여출력할수있도록 만들어준다. surface 를생성하기때문에더이상사용하지않을경우에는 releasesurface() 함수로 release 해주어야한다. Text 이미지로만들문자 ( 열 ) SURFACE 구조체 11.7 bmfont_setkerning bool bmfont_setkerning(vmfont* pfont, int k) bmfont 의자간을조정한다. pfont k bmfont 포인터 자간간격 TRUE(1) or FALSE(0) 11.8 bmfont_setautokerning bool bmfont_setautokerning(bool b) 폰트한개가차지하는폭을일정하게유지여부를지정한다. b 폭을일정하게유지할지여부, TRUE or FALSE. TRUE(1) or FALSE(0) Advanced Digital Chips Inc. 89
90 Ver 1.30 adstar SDK Reference Manual 11.9 bmfont_write_vleft int bmfont_write_vleft(int x, int y, const char *test) bmfont 를사용하여특정위치에문자를출력하는데, 좌측으로 90 도회전한문자를출력한다. x 문자가출력될 x 좌표 y 문자가출력될 y 좌표 text 출력될문자 ( 열 ) 마지막문자가출력된 y 좌표 bmfont_write_vright int bmfont_write_vleft(int x, int y, const char *test) bmfont 를사용하여특정위치에문자를출력하는데, 우측으로 90 도회전한문자를출력한다. x 문자가출력될 x 좌표 y 문자가출력될 y 좌표 text 출력될문자 ( 열 ) 마지막문자가출력된 y 좌표 90 Advanced Digital Chips Inc.
91 adstar SDK Reference Manual Ver 1.30 << bit font >> Bit font 를사용하기위해서는 project 에 etc_driver 폴더에있는 bit_font.c 파일을추가해주어야 한다 bf_init bool bf_init( ) bit font 를사용할수있도록초기화한다. TRUE(1) or FALSE(0) bf_setrgb void bf_setrgb(u8 r, U8 g, U8 b) Bit font 의색을변경한다. r g b RGB 중 R 값 RGB 중 G 값 RGB 중 B 값 bf_setsize void bf_setsize(int eng_w, int eng_h, int kor_w, int kor_h) Bit font 의크기를변경한다. 크기가너무작거나크게되면정상적으로출력되지않을수있다. eng_w eng_h kor_w kor_h 영어 font 의가로크기영어 font 의세로크기한글 font 의가로크기힌글 font 의세로크기 Advanced Digital Chips Inc. 91
92 Ver 1.30 adstar SDK Reference Manual bf_drawstring int bf_drawstring(int x, int y, char* str) bit font 를사용하여문자를출력한다. x 문자를출력할 x 좌표 y 문자를출력할 y 좌표 str 출력할문자 ( 열 ) bf_drawstring_vleft int bf_drawstring_vleft(int x, int y, char* str) bit font 를사용하여문자를출력하는데, 좌측으로 90 도회전하여출력한다. x 문자를출력할 x 좌표 y 문자를출력할 y 좌표 str 출력할문자 ( 열 ) bf_drawstring_vleft int bf_drawstring_vright(int x, int y, char* str) bit font 를사용하여문자를출력하는데, 우측으로 90 도회전하여출력한다. x 문자를출력할 x 좌표 y 문자를출력할 y 좌표 str 출력할문자 ( 열 ) bf_makesurface SURFACE* bf_makesurface(char* str) 자주사용하는문자를이미지화시켜서필요할때마다 draw 함수를사용하여출력할수있도록 만들어준다. surface 를생성하기때문에더이상사용하지않을경우에는 releasesurface() 함수로 release 해주어야한다. 92 Advanced Digital Chips Inc.
93 adstar SDK Reference Manual Ver 1.30 str 이미지로만들문자 ( 열 ) SURFACE 구조체 FONT Example < bm font example > #include adstar.h int main() { boardinit(); uart_config(0,115200,databits_8,stopbits_1,uart_parnone); debugstring("================================================\r\n"); debugprintf("adstar FONT Example. System Clock(%dMhz)\r\n",get_ahb_clock()/ ); debugstring("================================================\r\n"); FATFS fs; f_mount(drive_nand,&fs); f_chdrive(drive_nand); crtc_clock_init(); SURFACE* frame = createframe(800,480,16); setscreen(screen_800x480,screenmode_rgb565); lcdon(); setframebuffer(frame); setdrawtarget(frame); drawsetrgb(255,255,255); drawrectfill(0,0,getscreenwidth(),getscreenheight()); f_chdir( font ); //font 파일이있는 font 폴더로이동. BMFont* pfont = bmfont_init( nanum_8bit_16px_han.fnt ); Advanced Digital Chips Inc. 93
94 Ver 1.30 adstar SDK Reference Manual // nanum_8bit_16px_han.fnt 파일을 load 하여, 사용할수있도록 setting. bmfont_setrgb(pfont,0,0,255); // nanum 체의 font 색을파란색으로변경. BMFont* pfont2 = bmfont_init( batang_24.fnt ); // batang_24.fnt 파일을 load 하여, 사용할수있도록 setting. bmfont_setrgb(pfont2,255,0,0); // batang 체의 font 색을빨간색으로변경. bmfont_setfont(pfont); // nanum 체를 font 로사용하도록설정. bmfont_wrtie(100,100, 나눔체테스트 ); // 현재선택된 font(nanum 체 ) 를사용하여문자열을 100,100 위치에출력. bmfont_setfont(pfont2); // batang 체를 font 로사용하도록설정. bmfont_write(100,200, 바탕체테스트 ); // 현재선택된 font(batang 체 ) 를사용하여문자열을 100,200 위치에출력. } SURFACE* fontsurf = bmfont_makesurface( bmfont_makesurface 로만든 surface ); // 문자열을하나의 image 로만듦. drawsurface 함수를사용하여 image 처럼사용할수있다. drawsurface(fontsurf,100,300); // image 로만든 font 를 100,300 위치에출력. while(1); return 0; < bit font example > #include adstar.h int main() { boardinit(); uart_config(0,115200,databits_8,stopbits_1,uart_parnone); debugstring("================================================\r\n"); debugprintf("adstar FONT Example. System Clock(%dMhz)\r\n",get_ahb_clock()/ ); debugstring("================================================\r\n"); FATFS fs; f_mount(drive_nand,&fs); f_chdrive(drive_nand); 94 Advanced Digital Chips Inc.
95 adstar SDK Reference Manual Ver 1.30 crtc_clock_init(); SURFACE* frame = createframe(800,480,16); setscreen(screen_800x480,screenmode_rgb565); lcdon(); setframebuffer(frame); setdrawtarget(frame); drawsetrgb(255,255,255); drawrectfill(0,0,getscreenwidth(),getscreenheight()); bf_init(); // bit type font 를사용하도록 setting. bf_setrgb(255,0,0); // bit type font 색을빨간색으로변경. bf_drawstring(100,100, bit type font test ); // bit type font 를사용하여 100,100 위치에문자열을출력. bf_setsize(30,30,30,30); // bit type font 크기를변경. bf_setrgb(0,0,255); // bit type font 색을파란색을변경 bf_drawstring(100,200, bit type font test ); // bit type font 를사용하여 100,200 위치에문자열을출력. SURFACE* fontsurf = bf_makesurface( bf_makesurface 로만들어진 surface ); // 문자열을하나의 image 로만듦. drawsurface 함수를사용하여 image 처럼사용할수있다. drawsurface(fontsurf,100,300); // image 로만든 font 를 100,300 위치에출력. } while(1); return 0; Advanced Digital Chips Inc. 95
96 Ver 1.30 adstar SDK Reference Manual < font image 제작방법 > 1. 에서 Bitmap Font Generator v1.12 를다운받아 설치한다. 2. 설치한후실행하면아래그림과같은창이나온다. 96 Advanced Digital Chips Inc.
97 adstar SDK Reference Manual Ver Options Font settings 을실행하여원하는 Font 와 Font 의 size 를결정한다. 4. Options Export options 를실행하여아래그림과같이설정한다. Width 나 Height 는하나의 bitmap 파일의가로세로크기로, 크기가커지면총 bitmap 파일의수는줄어드나낭비되는영역이존재할수있다. Advanced Digital Chips Inc. 97
CANTUS Evaluation Board Ap. Note
Preliminary CANTUS - UART - 32bits EISC Microprocessor CANTUS Ver 1. October 8, 29 Advanced Digital Chips Inc. Ver 1. PRELIMINARY CANTUS Application Note( EVM B d ) History 29-1-8 Created Preliminary Specification
More informationISP and CodeVisionAVR C Compiler.hwp
USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler
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 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 information목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.
소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423
More informationInstall stm32cubemx and st-link utility
STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7
More informationMicrosoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse
More informationC. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.
ASF(Atmel Software Framework) 환경을이용한프로그램개발 1. New Project Template 만들기 A. STK600 Board Template를이용한 Project 만들기 i. New Project -> Installed(C/C++) -> GCC C ASF Board Project를선택하고, 1. Name: 창에 Project Name(
More informationJU-TF43
Intelligent serial 4.3 TFT LCD Module JUTF43 S/W User Guide 1 JUTF43... 3 2 부팅환경... 4 2.1 부팅환경설정... 4 2.1.1 Normal mode... 4 2.1.2 USB Mass-Storage mode... 4 2.1.3 Firmware Update mode... 5 2.2 Splash
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 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 informationEISC-GANG_User_Guide_V1.2
HW/SW User Guide EISC-GANG II 사용 설명서 Ver 1.2, 2012-09-20 All right reserved. No part of this document may be reproduced in any form without written permission from Advanced Digital Chips Inc. Advanced
More informationMAX+plus II Getting Started - 무작정따라하기
무작정 따라하기 2001 10 4 / Version 20-2 0 MAX+plus II Digital, Schematic Capture MAX+plus II, IC, CPLD FPGA (Logic) ALTERA PLD FLEX10K Series EPF10K10QC208-4 MAX+plus II Project, Schematic, Design Compilation,
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 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 informationMicrosoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with
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 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 informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More informationData Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager
Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More information<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>
SAM4S Printer Driver Installer 달리명시하지않은한, 인쇄또는복사된문서는통제하지않는문서임 목 차 1. 1. WINDOWS DRIVER INSTALLER 설치 설치...... 2 2. 프린터추가...... 5 3. 프린터제거...... 19 4. 프린터추가 / 제거선택...... 21 5. 프로그램추가 / 제거...... 21 SHC- 11-01-
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 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 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슬라이드 1
마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***
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 informationT100MD+
User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+
More informationPowerPoint 프레젠테이션
BOOTLOADER Jo, Heeseung 부트로더컴파일 부트로더소스복사및압축해제 부트로더소스는웹페이지에서다운로드 /working 디렉터리로이동한후, wget으로다운로드 이후작업은모두 /working 디렉터리에서진행 root@ubuntu:# cp /media/sm5-linux-111031/source/platform/uboot-s4210.tar.bz2 /working
More informationMicrosoft Word - src.doc
IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...
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 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 informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More information<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>
VHDL 프로그래밍 D. 논리합성및 Xilinx ISE 툴사용법 학습목표 Xilinx ISE Tool 을이용하여 Xilinx 사에서지원하는해당 FPGA Board 에맞는논리합성과정을숙지 논리합성이가능한코드와그렇지않은코드를구분 Xilinx Block Memory Generator를이용한 RAM/ ROM 생성하는과정을숙지 2/31 Content Xilinx ISE
More informationiii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.
Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:
More information기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.
PDMLink 에등록된 Office 문서들의 PDF 문서변환기능및 Viewer 기능을알아보자 PDM Link에서지원하는 [Product View Document Support] 기능은 Windows-Base 기반의 Microsoft Office 문서들을 PDMLink용 Viewer인 Product View를통한읽기가가능한 PDF Format 으로변환하는기능이다.
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>
8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의
More informationStuduino소프트웨어 설치
Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...
More informationuntitled
EZ-TFT700(T) : EZ-TFT700(T) : Rev.000 Rev No. Page 2007/08/03 Rev.000 Rev.000. 2007/12/12 Rev.001 1.6 Allstech,,. EZ-TFT700(T). Allstech EZ-TFT700(T),,. EZ-TFT700(T) Allstech. < > EZ-TFT Information(13h)
More information6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO
Windows 7 설치및 PCIE RAID 설정정보 DK173 초판 11월 2016 A. Windows 7 및 USB 드라이버설치 칩셋사양에따라 Windows 7 설치중에 USB 키보드 / 마우스를사용하려면시스템에서 USB 드라이버를사전로드해야합니다. 이절에서는 USB 드라이버사전로드방법과 Windows 7 설치방법에대해서설명합니다. 방법 1: SATA ODD
More informationSystem Recovery 사용자 매뉴얼
Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.
More information(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -
(Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>
#include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0
More information슬라이드 1
Delino EVM 용처음시작하기 - 프로젝트만들기 (85) Delfino EVM 처음시작하기앞서 이예제는타겟보드와개발홖경이반드시갖추어져있어야실습이가능합니다. 타겟보드 : Delfino EVM + TMS0F85 초소형모듈 개발소프트웨어 : Code Composer Studio 4 ( 이자료에서사용된버전은 v4..입니다. ) 하드웨어장비 : TI 정식 JTAG
More information인켈(국문)pdf.pdf
M F - 2 5 0 Portable Digital Music Player FM PRESET STEREOMONO FM FM FM FM EQ PC Install Disc MP3/FM Program U S B P C Firmware Upgrade General Repeat Mode FM Band Sleep Time Power Off Time Resume Load
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 informationOrcad Capture 9.x
OrCAD Capture Workbook (Ver 10.xx) 0 Capture 1 2 3 Capture for window 4.opj ( OrCAD Project file) Design file Programe link file..dsn (OrCAD Design file) Design file..olb (OrCAD Library file) file..upd
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More information1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation
1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)
마이크로칩 USB Host & Device 부트로더기능실습 한국마이크로칩서한석부장 (CAE) 2009-09-07 마이크로칩 16 비트 USB 데모보드세팅 Explorer 16 + USB PICtail Plus Daughter Board + USB PIMs Part #: DM240001 Part #: AC164131 Part #: MA240014(PIC24FJ256GB11)
More informationRealDSP UT 프로그램 메뉴얼
Motorola Programmer ( 모델명 : MDProg16) 사용설명서 UUU 리얼시스 (RealSYS) Web: www.realsys.co.kr Tel: 031-420-4326 Fax: 031-420-4329-1 - 1. Motorola Programmer 프로그램특징 A. JTAG & OnCE 기능을이용한 Motorola 의내부플래시메모리 Writing
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 informationPowerPoint 프레젠테이션
실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3
More informationCAN-fly Quick Manual
adc-171 Manual Ver.1.0 2011.07.01 www.adc.co.kr 2 contents Contents 1. adc-171(rn-171 Pack) 개요 2. RN-171 Feature 3. adc-171 Connector 4. adc-171 Dimension 5. Schematic 6. Bill Of Materials 7. References
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 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 informationMango-E-Toi Board Developer Manual
Mango-E-Toi Board Developer Manual http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
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 _whitepaper_latency_throughput_v1.0.1_for_
Sena Technologies 백서 : Latency/Throughput Test September 11, 2008 Copyright Sena Technologies, Inc 2008 All rights strictly reserved. No part of this document may not be reproduced or distributed without
More information*Revision History 날짜 내용 최초작성 Tel Fax [2] page
MSP430-SDS100i 매뉴얼 V1.0 Tel. 031-781-2812 Fax. 031-706-2834 E-mail. dsptools@syncworks.co.kr [1] page *Revision History 날짜 내용 2013. 07. 010 최초작성 Tel. 031-781-2812 Fax. 031-706-2834 E-mail. dsptools@syncworks.co.kr
More informationRVC Robot Vaccum Cleaner
RVC Robot Vacuum 200810048 정재근 200811445 이성현 200811414 김연준 200812423 김준식 Statement of purpose Robot Vacuum (RVC) - An RVC automatically cleans and mops household surface. - It goes straight forward while
More informationC 언어 프로그래밊 과제 풀이
과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍
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 프레젠테이션
A 반 T2 - 김우빈 (201011321) 임국현 (201011358) 박대규 (201011329) Robot Vacuum Cleaner 1 Motor Sensor RVC Control Cleaner Robot Vaccum Cleaner 2 / Event Format/ Type Front Sensor RVC 앞의장애물의유무를감지한다. True / False,
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 informationChapter 1
3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g
More informationLCD Display
LCD Display SyncMaster 460DRn, 460DR VCR DVD DTV HDMI DVI to HDMI LAN USB (MDC: Multiple Display Control) PC. PC RS-232C. PC (Serial port) (Serial port) RS-232C.. > > Multiple Display
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>
7주차 AVR의 A/D 변환기제어레지스터및관련실습 Next-Generation Networks Lab. 3. 관련레지스터 표 9-4 레지스터 ADMUX ADCSRA ADCH ADCL 설명 ADC Multiplexer Selection Register ADC 의입력채널선택및기준전압선택외 ADC Control and Status Register A ADC 의동작을설정하거나동작상태를표시함
More informationK&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
More informationhd1300_k_v1r2_Final_.PDF
Starter's Kit for HelloDevice 1300 Version 11 1 2 1 2 3 31 32 33 34 35 36 4 41 42 43 5 51 52 6 61 62 Appendix A (cross-over) IP 3 Starter's Kit for HelloDevice 1300 1 HelloDevice 1300 Starter's Kit HelloDevice
More informationMicrosoft Word - jEMB11_kor.docx
TO : Jinyoung Contech Co., Ltd. #501, 222-12 MARIOTOWER, GURO3-DONG, GURO-KU, SEOUL, KOREA TEL : 82-2-890-6400 FAX : 82-2-890-6406 HOME PAGE : http://www.jyct.com/ Issued Date : 2011-08-23 Page : 17 Pages
More informationMicrosoft Word - PLC제어응용-2차시.doc
과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,
More information01장
뇌를자극하는 Windows Server 2012 R2 부록 NAS4Free 의설치와환경설정 네트워크상에서저장공간이제공되는 NAS(Network Attached Storage) 환경을 VMware에서구성해야한다. 이책에서는그중 Unix 계열의운영체제이며무료로사용할수있는 NAS4Free 운영체제를설치하고사용할것이다. 결국지금설치하는 NAS4Free는쿼럼디스크와클러스터디스크를제공하는것이목적이다.
More informationRemote UI Guide
Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................
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 information1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB
Revision 1.0 Date 11th Nov. 2013 Description Established. Page Page 1 of 9 1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x
More information슬라이드 제목 없음
ETOS-DPS-X Guide AC&T SYSTEM 1 ETOS-DPS-X 개요 ETOS-DPS-X Field Bus Network 중 Profibus-DP Network 에연결되는장비. ProfiBus-DP Network 시스템에 DP 통신을지원하지않는현장장비에대한통신서버기능구현. Profibus-DP Slave 동작하기때문에반드시 DP-Master 모듈이있는시스템에서적용가능.
More information4S 1차년도 평가 발표자료
모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components
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 informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More informationUART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR
IMC-V0.1 예제소스파일 1. UART 소스코드 (page 1-3) 2. Encoder 소스코드 (page 4-7) 3. ADC 소스코드 (page 8-10) UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ
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 information1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과
1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas
More information2011년 10월 초판 c 2011 Sony Corporation. All rights reserved. 서면 허가 없이 전체 또는 일부를 복제하는 것을 금합니다. 기능 및 규격은 통보 없이 변경될 수 있습니다. Sony와 Sony 로고는 Sony의 상표입니다. G L
HXR-NX3D1용 3D 워크플로 가이드북 2011년 10월 초판 c 2011 Sony Corporation. All rights reserved. 서면 허가 없이 전체 또는 일부를 복제하는 것을 금합니다. 기능 및 규격은 통보 없이 변경될 수 있습니다. Sony와 Sony 로고는 Sony의 상표입니다. G Lens, Exmor, InfoLITHIUM, Memory
More information강의 개요
DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE
More information<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금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationMicrosoft PowerPoint - AME_InstallRoutine_ver8.ppt
AMESim Install Routine and License Manager Tel : +82-31-608-0434 Fax : +82-31-608-0439 E-mail :support@shinho-systems.co.kr http://www.shinho-systems.co.kr Ssangyong IT Twin Tower 702, Sandaewon-dong,
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 information슬라이드 1
전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More informationtiawPlot ac 사용방법
tiawplot ac 매뉴얼 BORISOFT www.borisoft.co.kr park.ji@borisoft.co.kr HP : 00-370-077 Chapter 프로그램설치. 프로그램설치 3 2 Chapter tiawplot ac 사용하기.tiawPlot ac 소개 2.tiawPlot ac 실행하기 3. 도면파일등록및삭제 4. 출력장치설정 5. 출력옵션설정
More informationXJ-A142_XJ-A147_XJ-A242_XJ-A247_XJ-A252_XJ-A257_XJ-M141_XJ-M146_XJ-M151_XJ-M156_XJ-M241_XJ-M246_XJ-M251_XJ-M256
데이터 프로젝터 XJ-A 시리즈 XJ-A142/XJ-A147* XJ-A242/XJ-A247* XJ-A252/XJ-A257* XJ-M 시리즈 XJ-M141/XJ-M146* XJ-M151/XJ-M156* XJ-M241/XJ-M246* XJ-M251/XJ-M256* *USB 모델 KO 사용설명서 본 설명서에서 XJ-A 시리즈 및 XJ-M 시리즈 는 위에 나열된 특정
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 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 information1217 WebTrafMon II
(1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network
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쉽게 풀어쓴 C 프로그래밍
제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace
More information