# pragma 목록

 

# pragma 지령

용도

# pragma sfr

SFR이름을 C 소스 레벨에서 설명하는

# pragma vect

# pragma interrupt

인터럽트 처리를 C 소스 레벨에서 설명하는

# pragma di

# pragma ei

DI / EI 명령을 소스 레벨에서 작성 하는

# pragma halt

# pragma stop

# pragma brk

# pragma nop

CPU 제어 명령을 C 소스 레벨에서 설명하는

# pragma section

컴파일러 출력 섹션 이름을 변경하여 섹션 배치를 지정하는

# pragma name

모듈 이름을 변경 하는

# pragma rot

로테이트 함수를 사용하는

# pragma mul

곱셈 함수를 사용하는

# pragma div

나누기 함수를 사용하는

# pragma mac

적화 연산 함수를 사용하는

# pragma bcd

BCD연산 함수를 사용하는

# pragma opc

데이터 삽입 함수 사용하는

# pragma rtos_interrupt

RI78V4 (실시간 OS) 인터럽트 핸들러를 C 소스 레벨에서 설명하는

# pragma rtos_task

RI78V4 (실시간 OS) 태스크 함수를 C 소스 레벨에서 설명하는

# pragma ext_func

부트 영역에서 플래시 영역에 함수 호출을

# pragma inline

표준 라이브러리 함수 me mcpy, memset 인라인

【주】 # pragma 이후의 키워드는 대소 문자로 작성할 있습니다

 

# pragma 처리기 명령 목록 RL78 패밀리 컴파일러는 위에 설명 # pragma 전처리 명령어를 지원하고 있습니다.

또한 자세한 내용은 2 이상 차례로 소개합니다. 그러나이 텍스트는

 

# pragma name

 

 

• # pragma rtos_interrupt, rtos_task  

• # pragma ext_func

• # pragma inline 소개하지 않습니다.

# pragma 처리기 명령에 관해서는 설명서를 참조하십시오.

다음 페이지에 CPU 제어명령을 설명하는 # pragma 사용 예를 보여줍니다.

 

 

소스 프로그램 컴파일 결과

 

# pragma 이후의 키워드는 대소 문자로 작성할 있습니다.

그러나 함수에서 사용할 대문자로합니다.

 

CPU 제어 명령의 # pragma 사용 # pragma 이후의 키워드는 대소 문자로 작성할 있습니다.

그것은 다른 # pragma 처리기 명령도 마찬가지입니다.

그러나 CPU 제어 명령에 관해서는 함수 내에서 사용할 때는 대문자입니다.

만약 소문자 함수 이름으로 경우는 CPU 제어 명령에는 배포되지 않고 일반 함수 호출 명령입니다.

 

 

한계

내용

한계

복합 , 반복 제어 구조 선택 제어 구조의 중첩 수준 (, c ase 레이블 수에 따라)

45

조건 내장 중첩 수준

255

1 개의 선언 하나의 산술, 구조체 공용 체형 또는 불완전 형식을 한정하는 포인터, 배열 함수 선언자

12

전체 선언자 괄호로 둘러싸인 선언자의 중첩 수준

591*

전체 괄호로 둘러싸인 식의 중첩 수준

32

매크로 이름의 유효 선두 문자

256

외부 식별자의 유효 선두 문자

249

내부 식별자의 유효 선두 문자

249

하나의 번역 단위의 외부 식별자의

1024* 1

기본 블록에서 선언 가능한 블록 범위 지정된 식별자

255

하나의 번역 단위에서 동시에 정의 가능한 매크로 식별자

32767

하나의 함수 정의의 가인, 그리고 하나의 함수 호출의 실제 인수

39* 1

개의 매크로 정의의 가인

31

하나의 매크로 호출의 실제 인수의

31

하나의 논리적 소스 행의 문자

2048*

하나의개체 크기 (데이터를 나타내는)

65535

포함 파일에 대한 중첩 수준

50

1 개의 s witch 글에 대한 case 레이블 (중첩되는 경우 그것도 포함)

257

1 컴파일 단위의 소스

65535*

함수 호출 중첩

40*

단일 구조 또는 단일 공유 체내의 멤버

256

단일 열거 형의 열거 정수의

255

단일 구조체 선언의 줄의 구조 또는 공용체 정의 중첩 수준

15

초기화 자식 요소의 중첩

15

1 소스 모듈 파일의 함수 정의

4095

매크로 중첩

200

포함 파일 경로 지정

64

【주】 * 붙어있는 값은 보증 값이며, 이상의 값으로도 가능한 경우도 있지만, 동작은 보증 되지 않습니다.

 

 

한계 RL78 패밀리 컴파일러에도 한계는 존재하지만, 10k 행이나 20k 행이 소스 프로그램을 입력하지 않으면 한계를 만지는 것은 거의 없습니다.

한계 값은 특별히 신경 쓰지 않아도 괜찮다고 생각합니다.

 

 

1.2 빌드 도구의 옵션 시스템 전체에 대한 빌드 도구의 옵션 설정

 

시스템 전체에 대한 빌드 도구의 옵션 설정 시스템 전체에 대한 빌드 도구의 옵션 설정은 프로젝트 트리 CA78K0R (빌드 도구)에서합니다.

원하는 도구를 클릭 일반 옵션을 포함하여 도구마다 탭이 나누어 있기 때문에, 필요한 도구를 선택하고 카테고리별로 옵션을 설정합니다.

또한 기본 옵션 설정은 일반적으로 표시합니다. 만약 굵게 표시가 있으면, 그것은 기본 옵션 설정이 아님을 의미합니다.

또한 설정은 드롭 다운 메뉴 또는 더블 클릭으로 설정을 변경할 있습니다.

 

 

빌드 설정 시스템을 만드는 동안 특정 소스 파일에 대해서만 컴파일 옵션을 설정해야합니다.

소스 파일 개별적으로 컴파일 옵션을 설정하는 경우, 목적의 소스 파일의 "빌드 설정"탭을 선택하고 "빌드"카테고리에서 "개별 컴파일 옵션 설정"항목을 "" 전환합니다.

 

 

개별 컴파일 옵션 설정 , "개별 컴파일 옵션"탭은 개별적으로 컴파일 옵션을 설정합니다.

또한 앞의 페이지의 슬라이드에있는대로 개별 컴파일 옵션이 설정되어있는 파일의 아이콘에 녹색 체크가 들어갑니다.

따라서 프로젝트 트리의 아이콘을 보면 개별 컴파일 옵션이 설정되어있는 원본 파일은 쉽게 확인이 있습니다.

 

 

1.3 이동성에 관련된 컴파일 옵션 비트 필드 멤버 할당, 구조체 멤버 포장

 

비트 필드 멤버 할당, 구조체 멤버 포장 비트 필드 멤버 할당 구조체 멤버의 포장에 관해서는, 이식성을 고려하여 언어 사양을 변경할 있습니다.

비트 필드의 멤버 할당에 관해서는 이미 1.1 절에서 소개 된이기 때문에, 다음 페이지에 "구조체 멤버를 포장하는"옵션 (-rc) 설정했을 멤버 할당을 보여줍니다.

 

 

 

 

구조체 멤버의 포장 효과

포장 구조체 비트 필드는 멤버 구성에 관계없이 정렬 조건이 1이됩니다.

그러나 전체 크기가 2 바이트 이상의 경우 구조체의 선두는 2 바이트에 배치됩니다.

따라서 어떤 기준에 의해 규정 형식을 만들 사용하십시오.

그러나 정렬 조건 2 바이트와 4 바이트 데이터 버스 액세스가 분리되기 때문에 성능을 저하시킬 있기 때문에,

어떤 표준에 의해 규정 데이터 형식 선언에만 사용할 것을 좋습니다.

 

 

char 형의 부호

 

비트 필드 멤버 할당, 구조체 멤버 포장 이외에도 처리 정의 항목에서는 부호 지정되지 않은 char 형의 역할을 수정하는 것이 가능합니다.

"char 형을 unsignedchar 간주"옵션 (-qu) 지정하여 부호 지정되지 않은 char 형은 unsigned char 형으로 처리 있습니다.

그러나 상위 옵션 "昀適"옵션에서 "고급" 선택했을 때만 지정할 있습니다. 기본 "昀適"옵션 설정에서 변경할 없기 때문에주의가 필요합니다.

또한 RL78 제품군의 경우 char 형의 부호는 코드 효율성과 속도 등의 효율성으로 이어지는 중요한 항목이기 때문에이 옵션은 "昀適" 범주에 배치되어 있습니다.

자세한 내용은 3-8 페이지에서 소개합니다.

 

 

 

'공부 > RL78' 카테고리의 다른 글

RL78 컴파일러 사용 5  (0) 2013.04.05
RL78 컴파일러 사용 4  (0) 2013.04.05
RL78 컴파일러 사용 2  (0) 2013.04.05
RL78 컴파일러 사용 1  (0) 2013.04.05
RL78 컴파일러  (0) 2013.04.05

+ Recent posts