title: 【沁恒 CH32V208 開發(fā)板免費試用】RTT 純命令行(makefile) 和 點燈測試
date: 2023-05-24 18:24:01
tags: 嵌入式
概述
沁恒 CH32V208 開發(fā)板是一款基于risc-v內核的微控制器,具有豐富的外設資源和高性能的處理能力。本文介紹了如何使用makefile進行編譯,并提供了一個簡單的點燈測試程序示例,以驗證開發(fā)板的基本功能是否正常。通過本文的介紹,讀者可以快速上手使用沁恒 CH32V208 開發(fā)板進行開發(fā)。

環(huán)境/工具
需要借助一些軟件和硬件相結合,做出項目.
軟件
- Windows10 (其他平臺沒測試)
 - VScode
 - make (針對makefile編譯)
 - risc-v 8.2.0 工具箱 (github有提供riscv-none-embed-XXX壓縮包)
 - WCHISPTOOLS (沁恒自帶燒錄工具)
 - SERIAL DEBUG (查看調試日志)
 

首先,讓我們來了解一下如何使用makefile進行編譯。makefile是一種常用的自動化構建工具,它可以根據(jù)指定的規(guī)則自動化地生成目標文件和可執(zhí)行文件。在使用makefile之前,需要安裝GNU Make工具,并在項目目錄下創(chuàng)建一個名為Makefile的文件。所以不借助平臺來編譯,只用純命令行來執(zhí)行,所以鍛煉自己能力哈。
硬件
- 
CH32V208開發(fā)板
 - 
wch-link (快遞贈的)

 

測試
接下來,讓我們來看一下如何進行點燈測試。點燈測試是一種常用的測試方法,可以驗證開發(fā)板的基本功能是否正常。在沁恒 CH32V208 開發(fā)板上,可以通過GPIO口控制LED燈的亮滅。
實例
用makefile來編譯
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個在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
審核編輯:湯梓紅
- 
                                微控制器
                                +關注
關注
48文章
8215瀏覽量
160926 - 
                                嵌入式
                                +關注
關注
5178文章
20042瀏覽量
326403 - 
                                開發(fā)板
                                +關注
關注
25文章
6051瀏覽量
111288 - 
                                Makefile
                                +關注
關注
1文章
125瀏覽量
20150 - 
                                RT-Thread
                                +關注
關注
32文章
1514瀏覽量
43991 
發(fā)布評論請先 登錄
沁恒微 CH32V307 評估板開發(fā)視頻集錦
【搶先體驗】沁恒 CH32V208 開發(fā)板免費試用
【沁恒 CH32V208 開發(fā)板免費試用】開箱 + 資料整理 + 環(huán)境搭建
【沁恒 CH32V208 開發(fā)板免費試用】體驗openharmonyOS
【沁恒 CH32V208 開發(fā)板免費試用】開發(fā)板開箱以及開發(fā)環(huán)境搭建
【沁恒 CH32V208 開發(fā)板免費試用】1.建立燒錄開發(fā)調試環(huán)境
【沁恒 CH32V208 開發(fā)板免費試用】RTT 純命令行(makefile) 和 點燈測試
【沁恒 CH32V208 開發(fā)板免費試用】RTT 模擬Arduino庫開發(fā)項目
【沁恒CH32V208開發(fā)板試用】1-構建RTT-Stdio開發(fā)環(huán)境
【沁恒CH32V208開發(fā)板試用】2-ARDUINO
【沁恒 CH32V208 開發(fā)板免費試用】測試Win10環(huán)境配置
【沁恒 CH32V208 開發(fā)板免費試用】沁恒 CH32V208 開發(fā)板的編譯和下載
【沁恒 CH32V208 開發(fā)板免費試用】環(huán)境搭建+點燈
沁恒 CH32V208 開發(fā)板免費試用+ U盤/ SD NAND讀寫與多功能數(shù)碼相框
    
          
        
        
【沁恒 CH32V208 開發(fā)板免費試用】RTT 純命令行(makefile) 和 點燈測試
                
 
           
            
            
                
            
評論