本帖最后由 风之山谷 于 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,按回车,再输入 进行监视程序。
但是在安可信套件中运行make monitor来监控的时候会报错,在windows系统下使用Cygwin时会遇到如图情况, - MONITOR
- /bin/sh:winpty: Command not found
- make: *** [ ................................. ] Error 127
复制代码显示winpty命令没有找到,我也很奇怪,于是在官方中找到了一个说明,链接为http://esp-idf.readthedocs.io/en/latest/get-started/idf-monitor.html。
如图在官网中看见已知问题中,可以执行 来修复,然后我们用的是Cygwin程序,里面并不是用pacman来管理程序。于是谷歌之,发现这个是用来把windows powershell中转换成Linux Shell的工具,系统中并没有安装。搜索Cygwin Packages库中,并没有找到winpty,看来官方并不支持winpty。再谷歌之,外国友人也有相同的问题,它们提供了一种解决方法,并且把程序放在https://github.com/rprichard/winpty上。
以下为该程序的说明: - 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,所以可以不用理了。 - mingw64-x86_64-gcc-g++
- gcc-g++
- make
复制代码然后开始把winpty Packages源码包下载下来编译:
1.先把程序git clone下载到本地~/winpty - git clone https://github.com/rprichard/winpty ~/winpty
复制代码
2.下载完成之后,这个winpty packages源码包就放在在~/winpty中
3.在开始编译这个packages之前由于涉及到系统文件,需要用管理员身份运行,具体操作是关闭当面的Cygwin窗口,对着<解压缩目录>\AiThinkerIDE_V0.5\cygwin\Cygwin.bat右键->以管理员身份运行,成功进入Cygwin后,用cd命令跳转到刚刚放winpty packages编译包的地方,比如: 然后对winpty进行配置,输入以下命令: 自动完成配置,如图。
然后输入以下命令进行编译: 等几分钟编译完成,显示下图则安装编译并安装成功了。
如果没有出现成功,出现如下图,则是没有用管理员权限运行Cygwin程序,解决方法是关闭并用管理员权限运行Cygwin。
现在测试一下winpty功能,输入: 即可看见进入了windows系统的powershell,这里简单测试一下加法,输入 此时显示30即功能正常。输入
即可退出windows powershell。此时cd进入待调试的程序根目录,再次运行make monitor,则成功输出,如下图。
|