前言
- 1)前面几节我们学习了 ① ~ ③ 中的解析命令行参数与解析配置文件,接下来我们来看一下剩余的 ④ ~ ⑥ 部分:server_init() 函数、init 命令和 server_loop() 函数:
1 server_init()
-
1)server_init() 的执行逻辑如下:
-

-
2)总的来说,添加了两个 service 到 struct service *services; 链表中:
- (1)tcl_service:应该是与 tcl 语法相关的 tcp 连接,暂时未用到
- (2)telnet_service:创建 telnet 相关的 tcp 连接,主要作用是让我们可以通过 telnet 连接到 OpenOCD 服务端,OpenOCD 支持的所有命令均可以在 telnet 连接后执行,也是我编写芯片烧录驱动的主要测试方式。
2 执行 init 命令
- 1)OpenOCD 通过 command_run_line(ctx, “init”) 执行 init 命令的逻辑如下:

这可能就是所谓的冰山一角吧:看着是一条 init 命令,其实内部执行一系列的初始化操作。
2.1 target init
-
1)target init 命令的大概执行逻辑如下:


最低0.47元/天 解锁文章
2171

被折叠的 条评论
为什么被折叠?



