Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c970cd3

Browse files
authored
Merge pull request #462 from github0null/dev
v3.24.0 update
2 parents 647e94f + d137602 commit c970cd3

24 files changed

+980
-69
lines changed

CHANGELOG.md

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

77
***
88

9+
### [v3.24.0] update
10+
11+
**New**:
12+
- `8051 Toolchain`: Support new SDCC + Binutils Toolchain for mcs51 https://github.com/github0null/sdcc-binutils-mcs51/blob/master/README_zh.md
13+
14+
**Fix**:
15+
- `ELF View`: Fix issue [461](https://github.com/github0null/eide/issues/461)
16+
17+
***
18+
919
### [v3.23.14] revision
1020

1121
**New**:

lang/sdcc.mcs51.verify.json

Lines changed: 328 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,328 @@
1+
{
2+
"title": "SDCC + Binutils Options",
3+
"$schema": "http://json-schema.org/draft-04/schema#",
4+
"type": "object",
5+
"definitions": {
6+
"misc-controls": {
7+
"markdownDescription": "Other Options",
8+
"description.zh-cn": "其他选项",
9+
"size": "huge",
10+
"type": "string",
11+
"default": ""
12+
},
13+
"FLAGS": {
14+
"markdownDescription": "Options",
15+
"description.zh-cn": "选项",
16+
"size": "huge",
17+
"type": "string",
18+
"default": ""
19+
}
20+
},
21+
"properties": {
22+
"beforeBuildTasks": {
23+
"markdownDescription": "List of commands to execute before build",
24+
"description.zh-cn": "构建前要执行的命令列表",
25+
"type": "array",
26+
"default": [
27+
{
28+
"name": "clean",
29+
"command": "del /Q \"${OutDir}\\*.*\""
30+
}
31+
],
32+
"items": {
33+
"type": "object",
34+
"required": [
35+
"name",
36+
"command"
37+
],
38+
"properties": {
39+
"name": {
40+
"markdownDescription": "A readable name for display",
41+
"description.zh-cn": "用于显示的可读名称",
42+
"type": "string"
43+
},
44+
"command": {
45+
"markdownDescription": "Shell command line",
46+
"description.zh-cn": "Shell 命令行",
47+
"type": "string"
48+
},
49+
"disable": {
50+
"markdownDescription": "Disable this command",
51+
"description.zh-cn": "禁用此命令",
52+
"type": "boolean",
53+
"enum": [
54+
true,
55+
false
56+
]
57+
},
58+
"abortAfterFailed": {
59+
"markdownDescription": "Whether to skip subsequent commands if this command failed",
60+
"description.zh-cn": "是否在此命令失败时,跳过后续的命令",
61+
"type": "boolean",
62+
"enum": [
63+
true,
64+
false
65+
]
66+
},
67+
"stopBuildAfterFailed": {
68+
"markdownDescription": "Whether to stop compiling directly when this command failed",
69+
"description.zh-cn": "是否在此命令失败时,直接停止编译",
70+
"type": "boolean",
71+
"enum": [
72+
true,
73+
false
74+
]
75+
}
76+
}
77+
}
78+
},
79+
"afterBuildTasks": {
80+
"markdownDescription": "List of commands to execute after build",
81+
"description.zh-cn": "构建结束后要执行的命令列表",
82+
"type": "array",
83+
"default": [
84+
{
85+
"name": "clean",
86+
"command": "del \"${OutDir}\\*._*\""
87+
}
88+
],
89+
"items": {
90+
"type": "object",
91+
"required": [
92+
"name",
93+
"command"
94+
],
95+
"properties": {
96+
"name": {
97+
"markdownDescription": "A readable name for display",
98+
"description.zh-cn": "用于显示的可读名称",
99+
"type": "string"
100+
},
101+
"command": {
102+
"markdownDescription": "Shell command line",
103+
"description.zh-cn": "Shell 命令行",
104+
"type": "string"
105+
},
106+
"disable": {
107+
"markdownDescription": "Disable this command",
108+
"description.zh-cn": "禁用此命令",
109+
"type": "boolean",
110+
"enum": [
111+
true,
112+
false
113+
]
114+
},
115+
"abortAfterFailed": {
116+
"markdownDescription": "Whether to skip subsequent commands if this command failed",
117+
"description.zh-cn": "是否在此命令失败时,跳过后续的命令",
118+
"type": "boolean",
119+
"enum": [
120+
true,
121+
false
122+
]
123+
}
124+
}
125+
}
126+
},
127+
"global": {
128+
"markdownDescription": "Global Options",
129+
"description.zh-cn": "全局选项",
130+
"type": "object",
131+
"properties": {
132+
"mem-model": {
133+
"type": "string",
134+
"markdownDescription": "Memory Model",
135+
"default": "small",
136+
"enum": [
137+
"small",
138+
"large"
139+
]
140+
},
141+
"iram-size": {
142+
"markdownDescription": "Internal RAM Size (idata)",
143+
"size": "small",
144+
"type": "string",
145+
"default": "128"
146+
},
147+
"xram-size": {
148+
"markdownDescription": "External RAM Size (xdata)",
149+
"size": "small",
150+
"type": "string",
151+
"default": "0"
152+
},
153+
"code-size": {
154+
"markdownDescription": "Flash Size (code)",
155+
"size": "small",
156+
"type": "string",
157+
"default": "8192"
158+
},
159+
"optimize-type": {
160+
"type": "string",
161+
"readable_name": "Optimization Level",
162+
"markdownDescription": "Optimization Level",
163+
"description.zh-cn": "代码优化级别",
164+
"default": "balanced",
165+
"enum": [
166+
"speed",
167+
"balanced",
168+
"size"
169+
]
170+
},
171+
"peep-asm": {
172+
"type": "boolean",
173+
"readable_name": "Peephole Optimize Inline Assembly Code",
174+
"markdownDescription": "Enable peephole optimization on inline assembly",
175+
"enum": [
176+
true,
177+
false
178+
]
179+
},
180+
"peep-return": {
181+
"type": "boolean",
182+
"readable_name": "Peephole Optimize 'return' Instructions",
183+
"markdownDescription": "Enable peephole optimization for return instructions",
184+
"enum": [
185+
true,
186+
false
187+
]
188+
},
189+
"allow-unsafe-read": {
190+
"type": "boolean",
191+
"readable_name": "Allow Unsafe Memory Read",
192+
"markdownDescription": "Allow optimizations to read any memory location anytime",
193+
"enum": [
194+
true,
195+
false
196+
]
197+
},
198+
"plain-char-is-signed": {
199+
"type": "boolean",
200+
"readable_name": "Plain Char Is Signed",
201+
"markdownDescription": "Plain char is signed",
202+
"enum": [
203+
true,
204+
false
205+
]
206+
},
207+
"misc-controls": {
208+
"markdownDescription": "Other Global Options",
209+
"description.zh-cn": "编译器附加选项(全局)",
210+
"$ref": "#/definitions/misc-controls"
211+
}
212+
}
213+
},
214+
"c/cpp-compiler": {
215+
"markdownDescription": "C/C++ Compiler Options",
216+
"description.zh-cn": "C/C++ 编译器选项",
217+
"type": "object",
218+
"properties": {
219+
"language-c": {
220+
"markdownDescription": "C Standard",
221+
"description.zh-cn": "C 标准",
222+
"type": "string",
223+
"default": "c99",
224+
"enum": [
225+
"c89",
226+
"sdcc89",
227+
"c95",
228+
"c99",
229+
"sdcc99",
230+
"c11",
231+
"sdcc11",
232+
"c2x",
233+
"sdcc2x"
234+
]
235+
},
236+
"misc-controls": {
237+
"markdownDescription": "Other C Compiler Options",
238+
"description.zh-cn": "C 编译器附加选项",
239+
"$ref": "#/definitions/misc-controls"
240+
}
241+
}
242+
},
243+
"asm-compiler": {
244+
"markdownDescription": "Assembler Options",
245+
"description.zh-cn": "汇编器选项",
246+
"type": "object",
247+
"properties": {
248+
"defines": {
249+
"markdownDescription": "Define Symbols",
250+
"type": "array",
251+
"items": {
252+
"type": "string"
253+
}
254+
},
255+
"ASM_FLAGS": {
256+
"markdownDescription": "Assembler Options",
257+
"description.zh-cn": "汇编器参数",
258+
"$ref": "#/definitions/FLAGS",
259+
"default": ""
260+
}
261+
}
262+
},
263+
"linker": {
264+
"markdownDescription": "Linker Options",
265+
"description.zh-cn": "链接器选项",
266+
"type": "object",
267+
"properties": {
268+
"output-format": {
269+
"type": "string",
270+
"default": "hex",
271+
"description": "Output Format",
272+
"description.zh-cn": "输出格式",
273+
"enum": [
274+
"elf",
275+
"lib"
276+
],
277+
"enumDescriptions": [
278+
"ELF",
279+
"LIB"
280+
]
281+
},
282+
"remove-unused-input-sections": {
283+
"markdownDescription": "Remove Unused Input Sections (--gc-sections)",
284+
"type": "boolean",
285+
"default": false
286+
},
287+
"misc-controls": {
288+
"markdownDescription": "Other Linker Options",
289+
"description.zh-cn": "链接器附加选项",
290+
"$ref": "#/definitions/misc-controls"
291+
},
292+
"LIB_FLAGS": {
293+
"readable_name": "Lib Flags",
294+
"readable_name.zh-cn": "链接库选项",
295+
"markdownDescription": "Lib Flags, like: -lxxx",
296+
"description.zh-cn": "链接库选项,例如:-lxxx",
297+
"$ref": "#/definitions/FLAGS",
298+
"default": ""
299+
},
300+
"object-order": {
301+
"type": "array",
302+
"readable_name": "Object Order",
303+
"readable_name.zh-cn": "Object Order",
304+
"markdownDescription": "Object Order (used to determine the order in which object files are linked)",
305+
"description.zh-cn": "Object Order(用于决定某些 obj 文件的链接顺序)",
306+
"default": [],
307+
"items": {
308+
"type": "object",
309+
"properties": {
310+
"pattern": {
311+
"type": "string",
312+
"readable_name": "Pattern",
313+
"description": "A glob pattern (https://github.com/dazinator/DotNet.Glob) to match a object (*.o) file",
314+
"default": "**/your/pattern/for/object/file/path/*.o"
315+
},
316+
"order": {
317+
"type": "number",
318+
"readable_name": "Order",
319+
"description": "An integer number (The smaller the value, the higher the priority)",
320+
"default": 0
321+
}
322+
}
323+
}
324+
}
325+
}
326+
}
327+
}
328+
}

lib/node-utility

package.json

Lines changed: 7 additions & 1 deletion
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.14",
39+
"version": "3.24.0",
4040
"preview": false,
4141
"engines": {
4242
"vscode": "^1.67.0"
@@ -467,6 +467,12 @@
467467
"markdownDescription": "%settings.sdcc.install.folder%",
468468
"default": "${userHome}/.eide/tools/sdcc"
469469
},
470+
"EIDE.SDCC.GNU_MCS51.InstallDirectory": {
471+
"type": "string",
472+
"scope": "resource",
473+
"markdownDescription": "%settings.sdcc.install.folder%",
474+
"default": "${userHome}/.eide/tools/sdcc_mcs51"
475+
},
470476
"EIDE.RISCV.InstallDirectory": {
471477
"type": "string",
472478
"scope": "resource",

res/data/builtin_headers/lint_sdcc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,7 @@ typedef volatile _Bool __sbit;
4747
typedef volatile unsigned char __sfr;
4848
typedef volatile unsigned short __sfr16;
4949
typedef volatile unsigned long __sfr32;
50+
51+
#if defined(__SDCC_GNU_AS)
52+
extern void __delay_cycles(unsigned int x);
53+
#endif

0 commit comments

Comments
 (0)