40 lines
1.6 KiB
Plaintext
40 lines
1.6 KiB
Plaintext
;;; .doomrc --- doom runtime config -*- mode: emacs-lisp; lexical-binding: t; -*-
|
|
;;; Commentary:
|
|
;;; Code:
|
|
(require 'doom) ; be silent, byte-compiler
|
|
|
|
(after! dape
|
|
(add-to-list
|
|
'dape-configs
|
|
`(gdb-dap-openocd
|
|
,@(alist-get 'gdb-dap dape-configs)
|
|
fn (lambda (config)
|
|
(let* ((default-directory (dape--guess-root config))
|
|
(openocd
|
|
;; Run openocd with config files from `openocd-files' property
|
|
(start-process-shell-command
|
|
"openocd" "*openocd*"
|
|
(concat "openocd"
|
|
(mapconcat (lambda (file)
|
|
(concat " -f " (shell-quote-argument file)))
|
|
(append (dape-config-get config 'openocd-files) nil)))))
|
|
probe)
|
|
;; Wait until port is open
|
|
(while (and (process-live-p openocd)
|
|
(not (setq probe (ignore-errors
|
|
(make-network-process :name "openocd port probe"
|
|
:service 3333)))))
|
|
(sleep-for 0.1))
|
|
;; Close probe connection
|
|
(when probe
|
|
(delete-process probe)))
|
|
config)
|
|
openocd-files ["openocd.cfg"]
|
|
:initCommands ["target remote 10.128.5.10:3333"
|
|
"monitor reset halt"]
|
|
:exitCommands ["monitor shutdown"]
|
|
:terminateCommands ["monitor shutdown"]))
|
|
)
|
|
|
|
;;; .doomrc ends here
|