Win可执行运行但在Cygwin命令行上调用命令停顿

时间:2012-08-13 20:14:39

标签: bash windows-7 makefile cygwin

我正在为TI芯片重建闪存加载程序实用程序,并且正面临一个影响我工作流程的小问题。我正在使用64位Win7 PC并使用make on cygwin bash shell重建该实用程序。 make和下面的cygwin版本号。

$ make -v
GNU Make 3.82.90
Built for i686-pc-cygwin
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

$ uname -a
CYGWIN_NT-6.1-WOW64 DEEDAA 1.7.15(0.260/5/3) 2012-05-09 10:25 i686 Cygwin

构建过程中的一个步骤调用先前生成的实用程序(Windows可执行文件)以生成TI处理器所需的bin文件。

../../ AISUtils // HexAIS_OMAP-L138.exe -ini ../sft_hexais.ini -o ../sft_C6748_SPI_MEM.bin ../ sft_C6748_SPI_MEM.out

调用此命令后,在cygwin命令行中看不到任何进度。但是,命令的执行完成,生成在此步骤中指定的文件,并继续执行makefile中的步骤。只是我永远无法重新掌控这个窗口。我总是需要杀死窗口,启动另一个cygwin实例。

如果我立即尝试杀死cygwin窗口,我会收到以下消息。

mintty
Processes are running in session
Close anyway?

如果我等待一段时间(完成后续步骤的时间),那么我可以在没有弹出此消息的情况下杀死窗口。

执行Windows命令行上的相同命令没有任何停顿,我恢复了命令行。

    c:\ti\boot_tools\OMAP-L138_FlashAndBootUtils_2_40\OMAP-L138\GNU\AISUtils>HexAIS_OMAP-L138.exe -ini ..\sft\sft_hexais.ini
     -o ..\sft\sft_C6748_SPI_MEM.bin ..\sft\sft_C6748_SPI_MEM.out
    -----------------------------------------------------
       TI AIS Hex File Generator for OMAP-L138
       (C) 2012, Texas Instruments, Inc.
       Ver. 1.27
    -----------------------------------------------------

Begining the AIS file generation.
AIS file being generated for bootmode: UART.
Parsing the input object file, ..\sft\sft_C6748_SPI_MEM.out.
AIS file generation was successful.
Wrote 15464 bytes to file ..\sft\sft_C6748_SPI_MEM.bin.
Conversion is complete.

在我看来,关于命令构造方式的一些事情是将命令推送到另一个shell或强制它在后台运行。有关可能发生的事情或我可以尝试调试问题的步骤的任何想法?

停止的可执行文件的文件格式

$ file AISUtils/HexAIS_OMAP-L138.exe
AISUtils/HexAIS_OMAP-L138.exe: PE32 executable (console) Intel 80386 Mono/.Net assembly, for MS Windows

链接到TI wiki,解释构建过程。该链接提供了有关重建实用程序的一般说明,并且不太可能提供与我的问题相关的任何特定信息。我只是包含它,以防有人需要更多关于工具或过程的背景知识。

http://processors.wiki.ti.com/index.php/Rebuilding_the_Flash_and_Boot_Utils_Package

感谢。

1 个答案:

答案 0 :(得分:1)

在Cygwin(MinTTY)终端内运行Windows控制台应用程序通常是一个糟糕的主意。

尝试在Windows(cmd)控制台内运行或使用cygstart在新窗口中启动(在Makefile中,-w也可能有用。)