본문 바로가기

임베디드 개발/TMS320F2838x (C28x)74

CCS ] .out(ELF) 파일에서 섹션 정보 파싱하기 CCS에서 프로젝트를 빌드하면 .out 확장자의 ELF 형식 실행파일이 생성된다. 해당 파일을 파싱하여 섹션 정보를 획득해보자.     CCS 폴더 경로에서 주운 elf.h 파일, 여기서 함수 원형은 무시하고 구조체 정의랑 매크로 상수만 활용하자. 근데 또 여기엔 Elf32_Phdr 정보가 없어서 다른데서 구해왔다. /* * ======== elf.h ======== */#ifndef ELF_#define ELF_ 1/* * ======== Elf32_Handle ======== */typedef struct Elf32_Object *Elf32_Handle;typedef Bits32 Elf32_Addr;typedef Bits16 Elf32_Half;typedef Bits32 Elf32_Of.. 2024. 12. 7.
TMS320F28388D ] 링커커맨드 파일과 컴파일러 섹션 링커커맨드 파일과 컴파일러 섹션에 대한 이해...  Compiler Sections C 코드는 컴파일러를 통해 어셈블리 코드로 변환되고 어셈블리 코드는 어셈블러를 거쳐 오브젝트 파일이 된다. 모든 C 코드는 섹션이라고 불리는 여러 부분으로 분리될 수 있는데 컴파일러는 컴파일 과정에서 C 코드를 분석하여 각 섹션에 들어갈 데이터를 구분한다. 그리고 오브젝트 파일의 구성을 보면 각 섹션별로 데이터가 저장되며 이외에도 변수, 함수 등의 심볼 정보를 가지고 있는 심볼 테이블이 포함된다. 이러한 섹션의 이름에는 .text, .stack, .bss 등 공통적으로 사용되는 것들도 있지만 툴체인마다 섹션의 이름이 약간씩 다르거나 추가적인 섹션이 있을 수 있다. C28x 컴파일러의 섹션은 다음과 같다. Section N.. 2024. 8. 16.
TMS320F28388D ] DAC 겸용 ADC 핀 사용시 주의점 DAC 겸용 채널인 ADCINA0, ADCINA1, ADCINB1의 경우 내부의 50k옴 풀다운이 있다.      해당 채널을 ADC로 사용시 영향성은? 만약 ADC 입력 단에 높은 값의 저항이 있다면 전압분배기를 형성하여 게인 오류를 일으킬 수 있다고 한다.    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/839807/tms320f28075-adcina1-internal-50kohm-pulldown-resistor-question     그리고 데이터시트를 찾아보면 ADC 입력 회로의 소스 임피던스에 대한 언급도 있다. 이건 모든 ADC 채널에 적용되.. 2024. 8. 4.
TMS320F28388D ] Input Qualification TMS320F28388D DSP GPIO 모듈에 있는 Input Qualification 회로는 말 그대로 신호가 유효한가 Qualification 하는 회로이다.  Inpuq Qualification 기능을 사용하면 GPIO 포트로 입력되는 신호를 지정된 횟수만큼 샘플링해서 로직이 모두 일치하는 경우에만 신호 변화를 전달하고 그렇지 않은 경우는 노이즈로 취급해 무시하게 된다.  다음 블락도를 보자. 외부 GPIO 입력 핀에 신호가 전달되면 DSP SYSCLK와 동기되어 Qualification 회로에 전달되고, Qualification 회로는 순간적인 글리치를 필터링하고 내보내는 역할을 한다.   사용자는 샘플 수(GPxQSEL)와 샘플링 주기(GPxCTRL) 파라미터를 설정할 수 있고, 이를 통해 총.. 2024. 7. 2.
ccs 프로젝트 빌드 과정 CCS에서 프로젝트를 Build하거나 Rebuild 할 때 다음의 절차를 수행한다. 1. makefiles 자동생성 프로젝트의 활성 빌드 구성 폴더(디폴트로는 Debug 폴더)에 하나의 makefile과 여러 *.mk파일을 생성한다. makefile: 자동 생성된 *mk file들을 포함하는 메인 makefile 빌드에 참여하는 모든 소스파일은 아래 *.mk 파일에 정의되어 있다. objects.mk subdir.mk subdir_vars.mk 2. gmake를 사용하여 clean (optional) Rebuild Project 또는 Clean Project 선택시 gmake clean 명령을 사용하여 활성 빌드 구성 폴더의 .obj, .pp, .out 파일을 삭제하고, makefile 및 .map 파일.. 2024. 6. 12.
TMS320F28388D ] 다중 ADC 사용시 변환 순서와 동기 다중 ADC 사용시 변환 순서와 동기에 대해 알아보는데 의식의 흐름순으로 작성되었다.  먼저 사전 설명을 하자면 TMS320F28388D 337-Ball ZWT 패키지는 Temp Sensor를 제외하고 총 24채널의 ADC 입력을 처리할 수 있다. 근데 그중에 3개(ADCINA0, ADCINA1, ADCINB1) 채널은 DAC 용도로도 사용된다. 예를 들어 DAC 3채널을 쓰면 ADC는 21채널만 쓸 수 있는거다. DSP의 ADC 모듈은 총 4개가 있다. ADC-A, ADC-B, ADC-C, ADC-D. 그리고 Temp Sensor는 DSP에 내장되어 있고 ADC-A 모듈과 이미 연결되어 있다. TI가 제공한 예제를 사용하면 쉽게 칩의 온도를 읽을 수 있다.      아래 그림은 ADC 모듈 블럭이다. .. 2024. 5. 1.
TMS320F28388D ] Maximum Input Voltage Operating Voltage가 3.3V인 MCU 중 5V tolerant I/O인 경우도 있다는데 얘는 아니다. 일단 Input voltage의 Maximum rating이 4.6V이다.      그리고 참고로 ADC 입력의 경우 정상동작 하려면 VDDA + 0.3V 이하로 유지되어야 한다. 2024. 4. 29.
TMS320F28388D ] 부트핀 구성을 바꾸는 법 & SCI boot 모드 사용시 디폴트 TX/RX핀 말고 다른 핀을 사용하는 방법 TRM에서 부트핀 구성을 바꾸는 방법과 SCI boot 모드 사용시 디폴트 TX/RX핀 말고 다른 핀을 사용하는 방법을 확인해보자.   CPU의 Boot 프로세스 TRM의 Boot flow를 살펴보면 디버거가 연결되어 있느냐에 따라 두가지 종류의 Boot가 있다. Standalone BootEmulation Boot       Emulation Boot 프로세스 먼저 Emulation Boot 일 때는 살펴보면 EMUBOOTPINCONFIG를 읽어 정의된 행동을 하도록 되어있다.       Standalone Boot 프로세스 그리고 Standalone Boot인 경우에는 Zx-BOOTPINCONFIG, Zx-BOOTDEF를 읽도록 되어있는데 부트핀 구성 정보에는 Z2와 Z1 두 그룹이 있다.Z2가 Z1.. 2024. 4. 10.
CCS ] Invalid project path: Missing project folder or file 해결법 .cproject 파일을 열어 해당 경로에 대한 참조를 수동으로 삭제해주면 된다. 관련 TI forum 글 : https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/529029/invalid-project-path https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/912807/ccs-msp430f5659-38-warnings-of-invalid-project-path-after-moving-code-but-compilation-works-fine 2024. 1. 20.
TMS320F28388D ] CCS에서 hex 파일 출력하는법 프로젝트 우클릭 - C2000 Hex Utility Enable 'C2000 Hex Utility' 체크 --memwidth, --romwidth 16으로 설정 출력 포맷은 .hex Output Format Options는 Intel hex 선택 만약 hex말고 bin파일로 출력하려면 내가 올린 다른 글을 참고하면 된다. tiobj2bin, mkhex4bin, hex2000 툴을 사용하여 out파일로부터 bin파일을 생성해내는 방법이다. 2023.04.20 - [DSP, MCU/TMS320F2838x (C28x)] - TMS320F28388D ] CSS에서 bin 파일 생성하는 법, filling a hole with 0xFF not 0x00 위 방법 말고 이미 생성된 hex파일을 bin파일로 변경하려면.. 2023. 12. 28.