Emacs 如何调试单片机(嵌入式 Embedded Debug)

概述 本文讲述如何在 Emacs 进行嵌入式调试, 对 MCU 单片机硬件进行调试(比如: STM, HC 等芯片) 说明 大多数入门单片机调试都是从 Keil, IAR Embedded 之类的 IDE 软件. 由于 IDE 这些软件集成了 调试 功能, 导致不知道 编译 + 调试 是如何进行的. 调试底层逻辑: gdb 进行调试. Emacs 调试单片机 安装必要依赖 GitHub - svaante/dape: Debug Adapter Protocol for Emacs Emacs 安装 dape, 然后根据 dape 说明再安装 cpptools Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer 安装 Arm GCC 工具链, 该工具包含 arm-none-eabi-xxx 等命令行工具. 检查 Arm GCC 是否安装成功, 在终端输入 arm-none-eabi-gdb 看有没有输出. ...

2025 年 04 月 25 日 · 231 words · ISouthRain

Windows 系统无法启动 Docker 容器问题

解决方法: # docker run -it 其余命令 # 示例 docker run -it --name hello -d hello-world 需要使用 -it 参数运行 -i: 以交互模式运行容器,通常与 -t 同时使用 -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用 最近在 Windows 系统安装了 Docker desktop, 遇到了无论如何都无法运行容器, 一启动容器后, 容器就处于 Exited 状态, 无法正常使用.. 在网上搜索了很多相关的文章, 也试过重新安装 Docker, 排查 wsl, hyper-V 虚拟机, 内存虚拟化等等问题, 都是无法运行容器… 整个人都是崩溃的, 为什么一个如此成熟的技术软件和系统, 竟然还有如此奇怪的问题.. 而且网上很多相关的文章, 那么证明很多人都遇到了这问题… 难以想象这究竟浪费了多少人的时间….

2024 年 11 月 17 日 · 52 words · ISouthRain

Emacs 技巧 | 善用翻译

大多数人对于不同语言的翻译功能基本需求如下: 翻译文本阅读 单词读音/音频 输入文本翻译 阅读电子书 大多数人是如何使用这几种翻译的方式呢? 翻译文本阅读 将需要翻译的文本复制到 翻译工具/软件 中, 这过程需要切换不同的软件, 非常繁琐. 单词读音/音频 将需要翻译的单词复制到 翻译工具/软件, 并点击播放音频. 输入文本翻译 将需要翻译的文本复制到 翻译工具/软件 进行翻译, 然后再将翻译结果复制. 阅读电子书 将电子书翻译 缺点是翻译结果比较生硬, 不如一个一个单词翻译准确. 将电子书的翻译单词复制到 翻译工具/软件 进行翻译. 在这些 翻译需求中, 尤其以 输入翻译 和 播放单词音频 在不同 翻译工具/软件 难以达到理想状态. 在下面我将介绍如何使用 Emacs 快速/高效/一体化 进行以上 翻译需求 Emacs 能将以上翻译需求 速率更快/效率更高 我将要使用 Emacs 的两个包实现将这些功能: (Emacs 版的 谷歌翻译)GitHub - atykhonov/google-translate: Emacs interface to Google Translate GitHub - ISouthRain/dict-line: Emacs show Dict . Emacs 显示字典词. 你应该需要学会这两个包的使用… 关于如何使用这两个包, 这是我的配置, 你将这些代码放到 init.el 中即可: ...

2024 年 10 月 13 日 · 433 words · ISouthRain

Hugo 主题 PaperMod 改进(今日诗词)

预览 在博客每个页面底下添加随机 今日诗词 诗句. PaperMod 主题完整代码修改记录 github link: Comparing adityatelange:master…ISouthRain:master · adityatelange/hugo-Paper… 为何这篇文章这么短? 本来是想记录完整的对主题 PaperMod 的修改, 例如: 目录位置放在侧栏 参考链接: Hugo博客目录放在侧边 | PaperMod主题 | Sulv’s Blog 添加 utteranc 评论系统 参考链接: Hugo PaperMod主题添加utterances评论 | 0x4b404ec 页面底下添加 今日诗词 参考链接: 在 MemE 主题页脚添加今日诗词 | 荷戟独彷徨 搜索页面添加 tag 参考链接: PaperMod 搜索页展示系列列表 | loyayz 修改网页字体 参考链接: Hugo + PaperMod搭建技术博客 | Kunyang’s Blog 看见别人已经实现了, 所以我就不重复造轮子了, 我就记录如何添加 今日诗词 PaperMod 主题页面底下添加 今日诗词 修改主题文件: themes/PaperMod/layouts/partials/exten_footer.html 这是默认的: {{- /* Footer custom content area start */ -}} {{- /* Insert any custom code web-analytics, resources, etc. here */ -}} {{- /* Footer custom content area end */ -}} 这是修改后: 今日诗词 ...

2024 年 10 月 12 日 · 163 words · ISouthRain

Emacs Issue

Emacs Issue 前言 这个文章是 记录个人使用 Emacs 相关信息/问题 它可能不适用于所有人 这可能会给遇到相同问题时的 Emacser 有所帮助! 如果你遇到了某些 Emacs 相关问题, 并解决了, 可以在下面 评论区 记录下来, 我会尝试添加到文章当中 Issue Minibuffer 如何换行? C-q C-j 让 Minibuffer 支持使用 拼音 查找 例如在 org-mode 中使用 consult-imenu 命令时, 弹出的内容可以使用 拼音 查找 以下方法本人是使用 orderless, vertico, consult, 三个包配合用的 (use-package vertico :ensure t :hook (after-init . vertico-mode)) (use-package consult :ensure t) (use-package orderless :ensure t :config (setq completion-styles '(orderless basic) completion-category-defaults nil completion-category-overrides '((file (styles partial-completion)))) ;; 对 vertico 进行拼音查找, 全拼的第一个字母, 例如找 配置, 输入 pz 两个字母 (defun completion--regex-pinyin (str) (orderless-regexp (pinyinlib-build-regexp-string str))) (add-to-list 'orderless-matching-styles 'completion--regex-pinyin) ) ;; 如果使用的 小鹤双拼, 可以使用 https://github.com/ISouthRain/pinyinlib.el 仓库, 配置: (setq pinyinlib-use-method 'xiaohe) Windows org-mode 使用 GnuPG(GPG) 加密后无法解密, 加密信息出现 ^M 比如使用 org-crypt 这个包进行 GPG 加密时, 却无法解密 原因是 文件换行符 问题, Windows 系统的默认换行符是 CRLF, 只需将 CRLF 改为再加密就不会出现 CRLF 方法一: 添加函数, 删除 ^M 结尾的信息再进行解密 ;; 解决 ^M 解密问题 (defun freedom-org-decrypt-entry () "移除行尾 ^M(CRLF) 并解密 Org-decrypt Replace DOS eolns CR LF with Unix eolns CR" (interactive) (goto-char (point-min)) (while (search-forward "\r" nil t) (replace-match "")) (org-decrypt-entry)) 方法二: 加密之前 将文件的换行符改为 LF , 例如: C-x <RET> f utf-8-unix <RET> Windows Emacs 使用 Daemon 方式打开文件时, 文件名乱码导致无法打开对应文件 我使用添加以下配置修复 (require 'server) ;; 如果没有启动 daemon server 就启动 (unless (server-running-p) (server-start)) ;; 防止 windows 使用 server 打开中文文件名乱名导致无法打开文件 (when (eq system-type 'windows-nt) (setq locale-coding-system 'gb18030) ;此句保证中文字体设置有效 (setq w32-unicode-filenames 'nil) ; 确保file-name-coding-system变量的设置不会无效 (setq file-name-coding-system 'gb18030) ; 设置文件名的编码为gb18030 ) Org-mode 的 Table 表格没有对齐问题 这个是由于 中文字体 和 英文字体宽度不等宽导致, 设置Emacs使用某些 等宽字体 就可以解决 等宽字体, 两个例子 Iosevka(英文) GitHub - be5invis/Iosevka: Versatile typeface for code, from code. 霞鹜文楷(中文) GitHub - lxgw/LxgwWenKai: An open-source Chinese font derived from Fontworks’… 使用以下配置可以解决, 只有对应某个系统, 就能加载对应Emacs的配置, Emacs 自动识别 这个配置也相当于配置了 Emacs字体相关设置 darwin 属于 Mac 系统 Windows-nt 属于 Windows 系统 gnu/Linux 属于 Linux 系统 (when (eq system-type 'darwin) (setq fonts '("SF Mono" "冬青黑体简体中文")) (set-fontset-font t 'unicode "Apple Color Emoji" nil 'prepend) (set-fontset-font t 'unicode "Hack Nerd Font Mono" nil 'append) (set-face-attribute 'default nil :font (format "%s:pixelsize=%d" (car fonts) 16k))) (when (eq system-type 'windows-nt) ;; (setq fonts '("Iosevka" "霞鹜文楷")) (setq fonts '("Iosevka" "微软雅黑")) (set-fontset-font t 'unicode "Segoe UI Emoji" nil 'prepend) (set-fontset-font t 'unicode "Segoe UI Symbol" nil 'append) (set-fontset-font t 'unicode "Hack Nerd Font Mono" nil 'append) (set-face-attribute 'default nil :font (format "%s:pixelsize=%d" (car fonts) 20)));; 只有 双数 才能 对齐 (when (eq system-type 'gnu/linux) (unless IS-Termux (setq fonts '("Iosevka" "微软雅黑")) (set-fontset-font t 'unicode "Segoe UI Emoji" nil 'prepend) (set-fontset-font t 'unicode "Segoe UI Symbol" nil 'append) (set-fontset-font t 'unicode "Hack Nerd Font Mono" nil 'append) (set-face-attribute 'default nil :font (format "%s:pixelsize=%d" (car fonts) 20)))) (if (display-graphic-p) (dolist (charset '(kana han symbol cjk-misc bopomofo)) (set-fontset-font (frame-parameter nil 'font) charset (font-spec :family (car (cdr fonts)))))) 类似方法有 GitHub - tumashu/cnfonts: emacs中文字体配置工具。可以快速方便的的实现中文字体和英文字体等宽(也就是常说的中英文对齐)。 Ripgrep 无法搜索中文 例如使用以下命令无法搜索中文: consult-ripgrep ripgrep-regexp ;; 解决 ripgrep 无法搜索中文和 consult-ripgrep 无法搜索中文 (setq default-process-coding-system '(utf-8-unix . gbk)) ;; 默认(utf-8-dos . utf-8-unix)

2023 年 05 月 19 日 · 438 words · ISouthRain