Customer Support
Your Key to Embedded Innovations
[PRACTICE] PRACTICE 스크립트에서 메모리를 읽거나 메모리에 기록하려면 어떻게 해야 하나요? | |||
Raw Memory 쓰기 PRACTICE 스크립트에서 메모리 위치(또는 메모리 매핑 레지스터에 쓰기)를 작성하는 것은 다음 명령과 함께 작동합니다
Data.Set D:0x1000 %Long 0x12345678 Data.Set D:0x3000 %Long 42.
%Byte 는 8비트를 의미 %Word는 16비트를 의미 %Long는 32비트를 의미 %Quad는 64비트를 의미 3,5,6,7바이트 너비에 대한 형식 지정자도 있습니다. Raw Memory 읽기 PRACTICE 스크립트에서 메모리 위치(또는 메모리 매핑 레지스터로 읽기)를 읽는 것은 PRACTICE 기능과 함께 작동합니다 ECHO DATA.Long(D:0x1000) PRIVATE &myvalue &myvalue=DATA.Word(D:0x4020) ECHO "My value is " &myvalue Data.Set D:0x1000 %Long DATA.Long(D:0x1000)|1 세 번째 예는 주소 0x1000에서 32비트 값의 최하위 비트를 설정하기 위해 읽기-수정-쓰기를 수행하는 방법을 보여줍니다. Variables 쓰기 Var.set Var.set myvar=0x100 Var.set flags=flags|0x10
따라서 여기서는 십진수 값 뒤에 점이 따를 필요가 없습니다. 또한 Training HLL Debugging의 "Change a Variable Value" 장도 참조하세요. Variables 읽기 Var.VALUE() 예시: ECHO Var.VALUE(myvar) WAIT (Var.VALUE(flags)&0x10)==0x10
다른 궁금한 사항은 trace32@mdstech.co.kr로 문의주십시오. 감사합니다. |
|||
[PRACTICE] Dialog 창 내에서 Practice Macro를 사용할 수 있습니까? | |||
Dialog 블록의 시작 부분에 문자 " &"를 추가해야 하며, 그렇지 않으면 Macro가 해당 블록 내에서 확장되지 않습니다. 예시 : DIALOG.view 다른 궁금한 사항은 TRACE32@mdstech.co.kr 로 문의 주십시오. 감사합니다. |
|||
[PRACTICE] TRACE32 PwoerView의 window를 호스트PC 에 저장하는 방법이 있나요? | |||
다음은 TRACE32 window를 파일로
출력할 때 사용할 수 있는 명령어들입니다: B::PRinTer.FILE 및 B::WinPrint 명령을 사용하여 TRACE32 window의
내용을 파일로 출력할 수 있습니다. B::PRinTer.FILE 명령어
사용 예시:
더 많은 사용 예시는 TRACE32 설치 폴더 > pdf >
Ide_func.pdf 에서 확인할 수 있습니다. 다른 궁금한 사항은 TRACE32@mdstech.co.kr 로 문의 주십시오. 감사합니다 |
|||
[PRACTICE] Break.Set /CMD "DO script.cmm" /RESUME 명령어을 사용할 때 "PRACTICE Stack Overflow" 오류 발생 | |||
이 오류는 해당 breakpoint가 실행될 때 발생합니다. /RESUME 옵션은 스크립트 실행 후 프로그램 실행을 다시 시작하지만, 스크립트 실행이 끝날 때까지 기다리지 않습니다. 두 번째 breakpoint가 실행되면 첫 번째 스크립트가 여전히 실행 중인 상태에서 두 번째 스크립트가 시작됩니다. breakpoint가 자주 실행되면 병렬로 실행되는 스크립트 수가 특정 최대치를 초과하고, 이로 인해 "PRACTICE Stack Overflow" 오류가 발생할 수 있습니다. 이를 해결하려면 다음 해결책 중 하나를 사용할 수 있습니다: ● /RESUME 옵션을 제거하고 스크립트의 끝에 Go 명령을 삽입하세요. 이 경우 스크립트가 끝난 후에 실행이 다시 시작됩니다. 하지만 breakpoint가 자주 실행되면 여전히 "PRACTICE Stack Overflow" 오류가 발생할 수 있습니다. ● DO 명령어을 개별 PRACTICE 명령어로 교체하세요. 예를 들어, Break.Set < address > /CMD "DO script.cmm" /RESUME 대신, Break.Set < address > /CMD "" /CMD "" ... /RESUME ● 스크립트 내에서 DO 명령어을 JUMPTO로 교체하세요. 예를 들어: Break.Set < address > /CMD "JUMPTO do_it" STOP do_it: ... Go STOP 또한, PRACTICE 스크립트 내에서 /CMD 옵션 대신에 다음 명령을 사용할 수 있습니다: Break.Set < address > RePeaT ( Go WAIT !STATE.RUN() < break handling > ) 다른 궁금한 사항은 TRACE32@mdstech.co.kr 로 문의 바랍니다. 감사합니다. |
|||
[PRACTICE] 브레이크포인트가 hit 되었을때 cmm script를 실행 시킬 수 있나요??? | |||
아래와 같은 명령어를 통해 breakpoint를 setting하거나 아래 스크린샷과 같이 설정하면 가능합니다. break.set /program /CMD "Do myscript.cmm" 호출된 cmm script의 끝에 "go" 명령어를 추가하여 타겟의 실행을 계속할 수 있습니다. break.set 명령어는 /resume 옵션도 허용하며, /resume 옵션을 추가 혹은 허용할 경우 do myscropt.cmm 명령어가 실행된 후 프로그램 실행을 재개합니다. 주의사항으로, 스크립트를 실행하는데 시간이 오래걸린다면, practice 스크립트가 완료될 때까지 기다리지 않으므로, 사용하지 않는게 좋습니다. |
|||
[PRACTICE] 논리적 조건으로 중단점을 설정 할 수 있나요? | |||
Break.set 명령어에는 /VarCONDition 옵션이 있으며, 이 옵션을 사용하면 설정된 breakpoint에 도달한 후 CPU 가 중지된 상태로 유지되는 조건을 지정할 수 있습니다. (breakpoint를 설정하기 위한 다이얼로그에서 "advanced" 항목을 클릭하면, "Condition" 필드를 찾을 수 있습니다.) Example : 함수 MyFunc에 변수 x==10 및 y==11 옵션으로 breakpoint를 설정합니다. Break.Set MyFunc /VarCONDition (x==10 && y==11) 결과적으로, MyFunc 함수가 실행될 때마다 CPU 가 중지되지만, 조건 "x==10 && y==11"를 만족하지 않으면, 재 실행됩니다. PRACTICE 언어로 Break.Set 명령어에 /VarCONDition 옵션 대신 /CONDition을 사용하여 조건을 지정할 수도 있습니다. 이는 Break.Set 창의 CONDition 필드의 HLL 체크박스를 체크 해제하는 것에 해당합니다. Example : 첫 번째 예제의 동일한 조건으로 다음과 같이 사용할 수 있습니다. Break.Set MyFunc /CONDition (Var.Value(x)==10. && Var.Value(y)==11.) 참고 : PRACTICE의 기본 기수 모드는 16진수이므로 10진수 값을 나타내기 위해 10과 11 뒤에 '온점'을 추가해야 합니다. 그렇지 않으면 0x10과 0x11이 기본적으로 사용됩니다. 다른 궁금한 사항은 TRACE32@mdstech.co.kr 로 문의 바랍니다 감사합니다. |