Skip to content

Commit

Permalink
Merge pull request #146 from github0null/dev
Browse files Browse the repository at this point in the history
v3.8.0 update
  • Loading branch information
github0null authored Jul 30, 2022
2 parents 4f91c5b + 9444e4e commit 5d37cef
Show file tree
Hide file tree
Showing 71 changed files with 2,734 additions and 2,469 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ bin_bk
dotnet-runtime*.exe

# shell script
*.sh
./*.sh

# test
test
206 changes: 206 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,212 @@

***

### [v3.8.0]

**New**:
- 新增 Eclipse 项目导入功能
- 新增 `Setup Utility Tools` 功能 (位于 Operation 栏),可用于自动安装 eide 默认提供的相关工具
- 为 Arm 项目提供更多的 cpu 选项
- 支持为 'Custom Flasher' 设置全片擦除命令
- 新增终端类型:`Eide Terminal`, 插件已将 内置工具,编译器等二进制程序路径 导出至该终端的环境变量
- 增加两个设置项,用于决定是否自动搜索和添加 `include path``.obj .a` 至项目(对于新建项目,默认值为 false):
```
EIDE.SourceTree.AutoSearchIncludePath
EIDE.SourceTree.AutoSearchObjFile
```
- 增加以下新的 `builder task` 变量:
```
${ConfigName}: 项目 Configuration 名称,例如:'Debug', 'Release'
${CompilerId}: 编译器 id, 例如:'gcc', 'sdcc', 'ac5'
${CompilerName} 编译器短名称,例如:'GNU Tools for Arm Embedded Processors 8-2019-q3-update'
${CompilerFullName} 编译器完整名,例如:'arm-none-eabi-gcc.exe (GNU Tools for Arm Embedded Processors 8-2019-q3-update) 8.3.1 20190703 ...'
${CompilerVersion} 编译器版本号,例如:'8.3.1'
${re:ProjectRoot} 项目根目录相对路径,该值固定为:'.'
${re:BuilderFolder} 构建工具目录相对路径
${re:OutDir} 输出目录相对路径,如:'build/Debug'
${re:ToolchainRoot} 编译器根目录相对路径
${re:CompilerFolder} 编译器可执行文件目录相对路径
```
- 支持在安装 jlink 等烧录软件时,自动安装驱动
- 新增内置命令行工具 `verchk`, 用于比较版本字符串,可在 `builder task 中使用`
- 增加 SDCC 模块拆分优化(将源文件尽可能按一个函数一个文件进行拆分,使 SDCC 能够优化程序大小),可在 `构建配置->全局` 中打开,默认关闭
- 增加 `compile_commands.json` 输出
- 重构 `Memory Layout` 视图,更好地融入 VsCode 风格
- 为新项目自动添加 `.clang-format` 文件
- 增加 Save Project 右键菜单项
**Fix**:
- 修复 STVP 无法擦除芯片的问题
- 错误的路径转换 '.' -> './',导致编译器无法识别包含路径
- 通过修改 exc-cfg.yaml 文件无法排除根目录(需要重启才能正常),以及排除文件夹后,文件图标状态未刷新的问题
- 修复从 cmsis package 解析芯片默认 Memory Layout 时出现错误
- 修复 STVP 命令行中的多余参数导致的烧录失败
**Change**:
- 调整 TreeView 中的一些图标
- 生成 Cortex-Debug 调试配置时,只生成必要字段
- 调整烧录器配置默认值
- 移除内置的 `Output Panel` Grammar 文件,推荐使用扩展:`IBM.output-colorizer`
- 在芯片支持包中切换芯片后,不再覆盖 `memory layout` 配置
- 支持直接设置 Keil `UV4.exe` 路径来定位编译器路径
- 自动搜索源文件夹时,跳过以 '.' 开头的文件夹
- 项目自动保存时间间隔改为 100 s
- 自动搜索源文件时,排除以 `.` 开头的文件夹
- 移除添加源文件夹时,不能添加根目录之外的文件夹的限制
- 更改输出目录时,不删除旧的
- 支持为 Any-gcc 选择 linker 类型,可选项:`gcc, ld`,用于支持较老版本的 gcc
- 新建空项目时,不再自动生成默认 `main.c` 文件
- 项目中所有的配置文件名都加上 `target name` 前缀(在旧的版本中,仅 `release` target 无前缀)
- 新建构建配置时,armclang 默认汇编器改为 arm-auto
- armcc 问题匹配器正则表达式调整:https://github.com/github0null/eide/blob/4f91c5bc43ff699f0f2f569a573d1a49be4e8d3a/package.json#L1511
**Optimize**:
- 根据 stvp 烧录配置的芯片名,从 stvp database 中获取 `ram, flash` 大小,用于在编译时显示 `ram/flash` 占比
- 增加如下可在文件路径中使用的变量:
```
${workspaceFolder}
${workspaceFolderBasename}
${OutDirBase}
```
- 加载项目时,去除 `Project Attribute` 中的空值项
- 支持在插件设置的 路径设置项 中使用相对路径(相对路径基于当前工作区)
- 优化 builder options Web view 页面相关控件宽度
- 未找到 .NET 运行时进行下载前,先检查上一次下载的安装包是否有效
- 优化项目保存逻辑
***
### [v3.7.2022072601] preview version
**New**:
- 为 armclang 新增 'armv8m' cpu 类型
**Fix**:
- 修复 STVP 无法擦除芯片的问题
**Optimize**:
- 根据 stvp 烧录配置的芯片名,从 stvp database 中获取 `ram, flash` 大小,用于在编译时显示 `ram/flash` 占比
- 增加如下可在文件路径中使用的变量:
```
${workspaceFolder}
${workspaceFolderBasename}
${OutDirBase}
```
***
### [v3.7.2022072103] preview version
**New**:
- 支持为 'Custom Flasher' 设置全片擦除命令
**Change**:
- 调整 TreeView 中的一些图标
- 生成 Cortex-Debug 调试配置时,只生成必要字段
- 调整烧录器配置默认值
- 移除内置的 `Output Panel` Grammar 文件,推荐使用扩展:`IBM.output-colorizer`
- 在芯片支持包中切换芯片后,不再覆盖 `memory layout` 配置
- 支持直接设置 Keil `UV4.exe` 路径来定位编译器路径
- 自动搜索源文件夹时,跳过以 '.' 开头的文件夹
- 项目自动保存时间间隔改为 100 s
**Optimize**
- 加载项目时,去除 `Project Attribute` 中的空值项
***
### [v3.7.2022071801] preview version
**New**:
- 新增 Eclipse 项目导入功能
- 新增 `Setup Utility Tools` 功能 (位于 Operation 栏),可用于自动安装 eide 默认提供的相关工具
***
### [v3.7.2022071301] preview version
**New**:
- 新增终端类型:`Eide Terminal`, 插件已将 内置工具,编译器等二进制程序路径 导出至该终端的环境变量
- 增加两个设置项,用于决定是否自动搜索和添加 `include path` 及 `.obj .a` 至项目(对于新建项目,默认值为 false):
```
EIDE.SourceTree.AutoSearchIncludePath
EIDE.SourceTree.AutoSearchObjFile
```
- 增加以下新的 `builder task` 变量:
```
${ConfigName}: 项目 Configuration 名称,例如:'Debug', 'Release'
${CompilerId}: 编译器 id, 例如:'gcc', 'sdcc', 'ac5'
${CompilerName} 编译器短名称,例如:'GNU Tools for Arm Embedded Processors 8-2019-q3-update'
${CompilerFullName} 编译器完整名,例如:'arm-none-eabi-gcc.exe (GNU Tools for Arm Embedded Processors 8-2019-q3-update) 8.3.1 20190703 ...'
${CompilerVersion} 编译器版本号,例如:'8.3.1'
${re:ProjectRoot} 项目根目录相对路径,该值固定为:'.'
${re:BuilderFolder} 构建工具目录相对路径
${re:OutDir} 输出目录相对路径,如:'build/Debug'
${re:ToolchainRoot} 编译器根目录相对路径
${re:CompilerFolder} 编译器可执行文件目录相对路径
```
- 支持在安装 jlink 等烧录软件时,自动安装驱动
- 新增内置命令行工具 `verchk`, 用于比较版本字符串,可在 `builder task 中使用`
**Fix**
- 错误的路径转换 '.' -> './',导致编译器无法识别包含路径
- 通过修改 exc-cfg.yaml 文件无法排除根目录(需要重启才能正常),以及排除文件夹后,文件图标状态未刷新的问题
**Change**:
- 自动搜索源文件时,排除以 `.` 开头的文件夹
- 移除添加源文件夹时,不能添加根目录之外的文件夹的限制
- 更改输出目录时,不删除旧的
- 支持为 Any-gcc 选择 linker 类型,可选项:`gcc, ld`,用于支持较老版本的 gcc
- 新建空项目时,不再自动生成默认 `main.c` 文件
- 项目中所有的配置文件名都加上 `target name` 前缀(在旧的版本中,仅 `release` target 无前缀)
**Optimize**:
- 支持在插件设置的 路径设置项 中使用相对路径(相对路径基于当前工作区)
- 优化 builder options Web view 页面相关控件宽度
***
### [v3.7.2022063001] preview version
**New**:
- 增加 SDCC 模块拆分优化(将源文件尽可能按一个函数一个文件进行拆分,使 SDCC 能够优化程序大小),可在 `构建配置->全局` 中打开,默认关闭
- 增加 `compile_commands.json` 输出
***
### [v3.7.2022062501] preview version
**New**:
- 重构 `Memory Layout` 视图,更好地融入 VsCode 风格
- 为新项目自动添加 `.clang-format` 文件
**Fix**:
- 修复从 cmsis package 解析芯片默认 Memory Layout 时出现错误
- 修复 STVP 命令行中的多余参数导致的烧录失败
**Change**:
- 新建构建配置时,armclang 默认汇编器改为 arm-auto
- 自动保存时间间隔改为 `30s`
***
### [v3.7.2022061501] preview version
**New**:
- 增加 Save Project 右键菜单项
**Change**:
- armcc 问题匹配器正则表达式调整:https://github.com/github0null/eide/blob/4f91c5bc43ff699f0f2f569a573d1a49be4e8d3a/package.json#L1511
- 自动保存项目改为 3min 间隔
**Optimize**:
- 未找到 .NET 运行时进行下载前,先检查上一次下载的安装包是否有效
- 优化项目保存逻辑
***
### [v3.7.2]
**New**:
Expand Down
23 changes: 12 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,18 @@ Provide `8051/AVR/STM8/Cortex-M/RISC-V` project development, compilation, burnin

## Features 🎉

* Support development of 8051, AVR, STM8, Cortex-M\[0/0+/3/4/7], RISC-V, Universal-Gcc projects
* Support to import KEIL projects (KEIL 5 and later only)
* Support for installing standard KEIL chip support packs (only for Cortex-M projects)
* Provides rich project templates for quick start projects
* One-click compilation, fast compilation, support a variety of mainstream compilation tools (support: armcc, gcc-arm-none-eabi, keil_c51, sdcc ...)
* One key to burn chip, support a variety of mainstream burn device (support: jlink, stlink, openocd, pyocd ...)
* Built-in serial port monitor, one click to open the serial port
* Supports static checking of projects using Cppcheck
* Automatically generates default debug configurations for debugger plug-in `cortex-debug/STM8-Debug`
* Support for writing JS scripts to import arbitrary IDE project source file resources
* Built in a variety of utilities, 'CMSIS Config Wizard UI', 'disassembly view', 'program resource view'...
* Support development of 8051, AVR, STM8, Cortex-M, RISC-V, Universal-Gcc projects.
* Support to import KEIL5/Eclipse projects, support to import 'IAR-STM8, IAR-ARM, Segger Embedded Studio' project source file resource tree.
* Support for installing standard KEIL chip support packs (only for Cortex-M projects).
* Provides rich project templates for quick start projects.
* One-click compilation, fast compilation, support a variety of mainstream compilation tools (support: armcc, gcc-arm-none-eabi, riscv-gcc, xxx-gcc, keil_c51, sdcc ...).
* One key to burn chip, support a variety of mainstream burn device (support: jlink, stlink, openocd, pyocd ...).
* Built-in serial port monitor, one click to open the serial port.
* Supports static checking of projects using Cppcheck.
* Automatically generates default debug configurations for debugger plug-in `cortex-debug/STM8-Debug`.
* Support for writing JS scripts to import arbitrary IDE project source file resources.
* Built-in a variety of utilities, 'CMSIS Config Wizard UI', 'disassembly view', 'program resource view'...
* Built-in implement `C/C++ IntelliSense Provider` for `ms-vscode.cpptools`, **Not Need to** configurate `c_cpp_properties.json` file.

***

Expand Down
20 changes: 10 additions & 10 deletions README_ZH-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@

## 功能特性 🎉

* 支持开发 8051,STM8,AVR,Cortex-M,RISC-V, AnyGcc 项目
* 支持导入 KEIL 项目 (仅支持 KEIL 5 及以上版本)
* 支持安装标准的 KEIL 芯片支持包 (仅用于 Cortex-M 项目)
* 提供丰富的项目模板方便快速开始项目
* 一键编译、快速编译,支持多种主流的编译工具 (armcc, gcc-arm-none-eabi, keil_c51, sdcc ...)
* 一键烧录到芯片,支持多种主流的烧录器 (jlink, stlink, openocd, pyocd ...)
* 内置的串口监视器,一键打开串口
* 支持使用 Cppcheck 对项目进行静态检查
* 自动生成默认调试配置,为调试器插件 Cortex-debug / STM8-debug 生成默认配置
* 支持编写 js 脚本来导入任意的 IDE 项目源文件资源
* 支持开发 8051,STM8,AVR,Cortex-M,RISC-V, AnyGcc 项目。
* 支持导入 KEIL5/Eclipse 项目,支持导入 `IAR-STM8, IAR-ARM, Segger Embedded Studio` 项目源文件资源树。
* 支持安装标准的 KEIL 芯片支持包 (仅用于 Cortex-M 项目)。
* 提供丰富的项目模板方便快速开始项目。
* 一键编译、快速编译,支持多种主流的编译工具 (armcc, gcc-arm-none-eabi, riscv-gcc, xxx-gcc, keil_c51, sdcc ...)。
* 一键烧录到芯片,支持多种主流的烧录器 (jlink, stlink, openocd, pyocd ...)。
* 内置的串口监视器,一键打开串口。
* 支持使用 Cppcheck 对项目进行静态检查。
* 自动生成默认调试配置,为调试器插件 Cortex-debug / STM8-debug 生成默认配置。
* 内置多种实用工具,`CMSIS Config Wizard UI`, `反汇编查看``程序资源视图` ...
* 内置 C/C++ 插件的 `C/C++ IntelliSense Provider`**无需**配置 `c_cpp_properties.json` 即可获得源码跳转,补全提示功能。

***

Expand Down
4 changes: 2 additions & 2 deletions lang/8051.keil.verify.json
Original file line number Diff line number Diff line change
Expand Up @@ -249,8 +249,8 @@
"lib"
],
"enumDescriptions": [
"OBJ (Object File)",
"LIB (Static Library)"
"OBJ",
"LIB"
]
},
"use-RTX": {
Expand Down
18 changes: 14 additions & 4 deletions lang/any.gcc.verify.json
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,16 @@
"description.zh-cn": "链接器选项",
"type": "object",
"properties": {
"linker-type": {
"type": "string",
"default": "gcc",
"description": "Linker Type",
"description.zh-cn": "链接器类型",
"enum": [
"gcc",
"ld"
]
},
"output-format": {
"type": "string",
"default": "elf",
Expand All @@ -201,8 +211,8 @@
"lib"
],
"enumDescriptions": [
"ELF (Executable Linkable Format)",
"LIB (Static Library)"
"ELF",
"LIB"
]
},
"remove-unused-input-sections": {
Expand All @@ -221,8 +231,8 @@
"LD_FLAGS": {
"readable_name": "Linker Flags",
"readable_name.zh-cn": "链接器参数",
"markdownDescription": "Use \"-Wl[,option]...\" pass options to the linker",
"description.zh-cn": "使用 \"-Wl[,option]...\" 传递链接器选项",
"markdownDescription": "Use '-Wl[,option]...' pass options to the linker",
"description.zh-cn": "使用 '-Wl[,option]...' 传递链接器选项",
"$ref": "#/definitions/FLAGS",
"default": ""
},
Expand Down
8 changes: 4 additions & 4 deletions lang/arm.gcc.verify.json
Original file line number Diff line number Diff line change
Expand Up @@ -296,8 +296,8 @@
"lib"
],
"enumDescriptions": [
"ELF (Executable Linkable Format)",
"LIB (Static Library)"
"ELF",
"LIB"
]
},
"$disableOutputTask": {
Expand All @@ -316,8 +316,8 @@
"LD_FLAGS": {
"readable_name": "Other Linker Options",
"readable_name.zh-cn": "链接器附加选项",
"markdownDescription": "Use \"-Wl[,option]...\" pass options to the linker",
"description.zh-cn": "使用 \"-Wl[,option]...\" 传递链接器选项",
"markdownDescription": "Use '-Wl[,option]...' pass options to the linker",
"description.zh-cn": "使用 '-Wl[,option]...' 传递链接器选项",
"$ref": "#/definitions/FLAGS",
"default": ""
},
Expand Down
4 changes: 2 additions & 2 deletions lang/arm.v5.verify.json
Original file line number Diff line number Diff line change
Expand Up @@ -395,8 +395,8 @@
"lib"
],
"enumDescriptions": [
"AXF (Arm Executable File)",
"LIB (Static Library)"
"AXF",
"LIB"
]
},
"$disableOutputTask": {
Expand Down
4 changes: 2 additions & 2 deletions lang/arm.v6.verify.json
Original file line number Diff line number Diff line change
Expand Up @@ -357,8 +357,8 @@
"lib"
],
"enumDescriptions": [
"AXF (Arm Executable File)",
"LIB (Static Library)"
"AXF",
"LIB"
]
},
"$disableOutputTask": {
Expand Down
Loading

0 comments on commit 5d37cef

Please sign in to comment.