你好,
我正在尝试将辅助引导程序项目转换为GCC + Makefile。为此,我找到了UVProj2makefile util脚本,但脚本中的sed命令有问题。
最后,我发现SED模式似乎不足以覆盖UVProj文件结构,但我不是SED专家,所以不能自己改变它。
我只搜索了第一个错误,似乎似乎引起了一个原因的错误。
shell环境是Mac OSX和默认BASH,SDK为5.0.3(无法从下拉列表中选择!)。
============我做了什么(1):请采用“$”的行是shell ============的输入
$ PWD
/users/
$ chmod + x ./uvproj2makefile
$ ./uvproj2makefile -i ../secondary_bootloader/secondary_bootloader.uvproj
将../secondary_bootloader/secondary_bootloader.uvproj使用makefile.tmpl作为模板...
SED:1:“s!\ @ \ @ core_inc_search_p ......”:未经认行的换行符内部替代模式
sed:1:“/ ^ core_inc_search_paths ...”:d命令末尾的额外字符
sed:1:“/ ^ core_inc_search_paths ...”:p命令末尾的额外字符
sed:1:“/ ^ core_inc_search_paths ...”:替换命令的坏标志:'}'
sed:-i:没有这样的文件或目录
sed:1:“/
sed:-i:没有这样的文件或目录
sed:1:“/ ^ core_src_cfiles /,/ ^ $ ...”:p命令末尾的额外字符
SED:1:“/ ^ core_src_cfiles /,/ ^ $ ......”:替换命令的坏标志:'}'
sed:-i:没有这样的文件或目录
sed:1:“/
sed:-i:没有这样的文件或目录
==================.
其次,我将脚本复制到回应实际的“core_inc_search_path”变量,该变量在第61行定义./uvproj2makefile。
==========我做了什么(2)==========
$ sed -n's /
。\包括; .. \ .. \ .. \ sdk \ platform \包括; .. \ .. \ sdk \ platform \ driver \ spi; .. \ .. \ sdk \ platform \ driver \ i2c_eeprom; .. \ .. \sdk \ platform \ driver \ spi_flash; .. \ .. \ s
dk \ platform \ driver \ gpio; .. \ .. \ sdk \ platform \ arch; .. \ .. \ sdk \ platform \ arch \ compiler \ rvds; .. \ .. \ sdk \ platform \ arch \ ll \RVDS; .. \ .. \ SDK \ Platform \ Driver \ Reg
。\包括
=============================.
从这一点来看,我们可以看到“。\ /包括”两次,它会导致“未知向下的替代模式”错误。
我理解SED部件正在拾取,包括来自
我检查了UVProj文件并找到了几行的标签,大多是没有值,而只有2个,其中只有2个“。\包括......”和“。\包括”值。
我的猜测是脚本假定
您能否请检查那些SED线路以正确转换这些路径,并使其工作。
提前致谢,
kazuki

嗨Kazuki,
我没有OSX来测试它,尽管它应该是与线结尾有关的问题。我附上了一个UVProj2makefile应该在OS X中工作。作为替代方案,您可以尝试安装GNU-SED,这应该与我们的脚本兼容。如果您这样做,那么您可以将所有引用转换为UVProj2makefile的SED转换为GNU-SED。
谢谢mt_dialog.
你好mt_dialog,
谢谢您的帮助。
首先,使用“Mac-sed”新脚本仍然没有工作 - 输出文件是空白的。
然后我将GNU-SED安装为GNU-SED作为GSED,将所有'SED'替换为“GSED”,然后工作。
我报告的错误似乎是mac-sed问题;Mac-Sed似乎基于BSD SED
并发现一些报告称,可以选择与GNU SED不匹配。
感谢和问候,
kazuki