本来我之前很喜欢用visual stdudio写代码的, 这样在电脑上能够运行的代码,放到单片机上也是可以运行的.但是之前在使用linux中的list.h的时候, 在visual studio编译不过. 因此经过找网上的各种资源,最终整合了这篇文章
1.首先安装vscode.
2.安装mingw
以上网上有很多人讲关于这个环境的配置,照着做都能够成功
3.编写简单的makefile
可以看看B站李慧芹老师的视频第70个视频,关于makefile的编写, 有那点基础够目前用的了.但是要注意优点不同: 要将rm换位del, 目前我还不会分目录, 但是基本够用了, 我们如果需要添加xxx.c, 则在这个makfile文件里面添加xxx.o即可
OBJS=main.o bsp_led.o
CC=gcc
CFLAGS+=-c -Wall -g
test:$(OBJS)
$(CC) $^ -o $@
%.o:%.c
$(CC) $^ $(CFLAGS) -o $@
clean:
del *.o *.exe
编译: mingw32-make
清理: mingw32-make clean
运行可执行文件:.\test.exe
调试的时候先别在程序里写while(1), 否则终端就卡着了,就只有删除终端, 然后重新打开新的终端了.当然也可以调试, 打断点.单步调试.
下面这个makefile就比较通用了, 可以完全不修改直接用于工程中了, 但是唯一不足的是所有的.c和.h还是在同一级目录.所有的.o和.exe文件都在obj文件夹下, 并且这个obj文件夹也是makefile自动生成的.
.PHONY: all clean
MKDIR = mkdir
RM = del
RMFLAGS = /q
CC = gcc
DIR_OBJS = obj
DIR_EXES = obj
DIRS = $(DIR_OBJS) $(DIR_EXES)
EXE = $(DIR_EXES)/test
SRCS = $(wildcard *.c)
OBJS = $(SRCS:.c=.o)
OBJS := $(addprefix $(DIR_OBJS)/, $(OBJS))
all: $(DIRS) $(EXE)
$(DIRS):
$(MKDIR) $@
$(EXE): $(OBJS)
$(CC) -o $@ $^
$(DIR_OBJS)/%.o: %.c
$(CC) -o $@ -c $^
clean:
$(RM) $(RMFLAGS) $(DIRS) $(DIR_EXES)