使用环境
<!-- 必须 告知插件运行的环境,帮助开发者定位问题 -->
- 操作系统版本:win10
- 操作系统平台(x86/x64):x64
- VsCode 版本:1.71.2
- EIDE 插件版本:3.9.0
- C/C++ 插件版本:1.12.4
- 何种编译器(keil_c51/sdcc/armcc5/armgcc/...):csky-abiv2-elf-工具链,就是海凌科的W801,W806工具链
- 编译器版本(非编译问题可忽略):
描述问题
<!-- 使用简明清晰的语言描述您的问题 -->
我是用embedded IDE搭建了W801单片机的开发环境,也安装了csky-abiv2-elf工具链,也安装cmake, git bash。
W801单片机需要在build后,执行命令生成secboot.img、和编译好的bin文件,合并成一个烧录固件(firmware)
因此在post build里创建了一个task,执行的就是这句话:
cat "${OutDir}/secboot.img" "${OutDir}/w800.img" > "${OutDir}/w800.fls"
生成的w800.fls死活烧录不进去。我就打开cmd.exe自己敲上面那句话,生成w800-ok.fls,这个固件能烧录。经过对比发现,eide执行我的那个cat时,使用的不是git bash提供的cat(我都设置环境变量,能直接访问到的)。
所以就有一个奇葩的地方。eide执行post build时,执行cat aaa bbb > ccc,会在每一个\n(0x0a)之前插入一个\r(0x0D)
假设aaa二进制文件是:0xaa 0xaa 0xaa 0xaa 0xaa
假设bbb二进制文件时:0x0a 0x0a 0x0a 0x0a 0x0a
ccc文件是这样的:0xaa 0xaa 0xaa 0xaa 0xaa 0x0d 0x0a 0x0d 0x0a 0x0d 0x0a 0x0d 0x0a 0x0d 0x0a
他自己在每个\n前面添加一个\r,半个月前都是好好的,vscode最近不知道自己在更新什么东西。然后就变成这个鬼样了。eide执行post build时,能否指定shell?我用git bash, 或者cmd.exe都行。感觉就是使用power shell 导致的出错。
我已经设置该国项目,使用cmd.exe。貌似这是项目使用的shell,跟eide执行的post build所用的shell没有半毛钱关系(即我设置了,再次build固件发现还是这个问题,cat aaa bbb > ccc,会在每个\n前面添加\r)
万能的大佬啊,我该怎么做?
屏幕截图
<!--使用一些截图能够更好地展现问题 -->
期望现象
<!--您期望应该产生的,但实际上却没有发生的结果-->