태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

C언어를 이용하여 프로그램을  짠다고 하면 주로 C언어에서 제공하는 키워드와 변수명, 함수명 등을 이용하여 실행 시 어떻게 동작하라고 명령하는 것이라고 생각합니다. TMS320F28x 의 경우 표준 C에서 제공하는 주요 키워드들을 모두 지원하고 있고 몇가지 추가적인 키워드도 제공하고 있습니다. "IER","IFR" 키워드는 마치 레지스터를 다루듯이 글로벌 인터럽트를 온,오프(IER)하고 글로벌인터럽트가 발생했을 때 발생하는 플래그(IFR)를 조작하고 확인할 수 있도록 하는 키워드입니다(예. IER : =0x100;). "interrupt" 키워드는 다른 마이컴에서도 유사한 키워드를 제공하는 경우가 많은데 어떤 함수 이름 앞에 붙어서 그 함수가 인터럽트가 발생하면 진입하는 함수임을 알려 주는 키워드입니다.(예.interrupt void choi(void) {   })  "volatile"은 최적화 옵션을 선택한 경우 컴파일러가 레지스터나 값을 할당하는 조작없이 확인만 하는 변수의 경우 필요없는 것이라 판단하여 제거하는 경우가 있는데, 그 것을 막기위해서 최적화를 하지 말라는 뜻으로 변수 앞에 붙여서 사용합니다.(예. volatile int aaa;)  "asm"은 "asm("   NOP");" 등과 같이 어셈블러를 C언어에서 사용할 수 있도록 도와주는 키워드 입니다. 이미 알고 계시는 키워드와 이 정도 키워드를 이용하시면 TMS320F28x에서 웬만한 프로그램은 다 구현 가능할 것 같습니다.

제가 처음 펌웨어 프로그램을  입문할 때 DIRECTIVE(디렉티브, 지시어, 명령어)와 키워드를 구분하지 못해서 혼돈을 겪었던 것이 생각이 납니다. 디렉티브컴파일 단계에서 컴파일러에게 어떻게 하라고 지시하는 것 입니다. 그런데 저의 경우 키워드와 디렉티브를 마구 혼용해서 프로그램을 짜다 보니 죽도 밥도 안된 적이 있었습니다.  대표 적인 디렉티브로 #define 이 있고,  #if ,#elseif, #endif 디렉티브도 많이 쓰고 있습니다. PRAGMA(프라그마)라는 것은 간단히 쫌 특별한 지시자 정도로 이해하시면 될 것 같습니다. "CODE_SECTION"은 특정 코드를 특정 메모리 영역에 할당하고자 할 때 사용되고, "DATA_SECTION"은 데이터를 특별한 메모리 영역에 할당할 수 있습니다. "CODE_ALIGN"은 코드를 정렬(특정 번지 부터 시작하도록) 시킬 수 있고, 최근 CCS 부터는 MISRA C 규칙(일종의 C언어 프로그램 작성 규칙. 자동차 제어장치쪽에서 필요성이 주창됨)을 체크할 수 있는 디렉티브도 마련된 듯 합니다. 자세한 내용은 TI에서 제공하는 C언어 관련 유저스가이드를 참고하면 되겠습니다.

기본적인 C언어 지식과 지금까지 소개했던 "TMS320F28x C언어"정도만 살펴보시면 C언어 구사에 관한 한 이제 여러분도 TMS320F28x의 전문 프로그래머의 길로 들어선 것입니다.

*참고문서: TI 문서 SPRU514 , “TMS320C28x Optimizing C/C++ Compiler v6.0 User’s Guide”

 

[광 고]

싱크웍스는 TI, TMS320F28x를 시작하시는 데 도움이 되는 체계적인 교육프로그램을 준비하고 있습니다.

펌웨어 설계 강좌(3일, 72만원)-부가세별도

강의 내용

· TMS320F28x 개요 및 개발환경 이해

· CPU 구조

· 링크

· MMR과 칩 초기화

· 리셋 및 부트

· 인터럽트

· 프로젝트 이해와 작성법

· 플래시 부트 및 플래시메모리에서 속도 최적화

시스템 설계 강좌(3일, 72만원)-부가세별도

강의 내용

· ePWM/eCAP/eQEP

. ADC

· DMA

· 통신 (SPI/I2C/SCI/CAN)

. H/W 설계

. FlASH API

모터제어 강좌(1일, 24만원)-부가세별도

강의 내용

.TMS320F28X 소개

.TMS320F28X의 모터제어용 주변회로

.BLDCM 제어기법과 TI 모터컨트롤 라이브러리

.PMSM 벡터제어 전략과 기타 제어 기법들

Posted by yeunhun

댓글을 달아 주세요