1-1) 1) Derivative Information < CPU 의선택 > 사용하고자하는 8051 MCU 를폴더별로분리되어있습니다. 해당되는 Device 의 *.i51 파일을불러옵니다. 다양한 8051 Core 의메모리를지원하기위하만들어놓은 Memory Mapping

Similar documents
EWAVR 5.1x 프로젝트 옵션 설정(1_2) 2. Project -> > Option -> > General Option -> > Output / Library Configuration Library Configuration 은 사용하게 될 Library file을

Compiler SPEC Highlights in EW430 Version 4.20 MISRA C:2004 support Multiple inheritance Improved hardware multiplier support Advanced cycle counter f

강의10

MPLAB C18 C

Microsoft Word - Armjtag_문서1.doc

Microsoft PowerPoint - o8.pptx

MAX+plus II Getting Started - 무작정따라하기

Microsoft PowerPoint - Getting Started with IAR C for ARM _.ppt

No Slide Title

C# Programming Guide - Types

untitled


슬라이드 1

PRO1_09E [읽기 전용]

Deok9_Exploit Technique

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

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

APOGEE Insight_KR_Base_3P11

C++-¿Ïº®Çؼ³10Àå

DE1-SoC Board

ISP and CodeVisionAVR C Compiler.hwp

슬라이드 1

Microsoft Word - FunctionCall

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

슬라이드 1

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

chapter4

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

SRC PLUS 제어기 MANUAL

Microsoft PowerPoint - CHAP-03 [호환 모드]

슬라이드 1

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

PowerPoint 프레젠테이션

IoT FND8 7-SEGMENT api

BMP 파일 처리

슬라이드 1

Coriolis.hwp

PowerPoint 프레젠테이션

hlogin2

1

PRO1_02E [읽기 전용]

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

슬라이드 1

untitled

The_IDA_Pro_Book

Orcad Capture 9.x

Voice Portal using Oracle 9i AS Wireless

PowerPoint 프레젠테이션

[8051] 강의자료.PDF

PRO1_04E [읽기 전용]

Remote UI Guide

DIY 챗봇 - LangCon

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

(SW3704) Gingerbread Source Build & Working Guide

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

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

Microsoft PowerPoint APUE(Intro).ppt

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

CD-RW_Advanced.PDF

chap7.key

T100MD+

6주차.key

Microsoft Word - ExecutionStack

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

휠세미나3 ver0.4

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

ARMBOOT 1

PCServerMgmt7

초보자를 위한 C++

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

JVM 메모리구조

PowerPoint 프레젠테이션

untitled

PowerPoint 프레젠테이션

歯15-ROMPLD.PDF

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

인켈(국문)pdf.pdf

10X56_NWG_KOR.indd

강의개요

CANTUS Evaluation Board Ap. Note

PowerPoint 프레젠테이션

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

컴파일러

1. 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

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

1217 WebTrafMon II

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

김기남_ATDC2016_160620_[키노트].key

untitled

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

K7VT2_QIG_v3

02 C h a p t e r Java

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

Microsoft Word - Automap3

PowerPoint 프레젠테이션

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

bn2019_2

Transcription:

General Option

1-1) 1) Derivative Information < CPU 의선택 > 사용하고자하는 8051 MCU 를폴더별로분리되어있습니다. 해당되는 Device 의 *.i51 파일을불러옵니다. 다양한 8051 Core 의메모리를지원하기위하만들어놓은 Memory Mapping Table 입니다. 기본적으로 *.i51 파일을불러오면 CPU 에따라서자동으로설정된다. * 참고사항 - Plain : 일반적인 8051 Core 일경우, - Tiny : 80751 Core 를사용할경우 - Extended1 : 그외에확장된 8051 Core 를사용할경우, ( ex: Dallas DS80C390 /400 계열 ) * EW8051 C Compiler Reference Guide 참고 (#page 28/366)

1-2) Code / Data Model < Memory 선택 > 최대로사용할수있는 ROM 의메모리를설정한다. ( 함수호출시기본번지지정에적용됨 ) - Tiny : 최대 2 Kbyte - Near : 최대 64 Kbyte - banked : 최대확장 24bit 처리가능 ( 0~0xFFFFFF, Banked, 약 400M 정도 ) - Far : 최대 24bit 처리가능 ( 0~0xFFFFFF, no-banked, 약 400M 정도 ) * 기본적을 Device/ CPU core 선택에따라서, 설정내용에따라서사용 model 이제한된다. * EW8051 C Compiler Reference Guide 참고 (#page 29/366) DATA Model 기본포인터지시자 사용 Memory 영역 ( 기본변수저장위치 ) 기본 Data Pointer Size 최대 Object Size Tiny idata Data 8 bits 128 bytes Small idata Idata 8 bits 256 bytes Data (RAM ) 메모리설정에따라서기본적인메모리사용영역과 Pointer Size 와최대 Object Size 가틀려지게된다. Large xdata Xdata 16 bits 64 Kbytes Generic generic Xdata 24 bits 64 Kbtes Far far Far Memory 24 bits 16 Mbytes

1-3) 기타 option 기본적으로 Internal Data Memory 에서 Stack 영역이할당되어있지만, 경우에따라서 External RAM 에서 Stack 활용이필요한경우도있다. * 물론, Data Memory 를 Large 이상으로설정해야만사용이가능하게된다. 다양한종류의 Device 와 CPU 를지원하기위하여 Code & Data Model Type 에따라서세분화된 Calling Convention ( 함수호출규약 ) 을제공하고있다. 아래의표를참고하여메모리의파라미터, 내부에선언된변수들의위치를선정 / 판단할수있다. 상수와 String 등을구분하여특정영역에저장할수있도록설정한다. - (default) RAM Memory : Code data 영역으로 data 영역에복사한다. - ROM mapped as data : Data 모델에의해서 Xdata 나 Far 메모리영역에저장된다. - Code memory : Code data 영역으로저장한다. Data 메모리를활용하여가상레지스터를활용할수가있다. 컴파일러를활용하여최소 8 개에서최대 32 개까지의가상레지스터설정이가능한데, * 물론, CPU 처리능력향상에도움이되지만, 메모리에대한부담을초래할수도있다. Calling Convention Stack Pointer 함수 data 위치 Data Overlay - Data overlay Memory Idata Overlay - Idata overlay Memory Idata reentrant SP Idata stack Pdata reentrant PSP Pdata stack Xdata reentrant XSP Xdata stack Extended Stack reentrant ESP:SP Extended stack

2) Data Pointer & Code Bank CPU 사양에따라서, 외부메모리접근을위한 DPTR ( Data Pointer Register ) 의개수와 DPTR 의 Size 를설정할수가있습니다. CPU 사양에따라서, Data Pointer 의동작방식을변동할수가있다. Increment 방식과 XOR/AND 방식으로구분된다. * 기본적으로 CPU 선택시자동설정 / 지정된다. * EW8051 C/C++ Compiler Reference Guide 참고 (#page 19/366) CPU 사양에따라서, DPTR 번지설정을중복 (Shadowed) 방식과구분 (Separate) 방식으로나눌수있으며, Configure 를통해서원하는 DPTR 번지를직접입력하여사용할수도있다. * 기본적으로 CPU 선택시자동설정 / 지정된다. * EW8051 C/C++ Compiler Reference Guide 참고 (#page 18/366) Bank Memomry 를사용하기위한설정으로, Number of : Bank 메모리사용개수설정 Register : Bank-Switching 레지스터설정 Register mask : Bank 스위칭 bit 를임의로설정 Bank start : bank 메모리시작번지설정 Bank end : bank 메모리끝번지 * EW8051 C/C++ Compiler Reference Guide 참고 (#page 58/366)

3) Output & Library Configuration Output 은컴파일후에실행될혹은참조하게될파일들이생성되는 Output files 이저장되는폴더를명시합니다. 출력되는파일의형태를 Executable / Library 형태로구분해준다. Executable : Hex, Binary, Debug, Object 등 Library : Object only 출력되는 Output 파일들의디렉토리를임의적으로변경할수있도록설정한다. Debug\Exe < HEX, Binary, Debug 파일생성 Debug\Obj < Object 파일생성 Debug\List < List, MAP 파일생성 Library Configuration 은사용하게될 Library 의종류를설정할수있습니다. < 8051 Library 선택에영향을미치는요소 > - Target CPU - C / C++ / Embedded C++ - DPTR Register - Memory

4) Library Options Library Options 은불필요한메모리의소비를줄이기위한방법으로 printf /scanf formatter 의 Level 을설정기가능합니다.. Printf formatter : : Large (default) / Meduim / Small Scanf formatter : : Large (default) / Meduim * : : Library Configuration 설정에따라 ON/OFF ( Normal - No/ Full Yes )

5) STACK / HEAP 0xFFFFFF FAR & Huge ( Extended ) 0xFFFF XDATA 기본적인 8051 Data 메모리구조는좌측과같이복잡한구조로분리되어있으며, 최소한의기본적인 STACK 은 IDATA 에설정이되는게일반적이며, 추가적으로 PDATA 와 XDATA 로확장하여 STACK 영역까지좀더크게사용할수있다. 또한, 특별한 8051 Core 를위한, Extended Data 메모리도구성해놓았다. 마찬가지로, Heap size 의경우에도 Size 설정이가능하지만, XDATA 이상의고용량의메모리에서만사용이가능하다. 물론, STACK 이나 Heap size 의기준은사용 MCU 와 Application 에따라다르다. 0xFF IDATA SFR ( DATA ) Memory Type Segment Type Address range 0x7F PDATA SFR ( 고정 ) IDATA IDATA 0xFF PDATA XDATA 0xFF XDATA XDATA 0xFFFF 0x00 Bdata ( 고정 ) FAR & Extended CONST 0xFFFFFF

5-1) TIP Data Model 과 Calling Conversion 연관관계 Example : idata_reentrant void f(void) { int x; int *xp = &x ; } 위에예제가 Small Data model 로컴파일되었다면, 포인터 xp 의경우, idata 영역에위치하게되는기본포인터타입으로설정되며, Idata stack 에위치하는지역변수 x 를활용할수있다. 만약, large data model 로설정될경우, 컴파일이안된는데, 변수 x 는 idata 영역에위치하지만, 포인터 xp 는 xdata 에존재하기때문이다.

6) MISRA-C MISRA C 는자동차산업용으로적용할수있는서비스유틸리티로써,, 소스의안정성을높이기위한 C Checker 프로그램입니다.. What is MISRA C? The Motor Industry Software Reliability Association (MISRA) is an organization in the UK that promotes safety in automotive software. In 1998, MISRA published its Guidelines for the Use of the C Language in Vehicle Based Software. The guidelines address the ambiguities of the C language and establish coding rules for the automotive industry. MISRA C includes 127 rules. 93 of these are required and the remaining 34 are advisory. All rules apply to the source code and not to the object code generated by the compiler. Who should use MISRA C? How does it work? The IAR MISRA C Checker is completely integrated with the IAR C Compiler. From IAR Embedded Workbench, you can control which MISRA C rules are checked; the settings will be used for both the compiler and the linker. Compliance with the MISRA C guidelines is a requirement in many automotive companies but could be beneficial in any development organization. The guidelines enforce sound coding practices and address the ambiguities of C; they help developers write code in a consistent manner and avoid confusing constructions.

C / C++ Compiler

1) Language Language : [C] 사용하게될 Language 의종류에대해서결정한다.. IAR 은 C 뿐만아니라,, Embedded C++ 을동시에지원이가능하다.. Require prototypes : [Disable] 아래의프로토타입에대해서 Error 메시지를발생시킴으로써,, 소스를추가검증할수있다.. 1) 선언되지않은함수가호출시 2)Kernighan & Ritchie C 표준 Rule 적용 3) 프로토타입선언없이사용된 Public 함수선언시 4) 프로토타입이선언되어있지않은상태에서,, 함수포인터를이용한간접함수호출시 * EW8051_User Guide Require prototypes 참조 349/460 Page Language conformance : [ Allow IAR extensions ] Enable Multibyte Support : [ Disable ] Multibyte 의사용유무를결정할수있다.. Enable IAR migration Preprocessor extensions : [ Disable ] 구버전컴파일러서의소스를신버젼과호환되게하기위하여 ( 확장된 ) 전처리기능으로지원하고있다.. 신버전을위한전처리기능이지원되는사항은아래와같다.. 현재설정된 language 의상태를가장기본적인 Strict ISO/ANSI Type 으로할지,, 혹은 Core 와컴파일러에의해서확장된 language 로할지설정한다.. * Compiler Reference Guide IAR language extension 참조 Plain char is : [Unsigned] (Unsigned) Char 변수타입을변경할수있다.. - Floating-point expressions - Basic type names and sizeof - All symbol names (including typedefs and variables).

2) Code Padding for ROM-monitor breakpoint : [ Disable ] IAR 에서지원되는 Generic C-SPY C Rom 모니터디버깅시에 C 소스 Breakpoint 기능이가능하도록지원해준다.. When the C-SPY ROM-monitor sets a breakpoint, it it replaces the original instruction with the 3-byte instruction LCALL monitor. For those cases where the original instruction has a different size than three bytes, the compiler will insert extra NOP instructions (pads) to ensure that all jumps to this destination are correctly aligned. Note: This mechanism is only supported for breakpoints that you set on C-statement level. For breakpoints in assembler code, you have to add pads manually. No UBROF messages in output files : [ Disable ] UBROF (Universal Binary Relocatable Object Format ) C-SPY Debugging 시에사용되는 Output Format 으로써,, 소스와각종 Symbol 정보들을포함함으로써,, 원활한디버깅이가능하도록돕는다..

3) Optimization Multi-file Compilation : :[ Disable ] Linking 시에 Optimize 를한번더실행을함으로써,, 컴파일시에만수행된 Optimize 기능을획기적으로보강하였다.. Discard Unused Publics : :[ Disable ] Multi-file Compilation 을활용한 Optimization 작업시 Public Function 들과변수들은범위에서제외시킬수있다.. Enabled transformations : : - Common Sub-expression elimination - Loop unrolling - Function in-lining - Code motion - Type-based alias analysis Optimization : :[ Balanced ] ARM IAR C/C++ 컴파일러에서는 3 가지의 Optimization 종류와 (( Size / Speed / Balanced )) 과각각 4 가지 Optimization Level 을선택할수있도록세부적으로구성되어다.. Optimization Level : :[ LOW ] - None [[ Best debug support ]] - Low - Medium - High [[ Maximum optimization ]] Example ) -Common sub-expression :: 중복되는함수,, 계산식삭제하여실행시간및코드사이즈단축 -Function inline :: 간단한함수를 inline 화하여,, 시행시간을단축.. -Code Motion :: 고정적인반복루프를삭제하여실행시간및사이즈단축 ** EW8051 compiler Guide Efficient coding for 참조 IAR Optimization TIP. 1)#pragrma 를활용한함수직접지정 Optimize 2) 프로젝트단위가아닌소스별직접지정 Optimize * EW8051 Compiler reference Guide #299/396 page

3) Output & Library Configuration Output 은컴파일된파일을 program module [ Enable ] 과 Library module 로구분하여컴파일설정한다.. 생성된 module 은임의적으로이름설정이가능하며,, 디버깅용소스정보를포함유무에대해서도설정할수있다.. C-SPY 에서사용할 Debugging Information 을저장할수있도록 Generate debug Information 을설정할수있다.. * EW8051 compiler Guide segment reference 참조 List 는 list 파일 (*.lst) 과 ASM source (*.s79) 을생성할수있도록만들어주는설정이다.. 각각의 file 생성에따른부가적으로 Assembler mnemonics 와 diagnostics 가포함이된파일생성및 Source include 와 Compiler call frame information 포함이가능해진다.. (Demo 제한 ) * EWAVR User guide compiler list list 참조

4) Preprocessor Ignore standard include directories : [ Disable ] 기본설치디렉토리인 C:\ AVR\inc 폴더를 ( $TOOLKIT_DIR&\INC\ ) 를기본참조 include directory 로설정한다.. Additional include directories : (one per line) 설정된기본디렉토리이외의 include 디렉토리에대해서추가입력할수있다.. Ex) $PROJ_DIR$\srciar\ $PROJ_DIR$\..\..\ Pre-include : include 파일을전처리기처럼컴파일러옵션상에서지정할수있다.. Defined symbols : (one per line) Ex) test_source.h test_asm.s79 Source 내에서사용이될 Define symbol 을입력해넣는다.. Preprocessor output to file 을통하여파일로저장도가능하다.. Ex) TESTVER = 1 Preprocessor output to file : [ Disable ] 헌데,, Preprecessor 기능은외부자료가남지않으므로,, 이러한이유에서별도의 Output file 로생성이가능하도록하는옵션이다..

5) Output & Library Configuration Diagnostics 는컴파일과정에서발생되는 Remark / Warning / Error Message 에대한처리를돕는다.. *EW8051 User guide diagnostics 참조 *EW8051 Compiler guide diagnostics 참조 Extra Options 는 GUI 환경에서구현할수없는컴파일러의여러가지다른 Option 들에대해서사용자에의해서임의적으로설정할수있도록마련해둔 Option 설정창이다.. * GUI :: Graphic User Interface

Customer Build & Build Auction

1) Customer Build & Build Auction Customer Build 기능은최근에추가된 Option 으로써,, IAR 사에서제공되는 S/W 이외의다른 S/W Tool 에대해서,, Tool chain 을사용해컴파일환경을제공하는기능이다.. Ex) Lex, YACC * EW8051 User guide Extending the tool chain 참조 * EW8051 Compiler guide diagnostics 참조 Build Actions 는필요에의해서 build 전후에 prebuild / post-build 하기위해서설정하는옵션이다.. *EW8051 User guide building 참조

Linker

1) Output Output 은실행파일의 Format 형태와 Output file 타입을설정할수있다.. Output files : [ Disable ] 임의로설정된 Format 에따라서실행파일의형태가선택되며,, 기본적으로실행파일명은최초프로젝트명을따르도록되어있다.. Ex) project.d79 ( For Debugging format ), ), project.a51 (For Intel-Standard/Extended) project.tsk ( For binary image format ) Format : Output : [Disable] C-SPY 용 Format 외에다른 Format 이필요할경우사용한다.. Output format : - intel-standard :: HEX format 의 file 이필요할경우 ( 64KB 이하 ) - intel-extended :: HEX format 의 file 이필요할경우 ( 64KB 이상 ) Debug information for C-SPY : [ Disable ] 디버깅정보를 C-SPY 용 Format 으로변경 With runtime control modules : [ Enable ] Program abort, exit, assertions etc. With I/O emulation modules : [ Enable ] Terminal I/O handling 설정 ( stdin stdout ) Buffered terminal output : [ Disable ] Terminal 이용시 Buffer 역할을해준다.. Allow C-SPY-specific extra output file:[enable] Extra Output page enable Option Module-local local : Symbol 호출시제한할수있는 Option.

2) Extra Output & List Extra output 은 Output 에서설정된 Format 의실행파일이외에다른실행파일을얻고자할경우사용한다.. 즉,, 한번컴파일후에 2 가지의파일을얻을수있다.. List 는 MAP 파일 (*.map) 수있도록만들어주는설정이다.. C/C++ Compiler 에 List 파일생성옵션과는틀리다.. Linking 이끝난상태에서만생성되며,, Symbol Option 설정에따라서 global / local symbol 포함여부를결정할수있다.. Module summary : module 별메모리사용량표시 Include suppressed entries : 일반 List 파일에서생략된 segment 에관련된모든정보를확인해볼수있다.. Static overlay map : Static overlay system 정보추가

3) Config & Processing Config 는 XCL 파일과 Startup code 의 entry point 등의설정을도와준다.. Linker command file : 기본적으로 iar_arm.xcl 파일을선택이되며,, XCL 파일에는기본적으로,, 사용하는 CPU 설정을비롯하여,, Interrupt Vector 사용영역설정과 ROM 과 RAM 의세그먼트가링크된어드레스번지설정등의내용을포함하고있다.. Override default program entry : Cstartup code 에서정의되어있는 entry point 의위치를재설정해준다.. program_start 라면문제가되지않지만,, 그렇지않을경우반드시변경해주어야만한다.. Search paths : (one per line) 라이브러리파일 path 설정 Processing 은컴파일후사용하지않는 Code Memory 영역의처리를위해사용된다. Fill unused code Memory : [ Disable ] Fill pattern : 사용하지않는공간에임의 Data 로넣는다. Generate checksum : [ Disable ] Size : [ 1/2/4 bytes ] Arithmetic sum 정해진사이즈에따라연속적으로더한결과값저장 ( 자지올림없음 ) CRC16 ( 0x11021 ) CRC 다항식을사용한확인 CRC32 ( 0x4C11DB7 ) CRC 다항식을사용한확인 Crc polynomial : CRC 다항식 ( 직접입력 ) 사용확인 Complement : 1 과 2 의보수선택사용 Bit Order : 상위 (MSB)/ 하위 (LSB) 비트의순서설정.