0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【沁恒 CH32V208 開發(fā)板免費試用】RTT 純命令行(makefile) 和 點燈測試

硬核造拆物 ? 來源:硬核造拆物 ? 作者:硬核造拆物 ? 2023-05-25 09:03 ? 次閱讀
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是一種常用的自動化構建工具,它可以根據指定的規(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.mkinclude 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);
    }
}

演示

ledoff.pngledon.png

代碼

傳送門: github->01LED

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7396

    瀏覽量

    150642
  • 嵌入式
    +關注

    關注

    5052

    文章

    18916

    瀏覽量

    300820
  • 開發(fā)板
    +關注

    關注

    25

    文章

    4838

    瀏覽量

    96855
  • Makefile
    +關注

    關注

    1

    文章

    125

    瀏覽量

    19153
  • RT-Thread
    +關注

    關注

    31

    文章

    1249

    瀏覽量

    39727
收藏 人收藏

    評論

    相關推薦

    CH32V307 評估開發(fā)視頻集錦

    升級的功能熱門直播:32位無線型RISC-V單片機 CH32V208開發(fā)入門免費試用:【搶先體驗】
    發(fā)表于 03-10 16:40

    【搶先體驗】 CH32V208 開發(fā)板免費試用

    、心得,提供文字+視頻展示。試用報告要求3篇試用報告+1個試用視頻(視頻需要發(fā)布在硬聲APP里面)報告形式:標題格式【
    發(fā)表于 03-10 17:58

    CH32V208 開發(fā)板免費試用】開箱 + 資料整理 + 環(huán)境搭建

    ,先點燈。來的晚,所以也少踩了一些坑,看到不少人說送的WCH-Link模式不對,無法直接下載,參考一下大佬的文章,用他實踐過的方式進行下載?!?b class='flag-5'>沁 CH32V208
    發(fā)表于 04-16 20:50

    CH32V208 開發(fā)板免費試用開發(fā)環(huán)境配置及開箱測試

    CH32V208 開發(fā)板免費試用】+開箱測試
    發(fā)表于 04-17 23:30

    CH32V208 開發(fā)板免費試用】體驗openharmonyOS

    CH32V208移植了openharmony的liteOS。今天體驗了官方給的示例,展示如何體驗openharmonyOS在國產芯片
    發(fā)表于 04-26 07:48

    CH32V208 開發(fā)板免費試用開發(fā)板開箱以及開發(fā)環(huán)境搭建

    感謝電子發(fā)燒友論壇提供的這次測評機會,趁著這次五一假期來學習的32位RISC-V內核處理器CH32V208的評估學習。收到的硬件有一塊
    發(fā)表于 04-29 15:41

    CH32V208 開發(fā)板免費試用】1.建立燒錄開發(fā)調試環(huán)境

    CH32V208 開發(fā)板免費試用】 1.建立燒錄開發(fā)
    發(fā)表于 05-04 07:54

    CH32V208 開發(fā)板免費試用RTT 命令行(makefile) 和 點燈測試

    title: 【 CH32V208 開發(fā)板免費試用RT
    發(fā)表于 05-24 19:33

    CH32V208 開發(fā)板免費試用RTT 模擬Arduino庫開發(fā)項目

    title: 【 CH32V208 開發(fā)板免費試用RT
    發(fā)表于 05-24 20:31

    CH32V208開發(fā)板試用】1-構建RTT-Stdio開發(fā)環(huán)境

    CH32V208開發(fā)板試用】1-創(chuàng)建RTT-Stdio
    發(fā)表于 05-28 15:41

    CH32V208 開發(fā)板免費試用測試Win10環(huán)境配置

    電腦測試Win10環(huán)境配置: 燒錄 CH32V208 可以用 WCH-Link 或 WCH-LinkE 在連接 CH32V208
    發(fā)表于 06-09 22:46

    CH32V208 開發(fā)板免費試用 CH32V208 開發(fā)板的編譯和下載

    的 USB 是同一個信號。 按上面的方法就可以把自己寫的代碼燒錄至 CH32V208 開發(fā)板,也可以測試和運行一些來自網絡的代碼來玩轉
    發(fā)表于 06-09 23:13

    CH32V208 開發(fā)板免費試用】環(huán)境搭建+點燈

    前言: 非常感謝電子發(fā)燒友這個好平臺,也非常感謝。非常幸運有機會可以體驗CH32V208WBU6開發(fā)板,這里主要分享一下使用的過程以及遇到的問題,也請大家多多指教。 1,準備 1,
    發(fā)表于 06-11 14:17

    體驗鴻蒙操作系統(tǒng)——CH32V208

    體驗LiteOs在CH32V208上的工程應用
    的頭像 發(fā)表于 04-26 07:49 ?2326次閱讀
    體驗鴻蒙操作系統(tǒng)——<b class='flag-5'>CH32V208</b>

    CH32V208 開發(fā)板免費試用+ U盤/ SD NAND讀寫與多功能數碼相框

    CH32V208繼承了恆產品一貫的傳統(tǒng),即U盤的讀寫功能。這使得盡管CH32V208的閃存要比CH32V307的小一倍,但有了U盤讀寫功能的支持就可有效地緩解用戶對存儲空間的需求。它
    的頭像 發(fā)表于 11-10 11:44 ?755次閱讀
    <b class='flag-5'>沁</b><b class='flag-5'>恒</b> <b class='flag-5'>CH32V208</b> <b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>+ U盤/ SD NAND讀寫與多功能數碼相框