title: 【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】RTT 純命令行(makefile) 和 點(diǎn)燈測(cè)試
date: 2023-05-24 18:24:01
tags: 嵌入式
概述
沁恒 CH32V208 開(kāi)發(fā)板是一款基于risc-v內(nèi)核的微控制器,具有豐富的外設(shè)資源和高性能的處理能力。本文介紹了如何使用makefile進(jìn)行編譯,并提供了一個(gè)簡(jiǎn)單的點(diǎn)燈測(cè)試程序示例,以驗(yàn)證開(kāi)發(fā)板的基本功能是否正常。通過(guò)本文的介紹,讀者可以快速上手使用沁恒 CH32V208 開(kāi)發(fā)板進(jìn)行開(kāi)發(fā)。
環(huán)境/工具
需要借助一些軟件和硬件相結(jié)合,做出項(xiàng)目.
軟件
- Windows10 (其他平臺(tái)沒(méi)測(cè)試)
- VScode
- make (針對(duì)makefile編譯)
- risc-v 8.2.0 工具箱 (github有提供riscv-none-embed-XXX壓縮包)
- WCHISPTOOLS (沁恒自帶燒錄工具)
- SERIAL DEBUG (查看調(diào)試日志)
首先,讓我們來(lái)了解一下如何使用makefile進(jìn)行編譯。makefile是一種常用的自動(dòng)化構(gòu)建工具,它可以根據(jù)指定的規(guī)則自動(dòng)化地生成目標(biāo)文件和可執(zhí)行文件。在使用makefile之前,需要安裝GNU Make工具,并在項(xiàng)目目錄下創(chuàng)建一個(gè)名為Makefile的文件。所以不借助平臺(tái)來(lái)編譯,只用純命令行來(lái)執(zhí)行,所以鍛煉自己能力哈。
硬件
-
CH32V208開(kāi)發(fā)板
-
wch-link (快遞贈(zèng)的)
測(cè)試
接下來(lái),讓我們來(lái)看一下如何進(jìn)行點(diǎn)燈測(cè)試。點(diǎn)燈測(cè)試是一種常用的測(cè)試方法,可以驗(yàn)證開(kāi)發(fā)板的基本功能是否正常。在沁恒 CH32V208 開(kāi)發(fā)板上,可以通過(guò)GPIO口控制LED燈的亮滅。
實(shí)例
用makefile來(lái)編譯
TARGET := 01LED
include config.mk
include src.mk
CFLAGS += $(CPPPATHS)
CXXFLAGS += $(CPPPATHS)
AFLAGS += $(CPPPATHS)
CFLAGS += $(DEFINES)
CXXFLAGS += $(DEFINES)
AFLAGS += $(DEFINES)
TOOLCHAIN = riscv-none-embed-
CC = $(TOOLCHAIN)gcc
SZ = $(TOOLCHAIN)size
CP = $(TOOLCHAIN)objcopy
AS = $(TOOLCHAIN)gcc
HEX = $(CP) -O ihex
BIN = $(CP) -O binary -S
# IOT position
ROOT_DIR := ../../../..
# bsp position
BSP_DIR := .
BUILD_DIR = $(BSP_DIR)/build
LD_FILES = $(ROOT_DIR)/bsp/CH32V208/libraries/Ld/link.lds
FLAGS += -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).bin
OBJECT = $(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/main
c:
rmdir /s /q build
其中include config.mk
和include src.mk
這2個(gè)在Bsp項(xiàng)目同一個(gè)文件夾下新建,內(nèi)容是追加頭文件,目標(biāo)C后綴源代碼,還有一些編譯選項(xiàng)等等。
拿官方的例子,來(lái)驗(yàn)證測(cè)試是否正常,畢竟是用makefile,不確定這個(gè)項(xiàng)目編譯是否有效果?
#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);
}
}
演示
代碼
傳送門(mén): github->01LED
審核編輯:湯梓紅
-
微控制器
+關(guān)注
關(guān)注
48文章
8179瀏覽量
159864 -
嵌入式
+關(guān)注
關(guān)注
5174文章
19970瀏覽量
324322 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5998瀏覽量
109999 -
Makefile
+關(guān)注
關(guān)注
1文章
125瀏覽量
20075 -
RT-Thread
+關(guān)注
關(guān)注
32文章
1496瀏覽量
43497
發(fā)布評(píng)論請(qǐng)先 登錄
沁恒微 CH32V307 評(píng)估板開(kāi)發(fā)視頻集錦
【搶先體驗(yàn)】沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】開(kāi)箱 + 資料整理 + 環(huán)境搭建
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】開(kāi)發(fā)環(huán)境配置及開(kāi)箱測(cè)試
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】體驗(yàn)openharmonyOS
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】開(kāi)發(fā)板開(kāi)箱以及開(kāi)發(fā)環(huán)境搭建
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】1.建立燒錄開(kāi)發(fā)調(diào)試環(huán)境
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】RTT 純命令行(makefile) 和 點(diǎn)燈測(cè)試
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】RTT 模擬Arduino庫(kù)開(kāi)發(fā)項(xiàng)目
【沁恒CH32V208開(kāi)發(fā)板試用】1-構(gòu)建RTT-Stdio開(kāi)發(fā)環(huán)境
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】測(cè)試Win10環(huán)境配置
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】沁恒 CH32V208 開(kāi)發(fā)板的編譯和下載
【沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用】環(huán)境搭建+點(diǎn)燈
沁恒 CH32V208 開(kāi)發(fā)板免費(fèi)試用+ U盤(pán)/ SD NAND讀寫(xiě)與多功能數(shù)碼相框

評(píng)論