From bf77ead022baa05cf084ee2745f4684941556d6b Mon Sep 17 00:00:00 2001 From: Yiyang Wu Date: Fri, 6 Sep 2024 15:36:50 +0800 Subject: [PATCH 1/4] infra: add cmake and repo support Signed-off-by: Yiyang Wu --- .devcontainer/Dockerfile | 3 +++ .devcontainer/devcontainer.json | 1 + 2 files changed, 4 insertions(+) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 2b43769b..435bb977 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -62,6 +62,9 @@ RUN curl -SLO https://download.qemu.org/qemu-9.1.0.tar.xz && \ RUN apt-get install -y libglib2.0-dev RUN apt-get clean +# install repo +RUN curl -SL https://storage.googleapis.com/git-repo-downloads/repo -o /usr/local/bin/repo && \ + chmod +x /usr/local/bin/repo RUN useradd -m -u $USER_UID -U -s /bin/bash stu RUN usermod -aG sudo stu RUN passwd -d stu diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9732b5c6..1c585894 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -11,6 +11,7 @@ "ms-vscode.hexeditor", "llvm-vs-code-extensions.vscode-clangd", "ms-vscode.makefile-tools", + "twxs.cmake", "dan-c-underwood.arm" ] } From f63d629cefd49775fc21f608b56bb767e9587785 Mon Sep 17 00:00:00 2001 From: Yiyang Wu Date: Fri, 6 Sep 2024 15:37:17 +0800 Subject: [PATCH 2/4] docs: minor fixes Signed-off-by: Yiyang Wu --- Pages/Appendix/kernel-debugging.md | 6 ++++-- Pages/Getting-started.md | 2 +- Pages/Lab1.md | 11 ++++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Pages/Appendix/kernel-debugging.md b/Pages/Appendix/kernel-debugging.md index 00bd2ac1..ecd092f4 100644 --- a/Pages/Appendix/kernel-debugging.md +++ b/Pages/Appendix/kernel-debugging.md @@ -1,10 +1,12 @@ # 调试指北 - - > [!IMPORTANT] > 调试占据着你的大部分做lab的时间,本节主要讲解实验当中你可能需要使用到的调试手段,以及对应的工具使用方法. +--- + + + ## VSCode 在Lab0中我们学习并熟悉了GDB的使用方法,但是从Lab开始,Lab中的可调试文件就陡然增加了,使用GDB最麻烦的地方就是定位源文件进行单步调试, diff --git a/Pages/Getting-started.md b/Pages/Getting-started.md index 6191a32b..b018a7d4 100644 --- a/Pages/Getting-started.md +++ b/Pages/Getting-started.md @@ -76,4 +76,4 @@ zypper install qemu qemu-linux-user python3 python3-psutil make gdb ## CI评分 -在新实验中,我们特意准备了支持github actions以及gitlab ci的CI配置,你可以在你所使用的代码托管平台上自动运行脚本,为了确保你不会篡改预编译的`.obj`文件,我们会根据本仓库的主线的各个Lab中的`filelists.mk`(详细见贡献指南)的定义自动提取提交中所需要的文件与仓库主线的文件树进行合并,最终进行评分。 +在新实验中,我们特意准备了支持github actions以及gitlab ci的CI配置,你可以在你所使用的代码托管平台上自动运行脚本,为了确保你不会篡改预编译的`.obj`文件,我们会根据本仓库的主线的各个Lab中的`filelist.mk`(详细见贡献指南)的定义自动提取提交中所需要的文件与当前仓库主线的文件树进行合并,最终进行评分。 diff --git a/Pages/Lab1.md b/Pages/Lab1.md index 570087b1..83c4341d 100644 --- a/Pages/Lab1.md +++ b/Pages/Lab1.md @@ -2,10 +2,15 @@ ## 简介 -本实验作为 ChCore 操作系统课程实验的第一个实验,分为两个部分:第一部分介绍实验所需的基础知识,第二部分熟悉并完成ChCore 内核的启动过程。 -实验面向的硬件平台是树莓派3b+(AArch64)。你可以在QEMU模拟器上完成实验,也可以在树莓派开发板上完成。 +本实验作为 ChCore 操作系统课程实验的第一个实验,分为三个部分, + +1. [RTFSC](../Lab1/RTFSC.html): 代码导读,由于是Lab1,我们主要注重于Chcore的构建系统。 +2. [机器启动](../Lab1/boot.html):介绍aarch64结构启动时的关键寄存器以及关键的启动函数。 +3. [页表配置](../Lab1/pte.html):介绍aarch64页表结构,以及针对树莓派3平台的内存布局编写页表配置。 + +本实验你可以在QEMU模拟器上完成实验,也可以在树莓派开发板上完成。 +本实验代码包含了基础的ChCore 微内核操作系统,除了练习题相关的源码以外,其余部分通过预先编译的二进制格式提供。 -本实验代码包含了基础的ChCore 微内核操作系统,除了练习题相关的源码以外,其余部分通过二进制格式提供。 完成本实验的练习题之后,你可以进入 ChCore shell,运行命令或执行程序。 例如,可以在 shell 中输入 `hello_world.bin` 运行一个简单的用户态程序; 输入`ls` 查看目录内容。 From 9d7bc139bc93b9ba34a779dd6e53fd393b68b2ba Mon Sep 17 00:00:00 2001 From: Yiyang Wu Date: Sat, 7 Sep 2024 14:49:49 +0800 Subject: [PATCH 3/4] refactor: move all scripts into toplevel Signed-off-by: Yiyang Wu --- Lab1/CMakeLists.txt | 2 +- .../arch/aarch64/boot/raspi3/CMakeLists.txt | 9 ------ Lab1/scripts/qemu/emulate.tpl.sh | 28 ------------------- .../scripts => Scripts}/build/buildup_cpp.sh | 0 .../build/cmake/DumpConfig.cmake | 0 .../build/cmake/Helpers/input.sh | 0 .../build/cmake/LoadConfig.cmake | 0 .../build/cmake/LoadConfigAbort.cmake | 0 .../build/cmake/LoadConfigAsk.cmake | 0 .../build/cmake/LoadConfigDefault.cmake | 0 .../build/cmake/Modules/CommonTools.cmake | 0 .../build/cmake/Modules/KernelTools.cmake | 16 ----------- .../build/cmake/Modules/LibAppTools.cmake | 0 .../build/cmake/Modules/Platform/ChCore.cmake | 0 .../build/cmake/Modules/SubProject.cmake | 0 .../cmake/Modules/SystemServiceTools.cmake | 0 .../build/cmake/Toolchains/_common.cmake | 0 .../build/cmake/Toolchains/kernel.cmake | 0 .../cmake/Toolchains/kernel_fbinfer.cmake | 0 .../cmake/Toolchains/toolchain_tpl.cmake | 0 .../build/cmake/Toolchains/user.cmake | 0 .../build/defconfigs/raspi3.config | 0 .../build/defconfigs/raspi4.config | 0 {Lab1/scripts => Scripts}/build/demos.sh | 0 .../build/generate_manifest.py | 0 {Lab1/scripts => Scripts}/build/manifest.xml | 0 Scripts/chbuild | 7 +++-- {Lab1/scripts => Scripts}/gdb/gdb.py | 0 {Lab1/scripts => Scripts}/gdb/gdbinit | 0 Scripts/kernel.mk | 6 ++-- .../scripts/qemu => Scripts}/qemu_wrapper.sh | 0 31 files changed, 8 insertions(+), 60 deletions(-) delete mode 100644 Lab1/scripts/qemu/emulate.tpl.sh rename {Lab1/scripts => Scripts}/build/buildup_cpp.sh (100%) rename {Lab1/scripts => Scripts}/build/cmake/DumpConfig.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Helpers/input.sh (100%) rename {Lab1/scripts => Scripts}/build/cmake/LoadConfig.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/LoadConfigAbort.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/LoadConfigAsk.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/LoadConfigDefault.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Modules/CommonTools.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Modules/KernelTools.cmake (82%) rename {Lab1/scripts => Scripts}/build/cmake/Modules/LibAppTools.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Modules/Platform/ChCore.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Modules/SubProject.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Modules/SystemServiceTools.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Toolchains/_common.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Toolchains/kernel.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Toolchains/kernel_fbinfer.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Toolchains/toolchain_tpl.cmake (100%) rename {Lab1/scripts => Scripts}/build/cmake/Toolchains/user.cmake (100%) rename {Lab1/scripts => Scripts}/build/defconfigs/raspi3.config (100%) rename {Lab1/scripts => Scripts}/build/defconfigs/raspi4.config (100%) rename {Lab1/scripts => Scripts}/build/demos.sh (100%) rename {Lab1/scripts => Scripts}/build/generate_manifest.py (100%) rename {Lab1/scripts => Scripts}/build/manifest.xml (100%) rename {Lab1/scripts => Scripts}/gdb/gdb.py (100%) rename {Lab1/scripts => Scripts}/gdb/gdbinit (100%) rename {Lab1/scripts/qemu => Scripts}/qemu_wrapper.sh (100%) diff --git a/Lab1/CMakeLists.txt b/Lab1/CMakeLists.txt index 32f6df48..1bef1580 100644 --- a/Lab1/CMakeLists.txt +++ b/Lab1/CMakeLists.txt @@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.14) project(ChCore) -set(_cmake_script_dir ${CMAKE_CURRENT_SOURCE_DIR}/scripts/build/cmake) +set(_cmake_script_dir ${CMAKE_CURRENT_SOURCE_DIR}/../Scripts/build/cmake) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${_cmake_script_dir}/Modules) set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_BINARY_DIR}/user) diff --git a/Lab1/kernel/arch/aarch64/boot/raspi3/CMakeLists.txt b/Lab1/kernel/arch/aarch64/boot/raspi3/CMakeLists.txt index 0b60ec4a..b33d78b9 100644 --- a/Lab1/kernel/arch/aarch64/boot/raspi3/CMakeLists.txt +++ b/Lab1/kernel/arch/aarch64/boot/raspi3/CMakeLists.txt @@ -28,12 +28,3 @@ set(init_objects chcore_objcopy_binary(${kernel_target} kernel8.img) -# Note: `$basedir` is a shell variable in `emulate.tpl.sh` -set(_qemu_opts - "-machine raspi3b -nographic -serial mon:stdio -m size=1G -kernel \$basedir/kernel.img" -) -if(CHCORE_QEMU_SDCARD_IMG) - set(_qemu_opts - "${_qemu_opts} -drive if=sd,format=raw,file=${CHCORE_QEMU_SDCARD_IMG}") -endif() -chcore_generate_emulate_sh("qemu-system-aarch64" ${_qemu_opts}) diff --git a/Lab1/scripts/qemu/emulate.tpl.sh b/Lab1/scripts/qemu/emulate.tpl.sh deleted file mode 100644 index 2292de5d..00000000 --- a/Lab1/scripts/qemu/emulate.tpl.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -# Copyright (c) 2023 Institute of Parallel And Distributed Systems (IPADS), Shanghai Jiao Tong University (SJTU) -# Licensed under the Mulan PSL v2. -# You can use this software according to the terms and conditions of the Mulan PSL v2. -# You may obtain a copy of Mulan PSL v2 at: -# http://license.coscl.org.cn/MulanPSL2 -# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR -# PURPOSE. -# See the Mulan PSL v2 for more details. - -set -e - -basedir=$(dirname "$0") -# basedir should be /build directory - -port=$(shuf -i 30000-40000 -n 1) -#while true; do -# port=\$(shuf -i 30000-40000 -n 1) -# netstat -tan | grep \$port > /dev/null 2>&1 -# if [[ \$? -ne 0 ]]; then -# break -# fi -#done -echo $port >$basedir/gdb-port - -$basedir/../scripts/qemu/qemu_wrapper.sh \ - @qemu@ -gdb tcp::$port @qemu_options@ | tee exec_log diff --git a/Lab1/scripts/build/buildup_cpp.sh b/Scripts/build/buildup_cpp.sh similarity index 100% rename from Lab1/scripts/build/buildup_cpp.sh rename to Scripts/build/buildup_cpp.sh diff --git a/Lab1/scripts/build/cmake/DumpConfig.cmake b/Scripts/build/cmake/DumpConfig.cmake similarity index 100% rename from Lab1/scripts/build/cmake/DumpConfig.cmake rename to Scripts/build/cmake/DumpConfig.cmake diff --git a/Lab1/scripts/build/cmake/Helpers/input.sh b/Scripts/build/cmake/Helpers/input.sh similarity index 100% rename from Lab1/scripts/build/cmake/Helpers/input.sh rename to Scripts/build/cmake/Helpers/input.sh diff --git a/Lab1/scripts/build/cmake/LoadConfig.cmake b/Scripts/build/cmake/LoadConfig.cmake similarity index 100% rename from Lab1/scripts/build/cmake/LoadConfig.cmake rename to Scripts/build/cmake/LoadConfig.cmake diff --git a/Lab1/scripts/build/cmake/LoadConfigAbort.cmake b/Scripts/build/cmake/LoadConfigAbort.cmake similarity index 100% rename from Lab1/scripts/build/cmake/LoadConfigAbort.cmake rename to Scripts/build/cmake/LoadConfigAbort.cmake diff --git a/Lab1/scripts/build/cmake/LoadConfigAsk.cmake b/Scripts/build/cmake/LoadConfigAsk.cmake similarity index 100% rename from Lab1/scripts/build/cmake/LoadConfigAsk.cmake rename to Scripts/build/cmake/LoadConfigAsk.cmake diff --git a/Lab1/scripts/build/cmake/LoadConfigDefault.cmake b/Scripts/build/cmake/LoadConfigDefault.cmake similarity index 100% rename from Lab1/scripts/build/cmake/LoadConfigDefault.cmake rename to Scripts/build/cmake/LoadConfigDefault.cmake diff --git a/Lab1/scripts/build/cmake/Modules/CommonTools.cmake b/Scripts/build/cmake/Modules/CommonTools.cmake similarity index 100% rename from Lab1/scripts/build/cmake/Modules/CommonTools.cmake rename to Scripts/build/cmake/Modules/CommonTools.cmake diff --git a/Lab1/scripts/build/cmake/Modules/KernelTools.cmake b/Scripts/build/cmake/Modules/KernelTools.cmake similarity index 82% rename from Lab1/scripts/build/cmake/Modules/KernelTools.cmake rename to Scripts/build/cmake/Modules/KernelTools.cmake index 92391080..a7c2b52c 100644 --- a/Lab1/scripts/build/cmake/Modules/KernelTools.cmake +++ b/Scripts/build/cmake/Modules/KernelTools.cmake @@ -69,19 +69,3 @@ function(chcore_objcopy_binary _kernel_target _binary_name) DESTINATION ${CMAKE_INSTALL_PREFIX}) endfunction() -# Add target to generate qemu emulation script. -function(chcore_generate_emulate_sh _qemu _qemu_options) - set(qemu ${_qemu}) - set(qemu_options ${_qemu_options}) - configure_file(${CHCORE_PROJECT_DIR}/scripts/qemu/emulate.tpl.sh emulate.sh - @ONLY) - unset(qemu) - unset(qemu_options) - - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/emulate.sh - DESTINATION ${CMAKE_INSTALL_PREFIX}) - install( - PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/emulate.sh - DESTINATION ${CMAKE_INSTALL_PREFIX} - RENAME simulate.sh) -endfunction() diff --git a/Lab1/scripts/build/cmake/Modules/LibAppTools.cmake b/Scripts/build/cmake/Modules/LibAppTools.cmake similarity index 100% rename from Lab1/scripts/build/cmake/Modules/LibAppTools.cmake rename to Scripts/build/cmake/Modules/LibAppTools.cmake diff --git a/Lab1/scripts/build/cmake/Modules/Platform/ChCore.cmake b/Scripts/build/cmake/Modules/Platform/ChCore.cmake similarity index 100% rename from Lab1/scripts/build/cmake/Modules/Platform/ChCore.cmake rename to Scripts/build/cmake/Modules/Platform/ChCore.cmake diff --git a/Lab1/scripts/build/cmake/Modules/SubProject.cmake b/Scripts/build/cmake/Modules/SubProject.cmake similarity index 100% rename from Lab1/scripts/build/cmake/Modules/SubProject.cmake rename to Scripts/build/cmake/Modules/SubProject.cmake diff --git a/Lab1/scripts/build/cmake/Modules/SystemServiceTools.cmake b/Scripts/build/cmake/Modules/SystemServiceTools.cmake similarity index 100% rename from Lab1/scripts/build/cmake/Modules/SystemServiceTools.cmake rename to Scripts/build/cmake/Modules/SystemServiceTools.cmake diff --git a/Lab1/scripts/build/cmake/Toolchains/_common.cmake b/Scripts/build/cmake/Toolchains/_common.cmake similarity index 100% rename from Lab1/scripts/build/cmake/Toolchains/_common.cmake rename to Scripts/build/cmake/Toolchains/_common.cmake diff --git a/Lab1/scripts/build/cmake/Toolchains/kernel.cmake b/Scripts/build/cmake/Toolchains/kernel.cmake similarity index 100% rename from Lab1/scripts/build/cmake/Toolchains/kernel.cmake rename to Scripts/build/cmake/Toolchains/kernel.cmake diff --git a/Lab1/scripts/build/cmake/Toolchains/kernel_fbinfer.cmake b/Scripts/build/cmake/Toolchains/kernel_fbinfer.cmake similarity index 100% rename from Lab1/scripts/build/cmake/Toolchains/kernel_fbinfer.cmake rename to Scripts/build/cmake/Toolchains/kernel_fbinfer.cmake diff --git a/Lab1/scripts/build/cmake/Toolchains/toolchain_tpl.cmake b/Scripts/build/cmake/Toolchains/toolchain_tpl.cmake similarity index 100% rename from Lab1/scripts/build/cmake/Toolchains/toolchain_tpl.cmake rename to Scripts/build/cmake/Toolchains/toolchain_tpl.cmake diff --git a/Lab1/scripts/build/cmake/Toolchains/user.cmake b/Scripts/build/cmake/Toolchains/user.cmake similarity index 100% rename from Lab1/scripts/build/cmake/Toolchains/user.cmake rename to Scripts/build/cmake/Toolchains/user.cmake diff --git a/Lab1/scripts/build/defconfigs/raspi3.config b/Scripts/build/defconfigs/raspi3.config similarity index 100% rename from Lab1/scripts/build/defconfigs/raspi3.config rename to Scripts/build/defconfigs/raspi3.config diff --git a/Lab1/scripts/build/defconfigs/raspi4.config b/Scripts/build/defconfigs/raspi4.config similarity index 100% rename from Lab1/scripts/build/defconfigs/raspi4.config rename to Scripts/build/defconfigs/raspi4.config diff --git a/Lab1/scripts/build/demos.sh b/Scripts/build/demos.sh similarity index 100% rename from Lab1/scripts/build/demos.sh rename to Scripts/build/demos.sh diff --git a/Lab1/scripts/build/generate_manifest.py b/Scripts/build/generate_manifest.py similarity index 100% rename from Lab1/scripts/build/generate_manifest.py rename to Scripts/build/generate_manifest.py diff --git a/Lab1/scripts/build/manifest.xml b/Scripts/build/manifest.xml similarity index 100% rename from Lab1/scripts/build/manifest.xml rename to Scripts/build/manifest.xml diff --git a/Scripts/chbuild b/Scripts/chbuild index 4f71f6cf..6949a8bd 100755 --- a/Scripts/chbuild +++ b/Scripts/chbuild @@ -18,14 +18,14 @@ clean_command="$self clean" cmake_build_dir="build" cmake_cache_file="build/CMakeCache.txt" -cmake_script_dir="scripts/build/cmake" +cmake_script_dir="$SCRIPTS/build/cmake" cmake_init_cache_default="$cmake_script_dir/LoadConfigDefault.cmake" cmake_init_cache_ask="$cmake_script_dir/LoadConfigAsk.cmake" cmake_init_cache_abort="$cmake_script_dir/LoadConfigAbort.cmake" cmake_init_cache_dump="$cmake_script_dir/DumpConfig.cmake" config_file=".config" -defconfig_dir="scripts/build/defconfigs" +defconfig_dir="$SCRIPTS/build/defconfigs" repo_tool_dir=".repo" manifest_upstream="git@ipads.se.sjtu.edu.cn:staros/staros-manifests.git" @@ -275,10 +275,11 @@ _docker_run() { echo "chbuild: use_cgroup: $use_cgroup, tags: $CI_RUNNER_TAGS" test -t 1 && use_tty="-t" docker run -i $use_tty --rm \ + -e SCRIPTS=$SCRIPTS \ -u $(id -u ${USER}):$(id -g ${USER}) \ -v ${LABROOT}:${LABROOT} -w $(pwd) \ --security-opt=seccomp:unconfined \ - ipads/chcore_builder:v1.8.3 \ + ipads/chcore_builder:v1.9.0 \ $self $@ fi } diff --git a/Lab1/scripts/gdb/gdb.py b/Scripts/gdb/gdb.py similarity index 100% rename from Lab1/scripts/gdb/gdb.py rename to Scripts/gdb/gdb.py diff --git a/Lab1/scripts/gdb/gdbinit b/Scripts/gdb/gdbinit similarity index 100% rename from Lab1/scripts/gdb/gdbinit rename to Scripts/gdb/gdbinit diff --git a/Scripts/kernel.mk b/Scripts/kernel.mk index 2ce950e2..943bdc1d 100644 --- a/Scripts/kernel.mk +++ b/Scripts/kernel.mk @@ -7,12 +7,12 @@ endif BUILDDIR := $(LABDIR)/build KERNEL_IMG := $(BUILDDIR)/kernel.img -_QEMU := $(LABDIR)/scripts/qemu/qemu_wrapper.sh $(QEMU) +_QEMU := $(SCRIPTS)/qemu_wrapper.sh $(QEMU) QEMU_GDB_PORT := 1234 QEMU_OPTS := -machine raspi3b -nographic -serial mon:stdio -m size=1G -kernel $(KERNEL_IMG) CHBUILD := $(SCRIPTS)/chbuild -export LABROOT LABDIR LAB TIMEOUT +export LABROOT LABDIR SCRIPTS LAB TIMEOUT all: build @@ -37,7 +37,7 @@ qemu-gdb: build $(Q)$(_QEMU) -S -gdb tcp::$(QEMU_GDB_PORT) $(QEMU_OPTS) gdb: - $(Q)$(GDB) --nx -x $(LABDIR)/.gdbinit + $(Q)$(GDB) --nx -x $(SCRIPTS)/gdb/gdbinit grade: $(MAKE) distclean diff --git a/Lab1/scripts/qemu/qemu_wrapper.sh b/Scripts/qemu_wrapper.sh similarity index 100% rename from Lab1/scripts/qemu/qemu_wrapper.sh rename to Scripts/qemu_wrapper.sh From d441602fd6db99358b55707465ff08d38c015884 Mon Sep 17 00:00:00 2001 From: Yiyang Wu Date: Sat, 7 Sep 2024 14:50:28 +0800 Subject: [PATCH 4/4] vcs: update .gitignore Signed-off-by: Yiyang Wu --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index fe5e0377..451b408f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,7 @@ cscope.* !/**/firmware/*.bin !/**/firmware/*.elf -build +Lab*/build simulate.sh debug.sh .config