본문 바로가기

전체 글356

Aurix MCMCAN 모듈 1 2023. 7. 18.
임베디드 mcu 최적화 코딩 팁 구초체 변수 사용시 체인 최소화하기 var->mem1-->mem2 이런거 루프 내에서 반복 활용되는 변수는 전역이나 static 사용하지말것. 필요하다면 함수 앞쪽에서 지역변수 선언후 전역값 받아와서 활용하고. 다시 그 지역변수값을 전역변수에 대입하는 형태로 활용 if else나 switch case 안쓰고 배열 인덱스 활용하면 조건비교 연산 안해도 되서 cpu연산 절약가능 2023. 7. 17.
SW 개발자가 알아야 P-MOSFET , N-MOSFET 동작 원리 N - MOSFET : Gate - Source 간 전압이 + Voltage 여야함 (gate 전압이 source보다 높아야함) 그러면 전류가 D -> S로 흐른다 P - MOSFET : Gate-Source간 전압이 - Voltage 여야함 (gate 전압이 source보다 낮아야 함) 그러면 전류가 S -> D로 흐른다 아래는 N-MOSFET Data Sheet 예시이다. VGs(Th) 라는 값이 있는데 1~3V 인걸 볼 수 있다. 도통 되려면 GPIO High를 하면 될 것임 아래는 P - MOSFET 예시이다 2023. 7. 16.
파이썬 빌드진행률 출력 - rich progress Progress Display — Rich 13.4.2 documentation Rich 라이브러리 중에 Progress에 대한 공식 설명 페이지 링크 파이썬의 rich 라이브러리는 cmd 에 출력되는 내용에 색깔을 넣거나 간단한 이미지를 넣거나 하는 라이브러리다. 근데 제공되는 내용중에 progress 라는 클래스가 있는데 이걸활용하면 어떤 작업을 했을때, 소요시간을 실시간으로 볼 수 있고 진행률을 막대형태로 그려주기도 한다. spinner라는것과 함께 쓰면 동그란 이미지가 돌아가는 모습으로 출력되서 동적인 느낌을 줄 수도 있다. 개요. 출력결과에 다양한 것을 나타낼 수 있는데, Progress 변수 생성할 때 아래 생성자에 무엇을 넣냐에 따라 결과물이 달라짐. 동작 예시1) 소요시간만 측정해서 쭉 보.. 2023. 7. 13.
파이썬에서 배치파일 실행 - subprocess https://m.blog.naver.com/sagala_soske/222131573917 다양한 방법이 있지만 subprocess를 사용하는 방법이 있다.import subprocess cmd = f"test.bat -option" process = subprocess.Popen(cmd ,shell=True)위 코드를 실행하면 cmd 라고 적혀있는 문장을 우리가 cmd 창을 열어서 적는것과 똑같은 효과가 나타난다. 한편 Popen 함수는 여러가지 파라미터들이 더 있으니 적절하게 활용하면 좋다.cmd 실행후 출력되는 문장 컨트롤import subprocess cmd = f"test.bat -option" process = subprocess.Popen(cmd,stdout=subprocess.PIPE, s.. 2023. 7. 13.
VsCode - Task 활용하기 배치파일의 shell 커맨드를 유저가 임의로 미리 만들어놓고, VsCoed 상단에 Task로 등록을 해서 실행시키는 기능이 있다. 예를 들어서 아래와 같이 매칭을 시켜놨다면 Task1 : echo Test1 Task2 : echo Test2 Task3 : echo Test3 Vs Code 상단 메뉴에서 Terminal -> Run Task를 클릭하면 Task1 ,Task2, Task3 라고 Task를 선택할 수 있는 메뉴가 나온다.여기서 내가 Task1을 선택하면 내가 위에서 매칭해놓은 shell cmd가 echo Test1 이니까 cmd 창에서 내가 echo Test1이라고 입력하는 것과 똑같은 효과를 갖게 된다.짧은 커맨드라면 저런식으로 바로 매칭시켜도 되지만, 시킬려는 명령의 내용이 많다면 별도의 .. 2023. 7. 7.
C2000 링커와 섹션 (.cmd파일) https://software-dl.ti.com/ccs/esd/documents/c2000_c28x-compiler-understanding-linking.html C2000의 IDE인 CCS (Code Composer Studio)에서는 링커스크립트 파일의 확장자가 특이하게도 .cmd이다. >> 빌드결과 생성 된 섹션을 적절히 쪼개서 할당하도록 함 > 는 섹션을 쪼개지않고 선언된 메모리 중에 가능한곳 찾아서 할당 2023. 6. 25.
C2000 multicore 개요2 IPC https://software-dl.ti.com/C2000/docs/C2000_Multicore_Development_User_Guide/ipc_communication.html 굳이 내 설명안봐도 위 링크에 잘쓰여있음 IPC는 코어 간 통신을 위해 존재하는 별도의 패리펄럴인데 Inter Processor Communication의 약자다.CPU간에 서로 정보전달을 위한 플래그 레지스터가 위와 같이 5개 존재함. 이 레지스터는 CPU마다 별도로 존재함. 각 레지스터는 32Bit니까 각각의 레지스터 내부에는 32개의 플래그가 존재함. 이 플래그들은 유저가 적절히 활용하면되는데 CPU1이 CPU2에게 정보전달하는 예시를 생각해보자. CPU1이 CPU1의 IPCSET 레지스터 플래그를 Set하면 , CPU2의.. 2023. 6. 19.
C2000 Multicore 개요 1 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은 .. 2023. 6. 16.