0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【沁恒 CH32V208 开发板免费试用】RTT 纯命令行(makefile) 和 点灯测试

硬核造拆物 来源:硬核造拆物 作者:硬核造拆物 2023-05-25 09:03 次阅读
title: 【沁恒 CH32V208 开发板免费试用】RTT 纯命令行(makefile)  点灯测试
date: 2023-05-24 18:24:01
tags: 嵌入式

概述

沁恒 CH32V208 开发板是一款基于risc-v内核的微控制器,具有丰富的外设资源和高性能的处理能力。本文介绍了如何使用makefile进行编译,并提供了一个简单的点灯测试程序示例,以验证开发板的基本功能是否正常。通过本文的介绍,读者可以快速上手使用沁恒 CH32V208 开发板进行开发。

环境/工具

需要借助一些软件和硬件相结合,做出项目.

软件

  • Windows10 (其他平台没测试)
  • VScode
  • make (针对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 := 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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7541

    浏览量

    151305
  • 嵌入式
    +关注

    关注

    5082

    文章

    19104

    浏览量

    304759
  • 开发板
    +关注

    关注

    25

    文章

    5032

    浏览量

    97370
  • Makefile
    +关注

    关注

    1

    文章

    125

    浏览量

    19181
  • RT-Thread
    +关注

    关注

    31

    文章

    1285

    浏览量

    40075
收藏 人收藏

    评论

    相关推荐

    CH32V307 评估开发视频集锦

    升级的功能热门直播:32位无线型RISC-V单片机 CH32V208开发入门免费试用:【抢先体验】
    发表于 03-10 16:40

    【抢先体验】 CH32V208 开发板免费试用

    、心得,提供文字+视频展示。试用报告要求3篇试用报告+1个试用视频(视频需要发布在硬声APP里面)报告形式:标题格式【
    发表于 03-10 17:58

    CH32V208 开发板免费试用】开箱 + 资料整理 + 环境搭建

    ,先点灯。来的晚,所以也少踩了一些坑,看到不少人说送的WCH-Link模式不对,无法直接下载,参考一下大佬的文章,用他实践过的方式进行下载。【 CH32V208
    发表于 04-16 20:50

    CH32V208 开发板免费试用开发环境配置及开箱测试

    CH32V208 开发板免费试用】+开箱测试
    发表于 04-17 23:30

    CH32V208 开发板免费试用】体验openharmonyOS

    CH32V208移植了openharmony的liteOS。今天体验了官方给的示例,展示如何体验openharmonyOS在国产芯片
    发表于 04-26 07:48

    CH32V208 开发板免费试用开发板开箱以及开发环境搭建

    感谢电子发烧友论坛提供的这次测评机会,趁着这次五一假期来学习的32位RISC-V内核处理器CH32V208的评估学习。收到的硬件有一块
    发表于 04-29 15:41

    CH32V208 开发板免费试用】1.建立烧录开发调试环境

    CH32V208 开发板免费试用】 1.建立烧录开发
    发表于 05-04 07:54

    CH32V208 开发板免费试用RTT 命令行(makefile) 和 点灯测试

    title: 【 CH32V208 开发板免费试用RT
    发表于 05-24 19:33

    CH32V208 开发板免费试用RTT 模拟Arduino库开发项目

    title: 【 CH32V208 开发板免费试用RT
    发表于 05-24 20:31

    CH32V208开发板试用】1-构建RTT-Stdio开发环境

    CH32V208开发板试用】1-创建RTT-Stdio
    发表于 05-28 15:41

    CH32V208 开发板免费试用测试Win10环境配置

    电脑测试Win10环境配置: 烧录 CH32V208 可以用 WCH-Link 或 WCH-LinkE 在连接 CH32V208
    发表于 06-09 22:46

    CH32V208 开发板免费试用 CH32V208 开发板的编译和下载

    的 USB 是同一个信号。 按上面的方法就可以把自己写的代码烧录至 CH32V208 开发板,也可以测试和运行一些来自网络的代码来玩转
    发表于 06-09 23:13

    CH32V208 开发板免费试用】环境搭建+点灯

    前言: 非常感谢电子发烧友这个好平台,也非常感谢。非常幸运有机会可以体验CH32V208WBU6开发板,这里主要分享一下使用的过程以及遇到的问题,也请大家多多指教。 1,准备 1,
    发表于 06-11 14:17

    体验鸿蒙操作系统——CH32V208

    体验LiteOs在CH32V208上的工程应用
    的头像 发表于 04-26 07:49 2556次阅读
    体验鸿蒙操作系统——<b class='flag-5'>CH32V208</b>

    CH32V208 开发板免费试用+ U盘/ SD NAND读写与多功能数码相框

    CH32V208继承了恆产品一贯的传统,即U盘的读写功能。这使得尽管CH32V208的闪存要比CH32V307的小一倍,但有了U盘读写功能的支持就可有效地缓解用户对存储空间的需求。它
    的头像 发表于 11-10 11:44 851次阅读
    <b class='flag-5'>沁</b><b class='flag-5'>恒</b> <b class='flag-5'>CH32V208</b> <b class='flag-5'>开发板</b><b class='flag-5'>免费</b><b class='flag-5'>试用</b>+ U盘/ SD NAND读写与多功能数码相框