Skip to content

Commit 6b9e29a

Browse files
authored
Merge pull request #254 from github0null/dev
v3.12.2023052101 revision
2 parents cc2053a + db2bc11 commit 6b9e29a

11 files changed

Lines changed: 277 additions & 83 deletions

CHANGELOG.md

Lines changed: 2 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.12.2023051401] update
9+
### [v3.12.2023052101] revision
1010

1111
**New**:
1212
- `MIPS Project`: Support new project type `MIPS` and new toolchain `MTI GCC`, thanks [@eatradish](https://github.com/eatradish).
@@ -25,6 +25,7 @@ All notable version changes will be recorded in this file.
2525
- `System Variables`: Add some system variables, like: `${SYS_Platform}, ${SYS_DirSep} ...`
2626
- `Auto Save`: Compare content before save project.
2727
- `Source Folder`: Need to confirm before remove src folder.
28+
- `IAR Toolchain`: Add more cpu list for selection.
2829

2930
***
3031

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"homepage": "https://em-ide.com",
3939
"license": "MIT",
4040
"description": "A mcu development environment for 8051/AVR/STM8/Cortex-M/MIPS/RISC-V",
41-
"version": "3.12.2023051401",
41+
"version": "3.12.2023052101",
4242
"preview": false,
4343
"engines": {
4444
"vscode": "^1.67.0"

package.nls.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
"eide.project.clean": "Clean",
2929
"eide.project.upload": "Program Flash",
3030
"eide.project.flash.erase.all": "Erase Chip",
31-
"eide.project.gen.makefile": "Generate Makefile Template",
3231
"eide.project.modify.files.options": "Show Source Files Extra Compiler Options",
3332
"eide.project.import.ext.project.src.struct": "Import source tree from other projects",
3433
"eide.project.generate_builder_params": "Generate builder.params",
@@ -100,7 +99,6 @@
10099
"settings.enable.telemetry": "Enable telemetry for extension. We will collect information from the logs to help improve the functionality of this extension.",
101100

102101
"settings.builder.jobs": "The number of threads when build",
103-
"settings.builder.gen.makefile.params": "Generate the Makefile parameters file",
104102

105103
"settings.option.show.toolbar.in.editer.title": "Displays some toolbars in the editor title",
106104
"settings.option.print.relative.path": "Print relative path when compile source file",

package.nls.zh-CN.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
"eide.project.clean": "清理",
2929
"eide.project.upload": "烧录",
3030
"eide.project.flash.erase.all": "擦除芯片",
31-
"eide.project.gen.makefile": "生成 Makefile 模板",
3231
"eide.project.modify.files.options": "查看所有的源文件附加编译参数",
3332
"eide.project.import.ext.project.src.struct": "从其他 IDE 的项目中导入源文件树",
3433
"eide.project.generate_builder_params": "生成 builder.params",
@@ -89,12 +88,11 @@
8988
"eide.deps.inclib.add": "添加库目录",
9089
"eide.deps.macro.show": "显示所有宏定义",
9190
"eide.deps.macro.add": "添加宏定义",
92-
91+
9392
"settings.enable.telemetry": "启用遥测功能。我们将收集日志中的信息,帮助改进该扩展的功能",
9493

9594
"settings.builder.jobs": "构建时使用的线程数",
96-
"settings.builder.gen.makefile.params": "生成 Makefile 参数文件",
97-
95+
9896
"settings.option.show.toolbar.in.editer.title": "在编辑器的标题栏显示小工具",
9997
"settings.option.print.relative.path": "编译时打印源文件的相对路径",
10098
"settings.option.create.batch.file": "生成脚本",

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

Lines changed: 66 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,28 @@
5757
"cortex-m7-sp": "--cpu=Cortex-M7 --fpu=VFPv5_sp",
5858
"cortex-m7-dp": "--cpu=Cortex-M7 --fpu=VFPv5_d16",
5959
"sc000": "--cpu=SC000",
60-
"sc300": "--cpu=SC300"
60+
"sc300": "--cpu=SC300",
61+
"cortex-m4f": "--cpu=Cortex-M4F --fpu=None",
62+
"cortex-m4f-sp": "--cpu=Cortex-M4F --fpu=VFPv4_sp",
63+
"cortex-m23": "--cpu=Cortex-M23",
64+
"cortex-m23.no_se": "--cpu=Cortex-M23.no_se",
65+
"cortex-m33": "--cpu=Cortex-M33",
66+
"cortex-m33.fp": "--cpu=Cortex-M33.fp",
67+
"cortex-m33.no_dsp": "--cpu=Cortex-M33.no_dsp",
68+
"cortex-m33.fp.no_dsp": "--cpu=Cortex-M33.fp.no_dsp",
69+
"cortex-m35p": "--cpu=Cortex-M35P",
70+
"cortex-m35p.fp": "--cpu=Cortex-M35P.fp",
71+
"cortex-m35p.no_dsp": "--cpu=Cortex-M35P.no_dsp",
72+
"cortex-m35p.fp.no_dsp": "--cpu=Cortex-M35P.fp.no_dsp",
73+
"cortex-r4": "--cpu=Cortex-R4",
74+
"cortex-r4f": "--cpu=Cortex-R4F",
75+
"cortex-r4.vfp": "--cpu=Cortex-R4.vfp",
76+
"cortex-r5": "--cpu=Cortex-R5",
77+
"cortex-r5f": "--cpu=Cortex-R5F",
78+
"cortex-r5.vfp": "--cpu=Cortex-R5.vfp",
79+
"cortex-r7": "--cpu=Cortex-R7",
80+
"cortex-r7f": "--cpu=Cortex-R7F",
81+
"cortex-r7.vfp": "--cpu=Cortex-R7.vfp"
6182
},
6283
"group": [
6384
"c",
@@ -370,7 +391,28 @@
370391
"cortex-m7-sp": "--cpu Cortex-M7 --fpu VFPv5_sp",
371392
"cortex-m7-dp": "--cpu Cortex-M7 --fpu VFPv5_d16",
372393
"sc000": "--cpu SC000",
373-
"sc300": "--cpu SC300"
394+
"sc300": "--cpu SC300",
395+
"cortex-m4f": "--cpu Cortex-M4F --fpu None",
396+
"cortex-m4f-sp": "--cpu Cortex-M4F --fpu VFPv4_sp",
397+
"cortex-m23": "--cpu Cortex-M23",
398+
"cortex-m23.no_se": "--cpu Cortex-M23.no_se",
399+
"cortex-m33": "--cpu Cortex-M33",
400+
"cortex-m33.fp": "--cpu Cortex-M33.fp",
401+
"cortex-m33.no_dsp": "--cpu Cortex-M33.no_dsp",
402+
"cortex-m33.fp.no_dsp": "--cpu Cortex-M33.fp.no_dsp",
403+
"cortex-m35p": "--cpu Cortex-M35P",
404+
"cortex-m35p.fp": "--cpu Cortex-M35P.fp",
405+
"cortex-m35p.no_dsp": "--cpu Cortex-M35P.no_dsp",
406+
"cortex-m35p.fp.no_dsp": "--cpu Cortex-M35P.fp.no_dsp",
407+
"cortex-r4": "--cpu Cortex-R4",
408+
"cortex-r4f": "--cpu Cortex-R4F",
409+
"cortex-r4.vfp": "--cpu Cortex-R4.vfp",
410+
"cortex-r5": "--cpu Cortex-R5",
411+
"cortex-r5f": "--cpu Cortex-R5F",
412+
"cortex-r5.vfp": "--cpu Cortex-R5.vfp",
413+
"cortex-r7": "--cpu Cortex-R7",
414+
"cortex-r7f": "--cpu Cortex-R7F",
415+
"cortex-r7.vfp": "--cpu Cortex-R7.vfp"
374416
}
375417
},
376418
"endian-mode": {
@@ -447,7 +489,28 @@
447489
"cortex-m7-sp": "--cpu Cortex-M7 --fpu VFPv5_sp",
448490
"cortex-m7-dp": "--cpu Cortex-M7 --fpu VFPv5_d16",
449491
"sc000": "--cpu SC000",
450-
"sc300": "--cpu SC300"
492+
"sc300": "--cpu SC300",
493+
"cortex-m4f": "--cpu Cortex-M4F --fpu None",
494+
"cortex-m4f-sp": "--cpu Cortex-M4F --fpu VFPv4_sp",
495+
"cortex-m23": "--cpu Cortex-M23",
496+
"cortex-m23.no_se": "--cpu Cortex-M23.no_se",
497+
"cortex-m33": "--cpu Cortex-M33",
498+
"cortex-m33.fp": "--cpu Cortex-M33.fp",
499+
"cortex-m33.no_dsp": "--cpu Cortex-M33.no_dsp",
500+
"cortex-m33.fp.no_dsp": "--cpu Cortex-M33.fp.no_dsp",
501+
"cortex-m35p": "--cpu Cortex-M35P",
502+
"cortex-m35p.fp": "--cpu Cortex-M35P.fp",
503+
"cortex-m35p.no_dsp": "--cpu Cortex-M35P.no_dsp",
504+
"cortex-m35p.fp.no_dsp": "--cpu Cortex-M35P.fp.no_dsp",
505+
"cortex-r4": "--cpu Cortex-R4",
506+
"cortex-r4f": "--cpu Cortex-R4F",
507+
"cortex-r4.vfp": "--cpu Cortex-R4.vfp",
508+
"cortex-r5": "--cpu Cortex-R5",
509+
"cortex-r5f": "--cpu Cortex-R5F",
510+
"cortex-r5.vfp": "--cpu Cortex-R5.vfp",
511+
"cortex-r7": "--cpu Cortex-R7",
512+
"cortex-r7f": "--cpu Cortex-R7F",
513+
"cortex-r7.vfp": "--cpu Cortex-R7.vfp"
451514
}
452515
},
453516
"$LIB_FLAGS": {

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

Lines changed: 66 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,28 @@
5757
"cortex-m7-sp": "--cpu=Cortex-M7 --fpu=VFPv5_sp",
5858
"cortex-m7-dp": "--cpu=Cortex-M7 --fpu=VFPv5_d16",
5959
"sc000": "--cpu=SC000",
60-
"sc300": "--cpu=SC300"
60+
"sc300": "--cpu=SC300",
61+
"cortex-m4f": "--cpu=Cortex-M4F --fpu=None",
62+
"cortex-m4f-sp": "--cpu=Cortex-M4F --fpu=VFPv4_sp",
63+
"cortex-m23": "--cpu=Cortex-M23",
64+
"cortex-m23.no_se": "--cpu=Cortex-M23.no_se",
65+
"cortex-m33": "--cpu=Cortex-M33",
66+
"cortex-m33.fp": "--cpu=Cortex-M33.fp",
67+
"cortex-m33.no_dsp": "--cpu=Cortex-M33.no_dsp",
68+
"cortex-m33.fp.no_dsp": "--cpu=Cortex-M33.fp.no_dsp",
69+
"cortex-m35p": "--cpu=Cortex-M35P",
70+
"cortex-m35p.fp": "--cpu=Cortex-M35P.fp",
71+
"cortex-m35p.no_dsp": "--cpu=Cortex-M35P.no_dsp",
72+
"cortex-m35p.fp.no_dsp": "--cpu=Cortex-M35P.fp.no_dsp",
73+
"cortex-r4": "--cpu=Cortex-R4",
74+
"cortex-r4f": "--cpu=Cortex-R4F",
75+
"cortex-r4.vfp": "--cpu=Cortex-R4.vfp",
76+
"cortex-r5": "--cpu=Cortex-R5",
77+
"cortex-r5f": "--cpu=Cortex-R5F",
78+
"cortex-r5.vfp": "--cpu=Cortex-R5.vfp",
79+
"cortex-r7": "--cpu=Cortex-R7",
80+
"cortex-r7f": "--cpu=Cortex-R7F",
81+
"cortex-r7.vfp": "--cpu=Cortex-R7.vfp"
6182
},
6283
"group": [
6384
"c",
@@ -370,7 +391,28 @@
370391
"cortex-m7-sp": "--cpu Cortex-M7 --fpu VFPv5_sp",
371392
"cortex-m7-dp": "--cpu Cortex-M7 --fpu VFPv5_d16",
372393
"sc000": "--cpu SC000",
373-
"sc300": "--cpu SC300"
394+
"sc300": "--cpu SC300",
395+
"cortex-m4f": "--cpu Cortex-M4F --fpu None",
396+
"cortex-m4f-sp": "--cpu Cortex-M4F --fpu VFPv4_sp",
397+
"cortex-m23": "--cpu Cortex-M23",
398+
"cortex-m23.no_se": "--cpu Cortex-M23.no_se",
399+
"cortex-m33": "--cpu Cortex-M33",
400+
"cortex-m33.fp": "--cpu Cortex-M33.fp",
401+
"cortex-m33.no_dsp": "--cpu Cortex-M33.no_dsp",
402+
"cortex-m33.fp.no_dsp": "--cpu Cortex-M33.fp.no_dsp",
403+
"cortex-m35p": "--cpu Cortex-M35P",
404+
"cortex-m35p.fp": "--cpu Cortex-M35P.fp",
405+
"cortex-m35p.no_dsp": "--cpu Cortex-M35P.no_dsp",
406+
"cortex-m35p.fp.no_dsp": "--cpu Cortex-M35P.fp.no_dsp",
407+
"cortex-r4": "--cpu Cortex-R4",
408+
"cortex-r4f": "--cpu Cortex-R4F",
409+
"cortex-r4.vfp": "--cpu Cortex-R4.vfp",
410+
"cortex-r5": "--cpu Cortex-R5",
411+
"cortex-r5f": "--cpu Cortex-R5F",
412+
"cortex-r5.vfp": "--cpu Cortex-R5.vfp",
413+
"cortex-r7": "--cpu Cortex-R7",
414+
"cortex-r7f": "--cpu Cortex-R7F",
415+
"cortex-r7.vfp": "--cpu Cortex-R7.vfp"
374416
}
375417
},
376418
"endian-mode": {
@@ -447,7 +489,28 @@
447489
"cortex-m7-sp": "--cpu Cortex-M7 --fpu VFPv5_sp",
448490
"cortex-m7-dp": "--cpu Cortex-M7 --fpu VFPv5_d16",
449491
"sc000": "--cpu SC000",
450-
"sc300": "--cpu SC300"
492+
"sc300": "--cpu SC300",
493+
"cortex-m4f": "--cpu Cortex-M4F --fpu None",
494+
"cortex-m4f-sp": "--cpu Cortex-M4F --fpu VFPv4_sp",
495+
"cortex-m23": "--cpu Cortex-M23",
496+
"cortex-m23.no_se": "--cpu Cortex-M23.no_se",
497+
"cortex-m33": "--cpu Cortex-M33",
498+
"cortex-m33.fp": "--cpu Cortex-M33.fp",
499+
"cortex-m33.no_dsp": "--cpu Cortex-M33.no_dsp",
500+
"cortex-m33.fp.no_dsp": "--cpu Cortex-M33.fp.no_dsp",
501+
"cortex-m35p": "--cpu Cortex-M35P",
502+
"cortex-m35p.fp": "--cpu Cortex-M35P.fp",
503+
"cortex-m35p.no_dsp": "--cpu Cortex-M35P.no_dsp",
504+
"cortex-m35p.fp.no_dsp": "--cpu Cortex-M35P.fp.no_dsp",
505+
"cortex-r4": "--cpu Cortex-R4",
506+
"cortex-r4f": "--cpu Cortex-R4F",
507+
"cortex-r4.vfp": "--cpu Cortex-R4.vfp",
508+
"cortex-r5": "--cpu Cortex-R5",
509+
"cortex-r5f": "--cpu Cortex-R5F",
510+
"cortex-r5.vfp": "--cpu Cortex-R5.vfp",
511+
"cortex-r7": "--cpu Cortex-R7",
512+
"cortex-r7f": "--cpu Cortex-R7F",
513+
"cortex-r7.vfp": "--cpu Cortex-R7.vfp"
451514
}
452515
},
453516
"$LIB_FLAGS": {

src/DebugConfigGenerator.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ export abstract class IDebugConfigGenerator {
6767
this.loadOk = true;
6868
} catch (error) {
6969
this.loadOk = false;
70-
GlobalEvent.emit('msg', newMessage('Warning', 'parse \'launch.json\' error !'));
70+
const msg = `launch.json('${_launchFile.path}') format error !, msg:${(<Error>error).message}`;
71+
GlobalEvent.emit('msg', newMessage('Warning', msg));
7172
}
7273
}
7374

src/EIDEProject.ts

Lines changed: 59 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1146,8 +1146,7 @@ export abstract class AbstractProject implements CustomConfigurationProvider, Pr
11461146
}
11471147

11481148
getFileGroups(): FileGroup[] {
1149-
return (<FileGroup[]>this.sourceRoots.getFileGroups())
1150-
.concat(this.virtualSource.getFileGroups());
1149+
return (<FileGroup[]>this.sourceRoots.getFileGroups()).concat(this.virtualSource.getFileGroups());
11511150
}
11521151

11531152
/**
@@ -2669,64 +2668,76 @@ class EIDEProject extends AbstractProject {
26692668

26702669
private srcRefMap: Map<string, File[]> = new Map();
26712670

2672-
public async notifyUpdateSourceRefs(toolchain_: ToolchainName | undefined) {
2671+
public async notifyUpdateSourceRefs(toolchain_: ToolchainName | undefined): Promise<boolean> {
26732672

2674-
/* clear old */
2675-
this.srcRefMap.clear();
2673+
return new Promise((resolve) => {
26762674

2677-
/* check source references is enabled ? */
2678-
if (!SettingManager.GetInstance().isDisplaySourceRefs()) return;
2675+
/* clear old */
2676+
this.srcRefMap.clear();
26792677

2680-
let compiler_cmd_db: CompilerCommandsDatabaseItem[] = [];
2681-
let generate_dep_file: ((cmd_db: CompilerCommandsDatabaseItem[], srcpath: string, deppath: string) => void) | undefined;
2678+
/* check source references is enabled ? */
2679+
if (!SettingManager.GetInstance().isDisplaySourceRefs()) {
2680+
resolve(false);
2681+
return; /* no refs list file, exit */
2682+
}
26822683

2683-
// for COSMIC STM8, we need manual generate .d files
2684-
if (this.getToolchain().name == 'COSMIC_STM8') {
2685-
const compilerDBFile = File.fromArray([this.getOutputFolder().path, 'compile_commands.json']);
2686-
if (compilerDBFile.IsFile()) {
2687-
try {
2688-
compiler_cmd_db = jsonc.parse(compilerDBFile.Read());
2689-
generate_dep_file = (cmd_db: CompilerCommandsDatabaseItem[], srcpath: string, deppath: string) => {
2690-
let idx = cmd_db.findIndex((e) => e.file == srcpath);
2691-
if (idx != -1) {
2692-
try {
2693-
let cmd_item = cmd_db[idx];
2694-
let command = cmd_item.command.replace('-co', '-sm -co');
2695-
const depcont = child_process.execSync(command, { cwd: cmd_item.directory }).toString();
2696-
fs.writeFileSync(deppath, depcont);
2697-
} catch (error) {
2698-
GlobalEvent.emit('globalLog', newMessage('Warning', `Failed to make '${deppath}', msg: ${(<Error>error).message}`));
2699-
try { fs.unlinkSync(deppath) } catch (error) { } // del old .d file
2684+
let compiler_cmd_db: CompilerCommandsDatabaseItem[] = [];
2685+
let generate_dep_file: ((cmd_db: CompilerCommandsDatabaseItem[], srcpath: string, deppath: string) => void) | undefined;
2686+
2687+
// for COSMIC STM8, we need manual generate .d files
2688+
if (this.getToolchain().name == 'COSMIC_STM8') {
2689+
const compilerDBFile = File.fromArray([this.getOutputFolder().path, 'compile_commands.json']);
2690+
if (compilerDBFile.IsFile()) {
2691+
try {
2692+
compiler_cmd_db = jsonc.parse(compilerDBFile.Read());
2693+
generate_dep_file = (cmd_db: CompilerCommandsDatabaseItem[], srcpath: string, deppath: string) => {
2694+
let idx = cmd_db.findIndex((e) => e.file == srcpath);
2695+
if (idx != -1) {
2696+
try {
2697+
let cmd_item = cmd_db[idx];
2698+
let command = cmd_item.command.replace('-co', '-sm -co');
2699+
const depcont = child_process.execSync(command, { cwd: cmd_item.directory }).toString();
2700+
fs.writeFileSync(deppath, depcont);
2701+
} catch (error) {
2702+
GlobalEvent.emit('globalLog', newMessage('Warning', `Failed to make '${deppath}', msg: ${(<Error>error).message}`));
2703+
try { fs.unlinkSync(deppath) } catch (error) { } // del old .d file
2704+
}
27002705
}
2701-
}
2702-
};
2703-
} catch (error) {
2704-
GlobalEvent.emit('globalLog', ExceptionToMessage(error, 'Warning'));
2706+
};
2707+
} catch (error) {
2708+
GlobalEvent.emit('globalLog', ExceptionToMessage(error, 'Warning'));
2709+
}
27052710
}
27062711
}
2707-
}
27082712

2709-
const toolName = toolchain_ || this.getToolchain().name;
2713+
const toolName = toolchain_ || this.getToolchain().name;
27102714

2711-
const outFolder = this.getOutputFolder();
2712-
const refListFile = File.fromArray([outFolder.path, 'ref.json']);
2713-
if (!refListFile.IsFile()) return; /* no refs list file, exit */
2715+
const outFolder = this.getOutputFolder();
2716+
const refListFile = File.fromArray([outFolder.path, 'ref.json']);
27142717

2715-
try {
2716-
const refMap = JSON.parse(refListFile.Read());
2717-
for (const srcpath in refMap) {
2718-
const refFile = new File((<string>refMap[srcpath]).replace(/\.[^\\\/\.]+$/, '.d'));
2719-
if (generate_dep_file) generate_dep_file(compiler_cmd_db, srcpath, refFile.path);
2720-
if (!refFile.IsFile()) continue;
2721-
const refs = this.parseRefFile(refFile, toolName).filter(p => p != srcpath);
2722-
this.srcRefMap.set(srcpath, refs.map((path) => new File(path)));
2718+
if (!refListFile.IsFile()) {
2719+
resolve(false);
2720+
return; /* no refs list file, exit */
27232721
}
2724-
} catch (error) {
2725-
GlobalEvent.emit('msg', ExceptionToMessage(error, 'Hidden'));
2726-
}
27272722

2728-
// notify update src view
2729-
this.emit('dataChanged', 'files');
2723+
try {
2724+
const refMap = JSON.parse(refListFile.Read());
2725+
for (const srcpath in refMap) {
2726+
const refFile = new File((<string>refMap[srcpath]).replace(/\.[^\\\/\.]+$/, '.d'));
2727+
if (generate_dep_file) generate_dep_file(compiler_cmd_db, srcpath, refFile.path);
2728+
if (!refFile.IsFile()) continue;
2729+
const refs = this.parseRefFile(refFile, toolName).filter(p => p != srcpath);
2730+
this.srcRefMap.set(srcpath, refs.map((path) => new File(path)));
2731+
}
2732+
} catch (error) {
2733+
GlobalEvent.emit('msg', ExceptionToMessage(error, 'Hidden'));
2734+
}
2735+
2736+
// notify update src view
2737+
this.emit('dataChanged', 'files');
2738+
2739+
resolve(true);
2740+
});
27302741
}
27312742

27322743
public getSourceRefs(file: File): File[] {

0 commit comments

Comments
 (0)