читать значение регистра в переменную - например, место управления ПК

Цель состоит в том, чтобы проверить, остановился ли мой контроллер в правильном положении.

Я использую tcl-скрипт. Команда reg pc выводит значение регистра pc на консоль. Итак, теоретически следующая команда должна хранить что-то в переменной.

set x [ reg pc ]

Но результирующая переменная x остается пустой.

Как я могу получить значение регистра и сохранить его в переменной?


person Cutton Eye    schedule 20.02.2020    source источник
comment
reg внешняя команда или внутренняя proc?   -  person Hai Vu    schedule 21.02.2020


Ответы (2)


Вроде непростая вещь. reg pc ничего не возвращает ... Зачем вообще? ^^ было бы полезно -.-

Однако этот работает с уважением к списку рассылки!

set real_pc  [lindex [ocd_reg pc] 2]

# following executed returns the pc at (here) 0x1FC
ocd_reg pc
# returns: "pc (/32): 0x000001FC "

# Now I can check for my pc in tcl =)!
if { $expected_pc == $real_pc } { \
    echo "reg pc is correct! at $real_pc"
}

Мне кажется, что строка разделена на 3 части. Взятый фрагмент 2, счет начинается с 0. В tcl все является строкой. Так что это работает!

person Cutton Eye    schedule 20.02.2020

Вам нужна команда exec:

set x [exec reg pc]

Команда exec выполняет команду reg pc и возвращает результат.

person Hai Vu    schedule 20.02.2020
comment
спасибо за быстрый ответ. Я получаю в этой строке следующую ошибку: Error: ERROR: Invalid Argument/Option - 'pc'. ... reg pcwithout sorounding работает нормально. идея? - person Cutton Eye; 20.02.2020
comment
pc - недопустимая опция для команды reg. Это не имеет ничего общего с TCL. - person Hai Vu; 21.02.2020