Skip to content

Commit 49836f5

Browse files
authored
v3.23.9 revision
v3.23.9 revision
2 parents 188b3ec + a36cb28 commit 49836f5

File tree

7 files changed

+42
-16
lines changed

7 files changed

+42
-16
lines changed

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ All notable version changes will be recorded in this file.
66

77
***
88

9-
### [v3.23.8] revision
9+
### [v3.23.9] revision
1010

1111
**Improve**:
1212
- `GNU Arm Toolchain`: Support new mcpu: `cortex-m52, cortex-m55, cortex-m85`.
@@ -16,6 +16,14 @@ All notable version changes will be recorded in this file.
1616
- `File Options GUI`: Update the translation text. Optimize layout.
1717
- `DebugConfig Generator GUI`: Change gui element width. Sort the option result list.
1818

19+
**Fix**:
20+
- `IAR ARM Toolchain`: Miss auto-gen `-I` params for iar assembler.
21+
- `Keil Project Import`: Force use ';' as the path delimiter on unix and windows.
22+
- `Eclipse Project Import`: Incorrect project type was detected.
23+
24+
**Change**:
25+
- `EIDE View Container`: By default, we will collapse the `Operations` view.
26+
1927
***
2028

2129
### [v3.23.6] revision

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"homepage": "https://em-ide.com",
3737
"license": "MIT",
3838
"description": "A mcu development environment for 8051/AVR/STM8/Cortex-M/MIPS/RISC-V",
39-
"version": "3.23.8",
39+
"version": "3.23.9",
4040
"preview": false,
4141
"engines": {
4242
"vscode": "^1.67.0"
@@ -529,7 +529,8 @@
529529
},
530530
{
531531
"id": "cl.eide.view.operations",
532-
"name": "%eide.bar.operations%"
532+
"name": "%eide.bar.operations%",
533+
"visibility": "collapsed"
533534
}
534535
]
535536
},

res/data/models/arm.iar.model.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,9 @@
359359
"useFile": true,
360360
"body": "-f ${value}"
361361
},
362+
"$includes": {
363+
"body": "-I${value}"
364+
},
362365
"$output": "-o ${out} ${in}",
363366
"$default": [
364367
"-S",

src/CodeBuilder.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ import { exeSuffix, osType } from "./Platform";
5555
import { FileWatcher } from "../lib/node-utility/FileWatcher";
5656
import { STVPFlasherOptions } from './HexUploader';
5757
import * as ArmCpuUtils from './ArmCpuUtils';
58+
import { view_str$gen_sct_failed } from './StringTable';
5859

5960
export interface BuildOptions {
6061

@@ -658,7 +659,7 @@ export class ARMCodeBuilder extends CodeBuilder {
658659
index = storageLayout.RAM[i].id - 1;
659660
break;
660661
default:
661-
throw Error('Unknown RAM Tag !');
662+
throw Error(`${view_str$gen_sct_failed}: Unknown RAM Tag !`);
662663
}
663664

664665
memScatter.ramList[index].memInfo = storageLayout.RAM[i].mem;
@@ -679,7 +680,7 @@ export class ARMCodeBuilder extends CodeBuilder {
679680
index = storageLayout.ROM[i].id - 1;
680681
break;
681682
default:
682-
throw Error('Unknown ROM Tag !');
683+
throw Error(`${view_str$gen_sct_failed}: Unknown ROM Tag !`);
683684
}
684685

685686
memScatter.romList[index].memInfo = storageLayout.ROM[i].mem;
@@ -691,10 +692,10 @@ export class ARMCodeBuilder extends CodeBuilder {
691692
}
692693

693694
if (memScatter.startUpIndex === -1) {
694-
throw Error('MemScatter.startupIndex can\'t be -1');
695+
throw Error(`${view_str$gen_sct_failed}: MemScatter.startupIndex can't be -1`);
695696
}
696697
else if (!memScatter.romList[memScatter.startUpIndex].selected) {
697-
throw Error('the IROM' + (memScatter.startUpIndex - 2).toString() + ' is a startup ROM but it is not selected !');
698+
throw Error(`${view_str$gen_sct_failed}: The IROM' + (memScatter.startUpIndex - 2).toString() + ' is a startup ROM but it is not selected !`);
698699
}
699700

700701
return memScatter;
@@ -1046,8 +1047,12 @@ export class ARMCodeBuilder extends CodeBuilder {
10461047
ldFileList.push(this.convLinkerScriptPathForCompiler(sctPath));
10471048
});
10481049
} else { // auto generate scatter file
1049-
const sctPath = this.GenMemScatterFile(config).path;
1050-
ldFileList.push(this.convLinkerScriptPathForCompiler(sctPath));
1050+
try {
1051+
const sctPath = this.GenMemScatterFile(config).path;
1052+
ldFileList.push(this.convLinkerScriptPathForCompiler(sctPath));
1053+
} catch (error) {
1054+
GlobalEvent.emit('error', error);
1055+
}
10511056
}
10521057
}
10531058
break;

src/EclipseProjectParser.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -569,17 +569,21 @@ function toArray(obj: any): any[] {
569569

570570
function detectProjectType(toolChain: any): EclipseProjectType | undefined {
571571

572-
const toolName = toolChain.$['name'];
572+
const toolId = toolChain.$['id'];
573+
const toolName = toolChain.$['name'] || toolId;
573574

574-
if (/\bARM\b/i.test(toolName)) {
575+
// <toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.debug.1201710416" name="ARM Cross GCC"
576+
if (/\bARM\b/.test(toolName) || /gnuarmeclipse/.test(toolId)) {
575577
return 'arm';
576578
}
577579

578-
if (/\b(RISCV|RISC-V)\b/i.test(toolName)) {
580+
// <toolChain id="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.release.231146001" name="RISC-V Cross GCC…
581+
if (/\b(RISCV|RISC-V)\b/.test(toolName) || /\.riscv\./.test(toolId)) {
579582
return 'riscv';
580583
}
581584

582-
if (/\bSDCC\b/i.test(toolName)) {
585+
// <toolChain errorParsers="" id="cdt.managedbuild.toolchain.sdcc.exe.release.1956586716" name="SDCC Tool Chain"
586+
if (/\bSDCC\b/.test(toolName) || /\.sdcc\./.test(toolId)) {
583587
return 'sdcc';
584588
}
585589
}

src/KeilXmlParser.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ export abstract class KeilParser<T> {
131131

132132
protected parseIncludePaths(str: string): string[] {
133133
if (typeof str !== 'string') return [];
134-
return this._splitPathSeparator(str, new RegExp(File.delimiter + '\\s*'))
134+
return this._splitPathSeparator(str, /;\s*/)
135135
.map<string>((path) => this.ToAbsolutePath(path));
136136
}
137137

@@ -538,7 +538,7 @@ class C51Parser extends KeilParser<KeilC51Option> {
538538
target.TargetOption.Target51.C51.VariousControls.IncludePath = mergedDep.incList
539539
.map(s => prj.resolveEnvVar(s))
540540
.map(inc => File.ToLocalPath(prj.toRelativePath(inc)))
541-
.join(File.delimiter);
541+
.join(';');
542542

543543
target.TargetOption.Target51.C51.VariousControls.Define = mergedDep.defineList.join(",");
544544

@@ -1362,7 +1362,7 @@ class ARMParser extends KeilParser<KeilARMOption> {
13621362
target.TargetOption.TargetArmAds.Cads.VariousControls.IncludePath = mergedDep.incList
13631363
.map(s => prj.resolveEnvVar(s))
13641364
.map(inc => File.ToLocalPath(prj.toRelativePath(inc)))
1365-
.join(File.delimiter);
1365+
.join(';');
13661366

13671367
target.TargetOption.TargetArmAds.Cads.VariousControls.Define = mergedDep.defineList.join(","); // C/CPP
13681368
target.TargetOption.TargetArmAds.Aads.VariousControls.Define = mergedDep.defineList.join(","); // ASM

src/StringTable.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,11 @@ export const view_str$env_desc$compiler_folder = [
424424

425425
//---------------Other---------------
426426

427+
export const view_str$gen_sct_failed = [
428+
`生成.sct文件失败`,
429+
`Fail to generate .sct file`
430+
][langIndex];
431+
427432
export const view_str$virual_doc_provider_banner = [
428433
`通过修改并保存这个文件来更新项目配置(注意这个文件是临时的,不要使用其他工具打开这个文件)`,
429434
`You can modify the configuration by editing and saving this file.`

0 commit comments

Comments
 (0)