查看: 8065|回复: 1

[原创] 7.ESP32-DevkitC教程之Monitor调试

[复制链接]
  • TA的每日心情
    开心
    2019-12-26 22:21
  • 签到天数: 310 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2018-1-19 12:49:18 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 风之山谷 于 2018-1-19 12:52 编辑

    ESP-IDF中make用法还有一种make monitor的用法,可以查看程序是否在运行,显示它的寄存器数据,可以用来调试程序。

    打开Cygwin,即运行<解压缩目录>\AiThinkerIDE_V0.5\cygwin\Cygwin.bat,之后便会出现一个黑框,等一会之后便会出现字符,进入了Cygwin程序的仿Linux Shell界面。进入到要调试的程序的目录,比如说<解压缩目录>\AiThinkerIDE_V0.5\cygwin\home\aithinker\project\esp-idf\examples\get-started\hello_world,在界面中输入cd ~/project\esp-idf\examples\get-started\hello_world,按回车,再输入
    1. make monitor
    复制代码
    进行监视程序。
    3-7.png

    但是在安可信套件中运行make monitor来监控的时候会报错,在windows系统下使用Cygwin时会遇到如图情况,
    1. MONITOR
    2. /bin/sh:winpty: Command not found
    3. make:  *** [ ................................. ] Error 127
    复制代码
    显示winpty命令没有找到,我也很奇怪,于是在官方中找到了一个说明,链接为http://esp-idf.readthedocs.io/en/latest/get-started/idf-monitor.html。
    3-8.png

    如图在官网中看见已知问题中,可以执行
    1. pacman -S winpty
    复制代码
    来修复,然后我们用的是Cygwin程序,里面并不是用pacman来管理程序。于是谷歌之,发现这个是用来把windows powershell中转换成Linux Shell的工具,系统中并没有安装。搜索Cygwin Packages库中,并没有找到winpty,看来官方并不支持winpty。再谷歌之,外国友人也有相同的问题,它们提供了一种解决方法,并且把程序放在https://github.com/rprichard/winpty上。

    以下为该程序的说明:
    1. winpty is a Windows software package providing an interface similar to a Unix pty-master for communicating with Windows console programs. The package consists of a library (libwinpty) and a tool for Cygwin and MSYS for running Windows console programs in a Cygwin/MSYS pty.
    复制代码
    如果要想在Cygwin使用下使用该winptypackages,需要确保已经安装了以下的依赖包,安可信环境的Cygwin已经集成了以下的Packages,所以可以不用理了。
    1. mingw64-x86_64-gcc-g++
    2. gcc-g++
    3. make
    复制代码
    然后开始把winpty Packages源码包下载下来编译:

    1.先把程序git clone下载到本地~/winpty
    1. git clone https://github.com/rprichard/winpty ~/winpty
    复制代码
    1.png

    2.下载完成之后,这个winpty packages源码包就放在在~/winpty中
    2.png

    3.在开始编译这个packages之前由于涉及到系统文件,需要用管理员身份运行,具体操作是关闭当面的Cygwin窗口,对着<解压缩目录>\AiThinkerIDE_V0.5\cygwin\Cygwin.bat右键->以管理员身份运行,成功进入Cygwin后,用cd命令跳转到刚刚放winpty packages编译包的地方,比如:
    1. cd ~/winpty/
    复制代码
    然后对winpty进行配置,输入以下命令:
    1. ./configure
    复制代码
    自动完成配置,如图。
    3.png


    然后输入以下命令进行编译:
    1. make install
    复制代码
    等几分钟编译完成,显示下图则安装编译并安装成功了。
    4.png

    如果没有出现成功,出现如下图,则是没有用管理员权限运行Cygwin程序,解决方法是关闭并用管理员权限运行Cygwin
    3-15.png


    现在测试一下winpty功能,输入:
    1. Winpty powershell
    复制代码
    即可看见进入了windows系统的powershell,这里简单测试一下加法,输入
    1. 10+20
    复制代码
    此时显示30即功能正常。输入
    1. exit
    复制代码
    3-14.png

    即可退出windows powershell此时cd进入待调试的程序根目录,再次运行make monitor,则成功输出,如下图。
    3-17.png

    3-18.png
    回复

    使用道具 举报

    该用户从未签到

    发表于 2018-1-23 10:58:35 | 显示全部楼层
    楼主我可进入了windows系统的powershell,测试一下加法也正常,可是运行make install还是会出现如下内容
    监控失败。Cygwin是以管理员权限运行的
    3-15.png
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则



    手机版|小黑屋|与非网

    GMT+8, 2024-4-23 14:14 , Processed in 0.118663 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.