뚜둔뚜둔✩

판다의 개발일지

TRACE32 6

[PRACTICE] STRing Functions

PRACTICE script에서 문자열(string)을 변형하고 조작하는 기능을 사용할 수 있다. HTML 삽입 문자열에 대한 정보 STRing.CHAR Extract a character syntax STRing.CHAR("",) return type Hex "" 내에서 위치의 character 하나를 반환한다. 만약 가 ""의 길이를 넘어간다면 0xFFFFFFFFFFFFFFFF(=-1)를 반환한다. PRINT STRing.CHAR("abcdef",2.) // 0x63 (=> 'c') STRing.LENgth Length of string syntax STRing.LENgth("") return type Decimal ""의 문자열 길이를 반환한다. PRINT STRing.LENgth("abcdef")..

기타/SCRIPT 2022.06.19

[PRACTICE] 흐름 제어 (Flow Control)

HTML 삽입 미리보기할 수 없는 소스 GOSUB - 서브루틴 format GOSUB [] 로 정의된 서브루틴을 실행한다. 실행되는 서브루틴 블록은 RETURN 명령어로 끝나야 한다. GOSUB function &val ENTRY &result // ... ENDDO function: ENTRY &var // ... RETURN &ret GOTO - 분기 format GOTO 에서 script 수행을 이어간다. 이때, 은 현재 수행 중인 script 내에서 정의되어 있어야 한다. JUMPTO - 분기 format JUMPTO 에서 script 수행을 이어간다. 이때, 은 현재 PRACTICE stack에 위치한 script 내 정의되어 있어야 한다. // script test_sequence.cmm DO..

기타/SCRIPT 2022.05.09

[PRACTICE] 변수 사용

HTML 삽입 미리보기할 수 없는 소스 MACRO PRACTICE script에서는 macro를 변수(variable)로 사용한다. macro는 &로 시작하며 영문자(a-z, A-Z)와 숫자(0-9), 언더스코어(_)로만 구성된다. 또, & 바로 다음으로는 숫자를 사용할 수 없으며, 대소문자가 구분된다. script 내 변수의 scope은 1) PRIVATE, 2) LOCAL, 3) GLOBAL 명령어로 지정된다. PRIVATE macro가 선언된 script / 서브루틴 / 블록 이내에서만 유효하며, script / 서브루틴 / 블록이 끝나면 제거된다. macro가 선언된 블록 내 중첩된 블록에서는 유효하지만, 다른 호출된 script 또는 서브루틴에서는 유효하지 않다. LOCAL macro가 선언된 ..

기타/SCRIPT 2022.05.07

[PRACTICE] Basics

HTML 삽입 미리보기할 수 없는 소스 1) 주석 추가하기 // 또는 ; 추가로 한 줄 주석을 추가할 수 있다. // comments start with // or ; or ; 하지만 ;의 경우, Var command group에서 주석이 아닌 다른 의미로 사용될 수 있기 때문에 //로 주석을 추가하는 것이 더 안전하다. Var.View flags[3];ast.count;i 2) 여러 줄에 나눠 쓰기 어떤 매우 긴 명령은 백슬래시(\)를 사용해 여러 줄에 나누어 작성할 수 있다. APPEND test_protocol.txt\ FORMAT.STRing("&testfunc=&correct_result",50.,' ')\ FORMAT.UnixTime("c",DATE.UnixTime(),DATE.utcOffSe..

기타/SCRIPT 2022.05.06

[PRACTICE] 조건문과 반복문

HTML 삽입 미리보기할 수 없는 소스 조건문 주어진 조건에 따라 수행하는 명령을 제어한다. IF "&testfunc"!="" ( IF Var.VALUE(&testfunc)==&correct_result ( PRINT FORMAT.STRing("&testfunc=&correct_result",50.,' ') ) ELSE ( PRINT FORMAT.STRing("&testfunc failed with &result (&correct_result)",50.,' ') ) ) 이때 조건문의 condition은 TRACE32 syntax를 따라야 한다. 또는, 사용된 programming 언어의 syntax로 condition을 정의할 수 있다. Var.IF (flags[0]==flags[5]) PRINT "Va..

기타/SCRIPT 2022.05.06

VSCode에서 cmm script 작성하기

PRACTICE cmm script를 작성하는데 가장 기본적인 방법은 TRACE32 SW가 제공하는 script 편집기를 사용하는 것이다. 문제는... 여기서 script를 작성하기엔 참 불편한 점들이 많다는 것이다. (느낌상으로는 기본 메모장에서 코드를 작성하는 것과 크게 차이가 느껴지지도 않는다) 그럼에도 불구하고 이 외의 다른 프로그램에서는 PRACTICE script syntax가 제대로 표시되지 않기 때문에 불편함을 감수하고 이 환경에서 작업을 할 수밖에 없다. 하지만...! 알고보니 VSCode에는 Lauterbach에서 배포한 PRACTICE script syntax highlight을 제공하는 extension이 있었다. 이 extension을 활용하면 훨씬 뛰어난 기능이 제공되는 편집기에..

기타/SCRIPT 2022.05.04