본문 바로가기
임베디드 쌩초보 공부/TI - C2000 MCU

C2000 Multicore 개요 1

by 존버매니아.임베디드 개발자 2023. 6. 16.
반응형

https://software-dl.ti.com/C2000/docs/C2000_Multicore_Development_User_Guide/index.html#

위 링크에 설명 잘돼있음.

기본적으로 특이사항은 TI는 CPU 번호를 붙일때 CPU0 부터 시작하지 않는다.
그러므로 멀티코어의 경우 각각 CPU1 , CPU2라고 지칭한다.

또한, CCS나 Sysconfig에서 프로젝트를 만들때 CPU별로 별도의 프로젝트를 생성한다. 따라서 빌드도 CPU 별로 별개로하고, Output 파일도 별개로 존재한다.
그러니까 다운로드도 각각 해줘야한다.


대부분의 패리펄럴들은 CPU1과 CPU2에서 모두 컨트롤이 가능한데, 그렇다고 둘다 동시에 사용 가능한건 아니고 각각 제어 주체를 정해줘야한다.
예를 들어 ePWM1은 CPU1이 컨트롤하고 ePWM2는 CPU2가 컨트롤 하는 식으로 할당을 해줘야한다.
만약 할당되지않은 CPU가 해당 페리펄럴을 컨트롤 하려고 시도하면, 컨트롤이 적용되지 않는다. 쓰기는 적용이 안되고 읽기도 그냥 0 이 읽힌다. 근데 특정 패리펄럴은 read는 허용한다.
(Ex. ADC Result)

CPU별로 각자 사용하는 로컬램, CPU 모두가 사용가능한 GS 램이 있다. GS는 Global Shared의 약자이다.
근데 이 메모리도 패리펄럴과 비슷하게 어느 CPU가 컨트롤 할 건지 제어권은 정해줘야한다.

한편, GS 램 외에도 CPU간에 정보전달을 위해 사용되는 MSG RAM이 존재한다.
CPU 1 To CPU2 Msg Ram
CPU 2 To CPU1 msg Ram
이런식으로 존재한다.
전자는 Cpu1은 write read 모두가능. CPU2는 Read만 가능

후자는 그 반대이다.


IPC 라는 패리펄럴이 별도로 존재한다.
Inter Processor Communication의 약자로 코어간에 정보전달을 목적으로 사용된다.



반응형