전체 글291 T32 멀티코어 디버깅 명령 System down 상태에서 수행해야 함 core.number 3 코어갯수 셋팅(예시의 경우 3개 셋팅)core.list셋팅한 코어목록 나열됨 여기서 마우스 더블클릭해서 디버깅하려는 코어 선택하면 된다. 2023. 5. 12. NVM Write All 그리고Changed State Nvm_WriteAll 이라는 함수는 ECU Shutdown 시퀀스에서 불리는 함수로, 제어기가 shutdown 되기전에 여러가지 nvm data를 write 한다. 이 때 모든 nvm을 싹 다 write 하는건 아니고 write all 대상에 포함되는 블록만 한다. 그리고 그 중에서도 블록의 state가 Changed 인것만 write 한다. 해당 state를 CHANGED 로 변경하는 함수가 SetRamBlockStatus 함수인데 이걸 호출해서 write 될지말지를 정한다. 근데 알고보니 SetRamBlockStatus 함수호출 이외에도 State를 Changed로 변경하는 case가 여럿있었다. 정확한 내용은 Autosar sws 표준문서에 나와있는데 그 중에 하나가, nvm read 했을때 De.. 2023. 5. 4. T1 F28xx 인터럽트 처리 관련 꼭 알아야 할 유의사항! 페리펄럴 인터럽트가 한번 발생되고나서 그 뒤에도 인터럽트를 계속해서 발생시키고 싶다면 ISR 마지막에 PIE그룹의 Ack를 유저가 클리어해줘야 한다. 또한 대부분의 패리펄럴들은 유저가 별도로 패리펄럴에서 발생된 인터럽트 플래그를 clear 해줘야 다음 인터럽트도 발생이 가능하다. 그래서 유저 ISR에서 보통 마지막에 해당 패리펄럴의 인터럽트 플래그를 Clear하는 코드와 PIEACK를 지우는 코드를 넣어서 마무리한다.인터럽트들의 우선순위가 유저 configure 하지 않고 사전에 고정되서 정해져있다. 레퍼런스 매뉴얼에서 확인이 가능함. 그룹이라는 개념이 있다. 각각의 인터럽트는 하나의 그룹에 속한다. 그룹간에도 우선순위가 존재한다. Interrupt Status Flag , En.. 2023. 4. 21. 소스트리 원격 브랜치 새로고침 메뉴 > 리포지토리 > fetch > check prune tracking branches no longer present on remote 2023. 4. 12. TI C2000 MCU 개발환경 개요3 최적화옵션 TI사에서 제공하는 C2000 ware 함수 내부에는 디버깅 목적의 코드가 들어가있다. 근데 이건 개발과정에서만 쓰면 되는건데 이게 들어가있어서 코드 실행속도가 느려지게 된다. 그래서 이걸 빌드 할 때 빌드에서 제외시킬 수 있도록 조치를 해놨다. 해당 디버깅코드는 #ifdef DEBUG 라는 문장으로 묶여있기 때문이다. 그래서 DEBUG를 define하지않고 빌드하면 된다. 근데 CCS 툴의 디폴트 빌드 컨피규레이션을 보면 Predefinesymbol 쪽에 DEBUG가 이미 Define 되어있다. 이부분을 삭제하거나 DEBUG가 아닌 다른 단어로 수정해서 빌드하면 된다. 그리고, 디폴트 프로젝트의 경우 컴파일러 최적화 옵션이 제대로 셋팅이 안돼있다. 이 부분 감안해서 적절한 레벨로 선택해주면 코드 사이즈.. 2023. 4. 11. TI C2000 시리즈 PWM 유용한 기능들 LINK 기능이 있다. 간단히 예를 들면 Pwm1 의 Time Period 레지스터에 값을 셋팅하면 그와 동시에 자동으로 PWM2 , PWM3 , PWM4의 레지스터도 셋팅 시킬 수 있는 그런 기능이다. Period 관련 레지스터, Duty 출력관련 레지스터 등 다양한 레지스터에 링크 기능적용이 가능하다. pwm 타이머 레지스터 동기화 pwm 의 syncin 이라는 신호를 입력 받아서 해당신호가 발생했을때 타이머 값을 지정된 값으로 셋팅 할 수 있다. syncin에서 선택 가능한 소스가 몇가지 있는데 대표적인건 pwmsyncout 신호이다. 이것은 다른 pwm이 출력하는 syncout 신호인데, 예를 들면 해당 pwm의 타이머값이 0에 도달했을때 발생시킬 수 있다. 만약 pwm1의 syncout신호를 타.. 2023. 3. 28. TI c2000 시리즈 Adc 컨셉 하나의 mcu에 여러개의 Adc 모듈이 있고 , Adc 모듈 안에 16개의 SOC 가 있다. SOC에서 셋팅하는 항목은 어떤 Adc pin(ch)인지, 컨버전 트리거 소스, sampling time 이다. 그룹으로 묶어서 adc 핀들을 할당하고, 그룹단위로 컨버전하는게 aurix 컨셉인데 c2000은 핀마다 제 각각 트리거소스를 셋팅하고, 트리거 요청받은 채널들끼리 arbitration을 어떻게 할건지 정하는 컨셉이다.트리거 소스 종류 SOC마다 트리거소스를 각각 셋팅하는건 알겠고 그래서 트리거소스 어떤것이 있냐면 종류가 굉장히 많다. 기본적으로 SW로 요청할 수 있고 그외 다양한 페리펄럴으로 부터 신호를 받는다. ePWM으로 부터 받을수도 있고, gpio로 부터 받을수도 있다. 그 외에도 소스 종류가 .. 2023. 3. 21. TI C2000 시리즈 DMA 6개의 DMA 채널이 존재하고 모두 독립적으로 configure하여 사용. 6개 채널중 5개는 우선순위가 동등한데, 채널1번만 우선순위를 높게 설정이 가능함 각 채널마다 DMA Transfer를 trigger하는 소스를 설정하게 돼있음. (ex. ADC 인터럽트 시그널) (혹은 GPIO로 부터 트리거 받을 수도 있음) 이러한 페리펄럴으로부터 트리거 받는 것 외에 SW적으로 트리거하는 것도 가능함 DMACHSRC 레지스터에서 트리거소스를 선택. 2023. 3. 18. TI C2000 MCU 개발환경 개요 TI는 STM , 인피니언, NXP 같은 반도체회사이고 얘네가 만드는 수 많은 MCU 제품군중에 하나가 C2000 시리즈이다. C2000 시리즈에 속하는MCU도 종류가 굉장히 다양하다. 암튼 개발환경은 크게 3가지가 필요하다. 컴파일러 및 IDE = CCS(Code Composer Studio) TI 에서 제공하는 Sw 라이브러리들 (C2000Ware 라고 부른다.) SysConfig - MCU와 관련된 이런저런 셋팅을 GUI 로 셋팅하면 Code Gen 해준다. 생성된 Code는 주로 C2000ware에 구현되어있는 함수들을 사용한다. CCS, C2000Ware, Sysconfig 모두 TI 사 홈페이지에서 다운로드가 가능하다.※ 참고로 c2000ware 에서 제공되는 함수와 sysconfig 툴 사용.. 2023. 3. 17. 이전 1 ··· 7 8 9 10 11 12 13 ··· 33 다음