我正在为 TI 芯片重建闪存加载程序实用程序,并面临一个影响我的工作流程的小问题。我正在使用 64 位 Win7 PC 并在 cygwin bash shell 上使用 make 重建该实用程序。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
谢谢。