天天热点!【沁恒 CH32V208 开发板免费试用】RTT 纯命令行(makefile) 和 点灯测试
2023-05-25 09:16:11 来源:硬核造拆物
title: 【沁恒 CH32V208 开发板免费试用】RTT 纯命令行(makefile) 和 点灯测试date: 2023-05-24 18:24:01tags: 嵌入式
概述
沁恒 CH32V208 开发板是一款基于risc-v内核的微控制器,具有丰富的外设资源和高性能的处理能力。本文介绍了如何使用makefile进行编译,并提供了一个简单的点灯测试程序示例,以验证开发板的基本功能是否正常。通过本文的介绍,读者可以快速上手使用沁恒 CH32V208 开发板进行开发。
环境/工具
需要借助一些软件和硬件相结合,做出项目.
软件
Windows10 (其他平台没测试)VScodemake (针对makefile编译)risc-v 8.2.0 工具箱 (github有提供riscv-none-embed-XXX压缩包)WCHISPTOOLS (沁恒自带烧录工具)SERIAL DEBUG (查看调试日志)首先,让我们来了解一下如何使用makefile进行编译。makefile是一种常用的自动化构建工具,它可以根据指定的规则自动化地生成目标文件和可执行文件。在使用makefile之前,需要安装GNU Make工具,并在项目目录下创建一个名为Makefile的文件。所以不借助平台来编译,只用纯命令行来执行,所以锻炼自己能力哈。
(资料图片)
硬件
CH32V208开发板
wch-link (快递赠的)
测试
接下来,让我们来看一下如何进行点灯测试。点灯测试是一种常用的测试方法,可以验证开发板的基本功能是否正常。在沁恒 CH32V208 开发板上,可以通过GPIO口控制LED灯的亮灭。
实例
用makefile来编译
TARGET := 01LEDinclude config.mkinclude src.mkCFLAGS += $(CPPPATHS)CXXFLAGS += $(CPPPATHS)AFLAGS += $(CPPPATHS)CFLAGS += $(DEFINES)CXXFLAGS += $(DEFINES)AFLAGS += $(DEFINES)TOOLCHAIN = riscv-none-embed-CC = $(TOOLCHAIN)gccSZ = $(TOOLCHAIN)sizeCP = $(TOOLCHAIN)objcopyAS = $(TOOLCHAIN)gccHEX = $(CP) -O ihexBIN = $(CP) -O binary -S# IOTpositionROOT_DIR := ../../../..# bsp positionBSP_DIR := .BUILD_DIR = $(BSP_DIR)/buildLD_FILES = $(ROOT_DIR)/bsp/CH32V208/libraries/Ld/link.ldsFLAGS += -march=rv32imac -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -std=gnu99 -DCH32V20x_D8W C_FLAGS += $(CC) $(CFLAGS) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"AS_FLAGS += $(CC) $(AFLAGS) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"LINK_FLAGS += $(CC) $(LFLAGS) $(EXTERN_LIB)# --specs=nano.specs all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).binOBJECT = $(addprefix $(BUILD_DIR)/,$(notdir $(S_FILES:.S=.o)))vpath %.S $(sort $(dir $(S_FILES)))OBJECT += $(addprefix $(BUILD_DIR)/,$(notdir $(C_FILES:.c=.o)))vpath %.c $(sort $(dir $(C_FILES)))OBJECTS += $(sort $(OBJECT))$(BUILD_DIR)/%.o:%.S Makefile | $(BUILD_DIR)$(AS_FLAGS)$(BUILD_DIR)/%.o:%.c Makefile | $(BUILD_DIR)$(C_FLAGS)$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) | Makefile$(LINK_FLAGS) $(OBJECTS) -o $@$(SZ) --format=berkeley $@$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR)$(HEX) $< $@$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR)$(BIN) $< $@$(BUILD_DIR):@echo $(OBJECTS)mkdir $@DATE = $(shell date)push:git add $(RTT_ROOT)git commit -m "update :$(DATE)"git push origin/mainc:rmdir /s /q build
其中include config.mk
和include src.mk
这2个在Bsp项目同一个文件夹下新建,内容是追加头文件,目标C后缀源代码,还有一些编译选项等等。
拿官方的例子,来验证测试是否正常,毕竟是用makefile,不确定这个项目编译是否有效果?
#define LED0 rt_pin_get("PA.0")int main(void){ rt_pin_mode(LED0,PIN_MODE_OUTPUT); rt_kprintf("MCU-CH32V208WBU6\\r\\n"); while(1) { rt_pin_write(LED0, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED0, PIN_LOW); rt_thread_mdelay(500); }}
演示
代码
传送门: github->01LED
审核编辑:汤梓红
标签:
互联网
沁恒CH32V208开发板是一款基于risc-v内核的微控制器,具有丰富的外设资源和高性能的处理能力。本文介绍了如
2023-05-25 09:16:11
全球新动态:基于Linux设计的倒车雷达系统
随着社会的不断发展,人们对于汽车的安全性要求越来越高,而倒车雷达系统就是为了增强汽车驾驶者的安全性而
2023-05-25 09:02:46
二极管检波电路结构和工作原理_当前速递
从高频调幅信号中取出原调制信号的过程称为振幅解调或振幅检波,简称检波。广义的检波通常称为解调,是调制
2023-05-25 09:14:27