From 55d4cdb6b2ba5ad8d292ba1bedee270bdf943a6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=A1=E5=9D=82=E6=98=B4?= Date: Wed, 23 Apr 2025 10:08:58 +0800 Subject: [PATCH] reinit: homework5 --- homework5/.clang-format | 38 ++++++++++++++ homework5/.eide/eide.json | 80 +++++++++++++++++++++++++++++ homework5/.eide/files.options.yml | 20 ++++++++ homework5/.gitignore | 15 ++++++ homework5/.vscode/settings.json | 1 + homework5/.vscode/tasks.json | 40 +++++++++++++++ homework5/homework5.code-workspace | 44 ++++++++++++++++ homework5/homework5.pdsprj | Bin 0 -> 23559 bytes homework5/src/homework5.h | 0 9 files changed, 238 insertions(+) create mode 100644 homework5/.clang-format create mode 100644 homework5/.eide/eide.json create mode 100644 homework5/.eide/files.options.yml create mode 100644 homework5/.gitignore create mode 100644 homework5/.vscode/settings.json create mode 100644 homework5/.vscode/tasks.json create mode 100644 homework5/homework5.code-workspace create mode 100644 homework5/homework5.pdsprj create mode 100644 homework5/src/homework5.h diff --git a/homework5/.clang-format b/homework5/.clang-format new file mode 100644 index 0000000..ecc57c4 --- /dev/null +++ b/homework5/.clang-format @@ -0,0 +1,38 @@ +--- +BasedOnStyle: Microsoft +Language: Cpp + +################################### +# indent conf +################################### + +UseTab: Never +IndentWidth: 4 +TabWidth: 4 +ColumnLimit: 0 +AccessModifierOffset: -4 +NamespaceIndentation: All +FixNamespaceComments: false +BreakBeforeBraces: Linux + +################################### +# other styles +################################### + +# +# for more conf, you can ref: https://clang.llvm.org/docs/ClangFormatStyleOptions.html +# + +AllowShortIfStatementsOnASingleLine: true + +AllowShortLoopsOnASingleLine: true + +AllowShortBlocksOnASingleLine: true + +IndentCaseLabels: true + +SortIncludes: false + +AlignConsecutiveMacros: AcrossEmptyLines + +AlignConsecutiveAssignments: Consecutive diff --git a/homework5/.eide/eide.json b/homework5/.eide/eide.json new file mode 100644 index 0000000..c52fb13 --- /dev/null +++ b/homework5/.eide/eide.json @@ -0,0 +1,80 @@ +{ + "name": "homework5", + "type": "C51", + "dependenceList": [], + "srcDirs": [ + "src" + ], + "virtualFolder": { + "name": "", + "files": [], + "folders": [] + }, + "outDir": "build", + "deviceName": null, + "packDir": null, + "miscInfo": { + "uid": "5e3bef3a1c523fd2f57bb1fdff63f27d" + }, + "targets": { + "Debug": { + "excludeList": [], + "toolchain": "Keil_C51", + "compileConfig": { + "options": "null" + }, + "uploader": "Custom", + "uploadConfig": { + "bin": "", + "commandLine": "", + "eraseChipCommand": "" + }, + "uploadConfigMap": {}, + "custom_dep": { + "name": "default", + "incList": [], + "libList": [], + "defineList": [] + }, + "builderOptions": { + "SDCC": { + "version": 3, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "device": "mcs51", + "optimize-type": "speed", + "use-non-free": false + }, + "c/cpp-compiler": { + "language-c": "c99" + }, + "asm-compiler": {}, + "linker": { + "$mainFileName": "main", + "output-format": "hex" + } + }, + "Keil_C51": { + "version": 2, + "beforeBuildTasks": [], + "afterBuildTasks": [], + "global": { + "ram-mode": "SMALL", + "rom-mode": "LARGE" + }, + "c/cpp-compiler": { + "optimization-type": "SPEED", + "optimization-level": "level-8" + }, + "asm-compiler": {}, + "linker": { + "remove-unused": true, + "output-format": "elf" + } + } + } + } + }, + "version": "3.5" +} \ No newline at end of file diff --git a/homework5/.eide/files.options.yml b/homework5/.eide/files.options.yml new file mode 100644 index 0000000..c258721 --- /dev/null +++ b/homework5/.eide/files.options.yml @@ -0,0 +1,20 @@ +########################################################################################## +# Append Compiler Options For Source Files +########################################################################################## + +# syntax: +# : +# For get pattern syntax, please refer to: https://www.npmjs.com/package/micromatch +# +# examples: +# 'main.cpp': --cpp11 -Og ... +# 'src/*.c': -gnu -O2 ... +# 'src/lib/**/*.cpp': --cpp11 -Os ... +# '!Application/*.c': -O0 +# '**/*.c': -O2 -gnu ... + +version: "2.0" +options: + Debug: + files: {} + virtualPathFiles: {} diff --git a/homework5/.gitignore b/homework5/.gitignore new file mode 100644 index 0000000..c2f4ce9 --- /dev/null +++ b/homework5/.gitignore @@ -0,0 +1,15 @@ +# dot files +/.vscode/launch.json +/.settings +/.eide/log +/.eide.usr.ctx.json + +# project out +/build +/bin +/obj +/out + +# eide template +*.ept +*.eide-template diff --git a/homework5/.vscode/settings.json b/homework5/.vscode/settings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/homework5/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/homework5/.vscode/tasks.json b/homework5/.vscode/tasks.json new file mode 100644 index 0000000..3e192b9 --- /dev/null +++ b/homework5/.vscode/tasks.json @@ -0,0 +1,40 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "type": "shell", + "command": "${command:eide.project.build}", + "group": "build", + "problemMatcher": [] + }, + { + "label": "flash", + "type": "shell", + "command": "${command:eide.project.uploadToDevice}", + "group": "build", + "problemMatcher": [] + }, + { + "label": "build and flash", + "type": "shell", + "command": "${command:eide.project.buildAndFlash}", + "group": "build", + "problemMatcher": [] + }, + { + "label": "rebuild", + "type": "shell", + "command": "${command:eide.project.rebuild}", + "group": "build", + "problemMatcher": [] + }, + { + "label": "clean", + "type": "shell", + "command": "${command:eide.project.clean}", + "group": "build", + "problemMatcher": [] + } + ] +} \ No newline at end of file diff --git a/homework5/homework5.code-workspace b/homework5/homework5.code-workspace new file mode 100644 index 0000000..8c192af --- /dev/null +++ b/homework5/homework5.code-workspace @@ -0,0 +1,44 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": { + "files.autoGuessEncoding": true, + "C_Cpp.default.configurationProvider": "cl.eide", + "C_Cpp.errorSquiggles": "disabled", + "files.associations": { + ".eideignore": "ignore", + "*.a51": "a51", + "*.h": "c", + "*.c": "c", + "*.hxx": "cpp", + "*.hpp": "cpp", + "*.c++": "cpp", + "*.cpp": "cpp", + "*.cxx": "cpp", + "*.cc": "cpp" + }, + "[yaml]": { + "editor.insertSpaces": true, + "editor.tabSize": 4, + "editor.autoIndent": "advanced" + } + }, + "extensions": { + "recommendations": [ + "cl.eide", + "keroc.hex-fmt", + "xiaoyongdong.srecord", + "hars.cppsnippets", + "zixuanwang.linkerscript", + "redhat.vscode-yaml", + "IBM.output-colorizer", + "cschlosser.doxdocgen", + "ms-vscode.vscode-serial-monitor", + "alefragnani.project-manager", + "cl.stm8-debug" + ] + } +} \ No newline at end of file diff --git a/homework5/homework5.pdsprj b/homework5/homework5.pdsprj new file mode 100644 index 0000000000000000000000000000000000000000..4513a8902fd4608c5e87f44c790af8037f0073d1 GIT binary patch literal 23559 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