기존 잘 돌아가던 프로젝트 기준으로 CLA 설정하고 있는데 이해할 수 없는 문제들이 발생함.
문제들은 죄다 illegal_isr로 막히는상태
1) initPWM 해줄 때, 전처리 된 변수+함수 인풋 변수가 아닌 해당 c파일 내부에서 선언된 변수 사용해서 설정할 경우 illegal_isr 걸림
#define TEST = 1000
ePWM1.TBPRD = TEST/2 TEST/3 (해당 연산 결과가 소숫점으로 나와서 오류인건지, 아니면 pwm 함수 input 이 아닌 변수를 썼을 때 오류가 뜨는건지 확인하기)
ePWM1. dbred = test (위와 마찬가지, 처음엔 메모리 초과 관련 문제일 거라고 생각했는데 그건 아님, 변수 타입같은거 변경해가면서 비교해보기)
아니면 clatask 쪽에 epwm 사용 설정을 해둔 상태라면 함수 input 변수들도 다 타입 맞춰줘야하는 문제인가? (Uint16_t)
2) main함수 for문에 ePWM AQCSFRC 설정하면 illegal_isr 걸림, CLATASK에 설정하면 안걸림
왠지모르겠음. 기존 프로젝트랑 비교했을때 달라진건 링커커맨드로 메모리 설정한 거 밖에 없는데
LS0LS1 혹은 메세지 영역에 aqcsfrc 쓴거랑 관계가 있나??
3) main 함수 for문에 TBPRD 값 설정할 때 clamsg 에 지정하지 않은 변수 쓰면 illegal_isr
main 함수 (CPU쪽) 인데 clamsg 변수랑 무슨상관이지.
4) Ls0LS1을 cla data 영역으로 설정했을떄 cpu에서 접근이 가능하다면 (2837x에는 레지스터 설정해주면 가능함)
굳이 cpu<->cla msg ram을 설정할 이유가 있을까? (TI Powersuite 예제들은 이렇게 함)
'TI C2000' 카테고리의 다른 글
28377d CPU1, CPU2 간 변수 공유 (0) | 2021.11.03 |
---|---|
TI C2000 - 28377D CLA 공부 Part 1. CLA 특징 (0) | 2021.09.21 |
28377d - CAN 예제 (loopback) (0) | 2021.09.09 |
TI C2000 28377D 모듈 공부 (0) | 2021.09.08 |
댓글