Как сделать из этой инструкции оболочку терминала Linux? - PullRequest
0 голосов
/ 14 мая 2019

Я пытался создать сценарий .sh, используя инструкции для запуска на Raspberry Pi для Atmel ATSAMD51G19A:


  1. Запустить openocd в новом окне терминала:

sudo openocd -f openocdcfg.cfg

OpenOCD должен продолжать работать, если он успешно подключен к устройству.

Во втором окне терминала выполните следующее:

gdb-multiarch AtmelStart.elf

Введите их в gdb (скажите «да» при появлении запроса):
target remote :3333
lo 
file User.elf
lo
mon reset

Теперь на устройстве отображения должен быть запущен код ncdisplay.


Теперь у меня нетпроблемы перепрошивки прошивки на микроконтроллер Atmel.У меня есть проблемы только при создании части 3 скрипта .sh.Итак, вот как выглядит мой сценарий для части 3

(gdb) -ex target remote :3333
(gdb) -ex lo
(gdb) -ex file User.elf
(gdb) -ex y
(gdb) -ex y
(gdb) -ex lo
(gdb) -ex mon reset
(gdb) -ex q

Ни одна из команд, перечисленных выше, не будет выполняться в gdb в терминале .Я также не уверен, как включить «у» для «да» в GDB при создании сценария.Терминал просто бездействует, ожидая, пока пользователь введет команду.

Я все еще много изучаю о Linux и Debian / Ubuntu.Кроме того, я впервые работал с GDB.Спасибо за любую помощь.

1 Ответ

0 голосов
/ 15 мая 2019

GDB принимает аргумент командной строки -x, который позволяет передавать набор команд для выполнения, подробнее см. https://sourceware.org/gdb/current/onlinedocs/gdb/File-Options.html#File-Options.

Таким образом, вы можете поместить свои команды GDB в отдельный файл (назовем его cmd.gdb), а затем выполнить gdb-multiarch -x cmd.gdb AtmelStart.elf.

Если GDB обрабатывает команды из командного файла, то он примет yes в ответ на запросы да / нет, поэтому GDB не остановится.

Если вы хотите использовать -ex, попробуйте добавить эту команду в начало списка -ex 'set confirm off' это должно остановить GDB, задавая вам вопросы «да / нет».

...