关于mcu不使用IDE(keil,IAR),使用交叉编译工具开发的问题

背景

本文以ti的msp430系列单片机为例
首先去官网下载交叉编译链
https://www.ti.com.cn/tool/cn/MSP430-GCC-OPENSOURCE
我们这里用windows做测试,下载windwos的就可以
image
image

安装以后参照这个 https://zhuanlan.zhihu.com/p/356963477

主要就是两个关键点:
第一:如果是使用vscode编辑器,json文件头文件的配置,写上交叉编译的头文件的路径
第二: makefile的编写
补充知识 https://www.cnblogs.com/codedingzhen/p/18075102

all: MKDIR-BUILD TO-OBJECTS TO-OUT TO-ELF

###########################################################
# Toolchain
###########################################################
CC = $(MSPGCC_BIN_DIR)/msp430-elf-gcc
GDB = $(MSPGCC_BIN_DIR)/msp430-elf-gdb
SIZE = $(MSPGCC_BIN_DIR)/msp430-elf-size

###########################################################
# Directories
###########################################################
MSPGCC_ROOT_DIR = /usr/local/msp430-gcc
MSPGCC_BIN_DIR = $(MSPGCC_ROOT_DIR)/bin

SUPPORT_FILE_DIRECTORY = Drivers/Include_ld	
BUILD_DIR = Build
###########################################################
# Files
###########################################################
SOURCES = $(wildcard ./Src/*.c)
C_INCLUDES = -IInc\
-I/usr/local/msp430-gcc/msp430-elf/include

###########################################################
# Flags
###########################################################
OBJECTS=$(BUILD_DIR)/blink.o
CFLAGS = -I $(SUPPORT_FILE_DIRECTORY) -mmcu=$(DEVICE) -O2 -g
LFLAGS = -L $(SUPPORT_FILE_DIRECTORY) -T $(DEVICE).ld


###########################################################
# DEVICE
###########################################################
DEVICE = msp430g2553



###########################################################
# Command
###########################################################


TO-OBJECTS:
	@echo "compiling..."
	$(CC) -I $(SUPPORT_FILE_DIRECTORY) $(C_INCLUDES) -L $(SUPPORT_FILE_DIRECTORY)  -mmcu=$(DEVICE) -o2 -g $(SOURCES) -o $(BUILD_DIR)/blink.o
	$(SIZE) -t $(OBJECTS)

TO-OUT: ${OBJECTS}
	@echo "To outFile..."
	$(CC) -nostartfiles $(CFLAGS) $(LFLAGS) $? -o $(BUILD_DIR)/$(DEVICE).out
	$(SIZE)	-t $(BUILD_DIR)/$(DEVICE).out
TO-ELF: $(OBJECTS)
	@echo "To elfFile..."
	$(CC) -nostartfiles $(CFLAGS) $(LFLAGS) $? -o $(BUILD_DIR)/$(DEVICE).elf
	$(SIZE) -t $(BUILD_DIR)/$(DEVICE).elf
MKDIR-BUILD:
	mkdir Build
Debug: 
	$(GDB) $(BUILD_DIR)/$(DEVICE).elf
clean:
	-rm -fR $(BUILD_DIR)
posted @ 2024-03-15 11:07  学不会xuebuhui  阅读(36)  评论(0编辑  收藏  举报
Language: javascript