diff --git a/.gitignore b/.gitignore
index a9445131bff9ac74f443e4f7865bb47e32f54769..f79293a9c0b686f0cb5fcd5f5760dfcea671c309 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,5 @@
 minichlink/minichlink
 minichlink/minichlink.so
 compile_commands.json
+.clangd
+.cache
diff --git a/ch32v003fun/ch32v003fun.mk b/ch32v003fun/ch32v003fun.mk
index 15330b3b62a6a343138612e7198d59cf3a89f9ca..278b7361d74b728961d7fe4678ce8931aca58ee3 100644
--- a/ch32v003fun/ch32v003fun.mk
+++ b/ch32v003fun/ch32v003fun.mk
@@ -52,9 +52,12 @@ gdbserver :
 clangd :
 	make clean
 	bear -- make build
+	@echo "CompileFlags:" > .clangd
+	@echo "  Remove: [-march=*, -mabi=*]" >> .clangd
 
 clangd_clean :
-	rm -f compile_commands.json
+	rm -f compile_commands.json .clangd
+	rm -rf .cache
 
 FLASH_COMMAND?=$(MINICHLINK)/minichlink -w $< $(WRITE_SECTION) -b