상세 컨텐츠

본문 제목

[TMS320F28388D] SYS/BIOS 2부 - Task 생성하기

TMS320F28388D 공부

by Zin9 2023. 8. 18. 22:08

본문

728x90

 

 

[TMS320F28388D] SYS/BIOS 1부 - 인트로, 프로젝트 생성하기

지난 번에 FreeRTOS를 소개했듯이 현업에서 개발하다보면, RTOS를 사용하게 되어있다. 지난 시간에는 CCS 프로젝트로만 만들었지만, 이번 시간부터는 TI-RTOS인 SYS/BIOS를 사용한다. 왜 SYS/BIOS를 사용하

zin9.tistory.com

 

 

[TMS320F28388D] SYS/BIOS 3부 - Swi 생성하기

[TMS320F28388D] SYS/BIOS 2부 - Task 생성하기 [TMS320F28388D] SYS/BIOS 1부 - 인트로, 프로젝트 생성하기 지난 번에 FreeRTOS를 소개했듯이 현업에서 개발하다보면, RTOS를 사용하게 되어있다. 지난 시간에는 CCS 프

zin9.tistory.com

 

 

이번 시간에는 Task를 2개 생성한다.

TaskA에서는 LED1를 200ms 마다 토글하고 TaskB에서는 LED2를 500ms 마다 토글하도록 만들어본다.

 

프로젝트를 만들면 기본 코드로 태스크가 생성되어있다.

하지만, main.c에 코드가 많으면 가독성이 떨어지지 않는가?

*.cfg 파일을 통해 main.c에 코드를 줄일 수 있다.

 

자, main 함수는 그림 1처럼 간단하게 만들었다.

<그림 1. main.c 간략화>

 

app_CPU1.cfg 파일을 열어주자.

SYS/BIOS → Scheduling → Task → Instance 에서 Task를 추가한다.

task0은 priority를 1로, task1은 priority를 2로 한다.

숫자가 낮을수록 우선순위가 높다.

우선 순위가 같으면 서로 번갈아가면서 실행될 것이다.

<그림 2. Task 사용자 설정 사용>

 

<그림 3. Task 생성>

 

나중에 빌드 에러가 발생하면 그림 4처럼 Heap 사이즈를 늘려준다.

SYS-BIOS - SYSTEM OVERVIEW에서 boot 메뉴에 들어가면 나온다.

<그림 4. Heap 사이즈>

 

자 이제, 코드를 작성하기 전에 라이브러리 설정을 바꿔줘야 한다.

방법은 있을테지만, 필자는 잘 되지 않는 면이 있었다.

그림 5처럼 바꿔줘야 한다.

이전 글에서는 전부 C2000의 경로의 폴더를 참조했지만, 에러발생으로 폴더를 복사해서 붙여 넣었다.

<그림 5. 프로젝트 라이브러리 참조 변경>

 

 

폴더 전체를 복사하면서 바꿔줘야 하는 점은 다음과 같다.

1. common 폴더의 cmd 폴더를 삭제하고, targetConfigs 폴더를 그림 5처럼 바깥으로 복사한다(편의상).
2. headers 폴더의 cmd 폴더를 삭제한다.
3. driverlib 폴더의 ccs 폴더를 삭제한다.

각 폴더의 경로는 다음과 같다.

C:\ti\c2000\C2000Ware_5_00_00_00\driverlib\f2838x\driverlib

C:\ti\c2000\C2000Ware_5_00_00_00\device_support\f2838x/common

C:\ti\c2000\C2000Ware_5_00_00_00\device_support\f2838x/headers

 

그리고 복사해온 common 폴더에서 지워야 할 파일이 있다.

- cm.h

- driverlib_cm.h

- f2838x_codestartbranch.asm(삭제 또는 우클릭 후 Exclude from Build)

- f2838x_swprioritizedpievect.c(삭제 또는 우클릭 후 Exclude from Build)

- startup_cm.c(삭제 또는 우클릭 후 Exclude from Build)

 

다음으로 common/include/f2838x_globalprototypes.h 를 열어서 그림 6, 7과 같이 변경한다.

<그림 6. f2838x_globalprototypes.h 변경 1>
<그림 7. f2838x_globalprototypes.h 변경 2>

 

마지막으로 프로젝트 속성을 그림 8과 같이 바꿔주자.

<그림8. 프로젝트 속성 변경>

 

이렇게 설정하면 경고는 뜨지만 에러는 없을 것이다.

만약, 에러가 있다면 스스로 해결해보자..

 

 

다음으로 디버깅 모드에 진입해보자.

그림 9처럼 벌레 모양을 클릭하고, CPU1만 선택한다.

<그림 9. 디버깅 모드 진입>

 

이렇게 되면 LED가 번갈아가면서 토글되는 것을 볼 수 있다.

 

 

 

GitHub - Zin9s/TMS320F28388D

Contribute to Zin9s/TMS320F28388D development by creating an account on GitHub.

github.com

 

728x90

관련글 더보기