Skip to content

Commit 983e238

Browse files
committed
v3.12.0
1 parent 000ef8d commit 983e238

6 files changed

Lines changed: 286 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,20 @@ All notable version changes will be recorded in this file.
66

77
***
88

9+
### [v3.12.0] update
10+
11+
**New**:
12+
- `COSMIC STM8`: Support new toolchain: `COSMIC STM8` for stm8 series.
13+
14+
**Fix**:
15+
- `Export Template`: Zip project template 7za failed on linux.
16+
17+
**Optimize**:
18+
- `unify_builder`: Show commandline when build failed on source file.
19+
- `Disassembly View`: Optimize disasm launguage syntax with visual jump
20+
21+
***
22+
923
### [v3.11.3] revision
1024

1125
**Fix**:

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@
3030
"cmsis",
3131
"eclipse",
3232
"iar",
33-
"msys"
33+
"msys",
34+
"cosmic"
3435
],
3536
"homepage": "https://em-ide.com",
3637
"license": "MIT",
3738
"description": "A mcu development environment for 8051/AVR/STM8/Cortex-M/RISC-V",
38-
"version": "3.11.3",
39+
"version": "3.12.0",
3940
"preview": false,
4041
"engines": {
4142
"vscode": "^1.67.0"

res/data/config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
version: '1.0'
44

5-
binary_min_version: '11.0.0'
5+
binary_min_version: '12.0.0'
Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
{
2+
"name": "COSMIC C Compiler For STM8",
3+
"id": "COSMIC_STM8",
4+
"useUnixPath": true,
5+
"version": {
6+
"args": "",
7+
"matcher": "(?<name>COSMIC Software STM8 C Cross Compiler.*?) V(?<version>[\\d\\.]+)"
8+
},
9+
"global": {
10+
"model": {
11+
"type": "selectable",
12+
"command": {
13+
"small": "+model-small",
14+
"large": "+model-large",
15+
"small-0": "+model-small-small",
16+
"large-0": "+model-large-small",
17+
"false": "+model-small"
18+
},
19+
"group": [
20+
"c/cpp",
21+
"asm"
22+
],
23+
"location": "first"
24+
},
25+
"cxstm8-config": {
26+
"type": "value",
27+
"command": "-f ",
28+
"group": [
29+
"c/cpp",
30+
"asm"
31+
],
32+
"location": "first"
33+
},
34+
"output-list-file": {
35+
"type": "selectable",
36+
"command": {
37+
"true": "-l",
38+
"false": ""
39+
},
40+
"group": [
41+
"c/cpp",
42+
"asm"
43+
]
44+
},
45+
"output-debug-info": {
46+
"type": "selectable",
47+
"command": {
48+
"enable": "+debug",
49+
"disable": "",
50+
"false": ""
51+
},
52+
"group": [
53+
"c/cpp",
54+
"asm"
55+
]
56+
},
57+
"no-bss": {
58+
"type": "selectable",
59+
"command": {
60+
"true": "+nobss",
61+
"false": ""
62+
},
63+
"group": [
64+
"c/cpp",
65+
"asm"
66+
]
67+
},
68+
"const-in-text": {
69+
"type": "selectable",
70+
"command": {
71+
"true": "+nocst",
72+
"false": ""
73+
},
74+
"group": [
75+
"c/cpp",
76+
"asm"
77+
]
78+
},
79+
"verbose": {
80+
"type": "selectable",
81+
"command": {
82+
"true": "-v",
83+
"false": ""
84+
},
85+
"group": [
86+
"c/cpp",
87+
"asm",
88+
"linker"
89+
]
90+
},
91+
"misc-controls": {
92+
"type": "list",
93+
"command": "",
94+
"group": [
95+
"c/cpp",
96+
"asm"
97+
]
98+
}
99+
},
100+
"groups": {
101+
"c/cpp": {
102+
"$path": "cxstm8",
103+
"$includes": {
104+
"body": "-i ${value}"
105+
},
106+
"$defines": {
107+
"body": "-d${key}=${value}"
108+
},
109+
"$output": "-co \"${outDir}\" ${in}",
110+
"$outputSuffix": ".o",
111+
"$default": [],
112+
"c99-mode": {
113+
"type": "selectable",
114+
"command": {
115+
"true": "+c99",
116+
"false": ""
117+
}
118+
},
119+
"optimization": {
120+
"type": "selectable",
121+
"command": {
122+
"none": "",
123+
"fast": "+Ofast",
124+
"size": "+Osize",
125+
"false": ""
126+
}
127+
},
128+
"split-functions": {
129+
"type": "selectable",
130+
"command": {
131+
"true": "+ffunction-sections",
132+
"false": ""
133+
}
134+
},
135+
"plain-char-is-unsigned": {
136+
"type": "selectable",
137+
"command": {
138+
"true": "+unsigned-chars",
139+
"false": ""
140+
}
141+
},
142+
"strict-mode": {
143+
"type": "selectable",
144+
"command": {
145+
"true": "+strict",
146+
"false": ""
147+
}
148+
},
149+
"reverse-bits-order": {
150+
"type": "selectable",
151+
"command": {
152+
"true": "+rev",
153+
"false": ""
154+
}
155+
},
156+
"warnings": {
157+
"type": "selectable",
158+
"command": {
159+
"less": "+Wless",
160+
"normal": "+Wnormal",
161+
"all": "+Wall",
162+
"false": ""
163+
}
164+
}
165+
},
166+
"asm": {
167+
"$path": "cxstm8",
168+
"$includes": {
169+
"body": "-i ${value}"
170+
},
171+
"$output": "-co \"${outDir}\" ${in}",
172+
"$outputSuffix": ".o",
173+
"$default": [],
174+
"defines": {
175+
"type": "list",
176+
"command": "-d"
177+
}
178+
},
179+
"linker": {
180+
"$path": "clnk",
181+
"$default": [],
182+
"$output": "-o ${out}",
183+
"$outputSuffix": ".sm8",
184+
"$libs": {
185+
"body": "-l ${value}"
186+
},
187+
"$linkMap": {
188+
"type": "value",
189+
"command": "-m ${mapPath}"
190+
},
191+
"$matcher": [
192+
"^\\s*start [0-9a-fA-F]+ end [0-9a-fA-F]+ length [0-9a-fA-F\\s]+ segment .*"
193+
],
194+
"$lkfPath": {
195+
"type": "value",
196+
"command": ""
197+
},
198+
"$LIB_FLAGS": {
199+
"type": "list",
200+
"command": ""
201+
},
202+
"LD_FLAGS": {
203+
"type": "list",
204+
"command": ""
205+
},
206+
"$outputBin": [
207+
{
208+
"name": "output elf file",
209+
"toolPath": "cvdwarf",
210+
"outputSuffix": ".elf",
211+
"command": "${CXSTM8_USR_ARGS__cvdwarf} -o ${output} ${linkerOutput}"
212+
},
213+
{
214+
"name": "output hex file",
215+
"toolPath": "chex",
216+
"outputSuffix": ".hex",
217+
"command": "${CXSTM8_USR_ARGS__chex} ${CXSTM8_USR_ARGS__chex_hex} -fi -o ${output} ${linkerOutput}"
218+
},
219+
{
220+
"name": "output s19 file",
221+
"toolPath": "chex",
222+
"outputSuffix": ".s19",
223+
"command": "${CXSTM8_USR_ARGS__chex} ${CXSTM8_USR_ARGS__chex_s19} -fm -o ${output} ${linkerOutput}"
224+
}
225+
]
226+
},
227+
"linker-lib": {
228+
"$path": "clib",
229+
"$objPathSep": " ",
230+
"$outputSuffix": ".lib",
231+
"$output": "-c -v ${out} ${in}"
232+
}
233+
}
234+
}

res/template/cosmic_stm8.ept

3.85 KB
Binary file not shown.

src/OperationExplorer.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,34 @@ export class OperationExplorer {
363363
];
364364

365365
templateItem = await vscode.window.showQuickPick(itemList);
366+
367+
if (templateItem && templateItem.type == 'C51') {
368+
369+
const itemList: ProjectTemplatePickItem[] = [
370+
{
371+
label: '8051 Empty Project (With Keil C51 Compiler)',
372+
detail: '8051 general project',
373+
templateName: 'mcs51',
374+
type: 'C51'
375+
},
376+
{
377+
label: 'STM8 Empty Project (With COSMIC Compiler)',
378+
detail: 'stm8 general project',
379+
templateName: 'cosmic_stm8',
380+
type: 'C51'
381+
},
382+
{
383+
label: 'Empty Project',
384+
detail: 'empty project for any 8bits toolchain',
385+
type: 'C51'
386+
},
387+
];
388+
389+
const subTyp = await vscode.window.showQuickPick(itemList);
390+
if (subTyp && subTyp.templateName) {
391+
templateItem = subTyp;
392+
}
393+
}
366394
}
367395
break;
368396

@@ -393,6 +421,12 @@ export class OperationExplorer {
393421
templateName: 'avr_atmega128_rtos',
394422
type: 'ANY-GCC'
395423
},
424+
{
425+
label: 'STM8 Quickstart With COSMIC Compiler',
426+
detail: 'stm8 general quickstart project (COSMIC STM8 Compiler)',
427+
templateName: 'cosmic_stm8',
428+
type: 'C51'
429+
},
396430
{
397431
label: 'STM8 Quickstart',
398432
detail: 'stm8s103 quickstart project',

0 commit comments

Comments
 (0)