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

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

3天内不再提示

【南京中科微CSM32RV20开发板试用体验】linux 调试

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-30 10:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:jf_25674040, 帖子地址:https://bbs.elecfans.com/jish u_2283042_1_1.html

一、 获取编译器
1.在https://github.com/riscv-collab/riscv-gnu-toolchain/tags上获取最新版本,2022.05.15。
2. 通过编译源码的方式获取
2.1 git clonehttps://github.com/riscv/riscv-gnu-toolchain获取源代码
2.2 sudo apt-get install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev安装所需工具
2.3 ./configure --prefix=/opt/riscv --enable-multilib 使能riscv32/risv64输出。
2.4 sudo make 安装,如果发现github下载慢,可以使用的方式下载
cd /home/wps/tmp/riscv-gnu-toolchain &&
flock `git rev-parse --git-dir`/config git submodule init /home/wps/tmp/riscv-gnu-toolchain/riscv-gcc/ &&
flock `git rev-parse --git-dir`/config git submodule update /home/wps/tmp/riscv-gnu-toolchain/riscv-gcc/


cd /home/wps/tmp/riscv-gnu-toolchain &&
flock `git rev-parse --git-dir`/config git submodule init /home/wps/tmp/riscv-gnu-toolchain/newlib/ &&
flock `git rev-parse --git-dir`/config git submodule update /home/wps/tmp/riscv-gnu-toolchain/newlib/


git config --global --add safe.directory /home/apps/riscv-gnu-toolchain


cd /home/apps/riscv-gnu-toolchain &&
flock `git rev-parse --git-dir`/config git submodule init /home/apps/riscv-gnu-toolchain/riscv-gdb/ &&
flock `git rev-parse --git-dir`/config git submodule update /home/apps/riscv-gnu-toolchain/riscv-gdb/

2.5 在bashrc中添加export PATH=/opt/riscv/bin:$PATH
二、获取api文件,当前我采取使用安装官方软件的方式获取基础API。
1. 下载CSMStudio_22.03.08_x64.zip,并在windows10下安装软件。
2. 找到安装目录下的CSM32RV20_coremark_32M或CSM32RV20_LED_Breath,并获取其中的drivers,ld目录,获取src下面的vectors.S和main.c。
3. 创建Makefile,至此便可以完成代码的编译工作,后续增加下载,调试功能。
附,当前使用的Makefile
```
#target
TARGET = hello_world


#building variables
#debug
DEBUG =1
OPT = -O2


BUILD_DIR = build
#BIN_DIR = $(BUILD_DIR)/bin


C_SOURCES =
src/main.c
drivers/Src/clic.c
drivers/Src/cmu.c
drivers/Src/gpio.c
drivers/Src/uart.c
drivers/Src/ee_printf.c
drivers/Src/adc.c
drivers/Src/comp.c
drivers/Src/data_always.c
drivers/Src/flash.c
drivers/Src/i2c.c
drivers/Src/iwdg.c
drivers/Src/lowpower.c
drivers/Src/lv.c
drivers/Src/random.c
drivers/Src/rtc.c
drivers/Src/spi.c
drivers/Src/timer.c
drivers/Src/usb.c
drivers/Src/wup.c




ASM_SOURCES =
src/vectors.S


# binaries
PREFIX = riscv64-unknown-elf-


ifdef GCC_PATH
CC = $(GCC_PATH)/$(PREFIX)gcc
AS = $(GCC_PATH)/$(PREFIX)g++
CP = $(GCC_PATH)/$(PREFIX)objcopy
SZ = $(GCC_PATH)/$(PREFIX)size
else
CC = $(PREFIX)gcc
AS = $(PREFIX)g++
CP = $(PREFIX)objcopy
SZ = $(PREFIX)size
endif


HEX = $(CP) -O ihex
BIN = $(CP) -O binary -S


# C_FLAGS
CPU = -march=rv32imac


# mcu
MCU = -mabi=ilp32 $(CPU)


AS_DEFS =
C_DEFS =


AS_INCLUDES =
-Idrivers/Inc


C_INCLUDES =
-Idrivers/Inc


# compile gcc flags
ASFLASGS = -Wall -g $(MCU) -fdata-sections -ffunction-sections -fomit-frame-pointer -mcmodel=medlow -mtune=rocket $(OPT)
ASFLASGS += $(C_DEFS) $(C_INCLUDES)
CFLAGS = -Wall -g $(MCU) -fdata-sections -ffunction-sections -fomit-frame-pointer -mcmodel=medlow -mtune=rocket $(OPT)
CFLAGS += $(C_DEFS) $(C_INCLUDES)


# link script
LDSCRIPT = ld/target.ld


LDFLAGS = $(MCU) -T $(LDSCRIPT) -nostartfiles
LDFLAGS += -Wl,-Map,map.txt
LDFLAGS += -Xlinker --gc-sections -Xlinker --cref
LDFLAGS += --specs=nano.specs --specs=nosys.specs




all: $(BUILD_DIR)/$(TARGET).elf


# list of objects
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
vpath %.c $(sort $(dir $(C_SOURCES)))
# list of ASM program objects
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.S=.o)))
vpath %.S $(sort $(dir $(ASM_SOURCES)))


$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
$(CC) -c $(CFLAGS) $< -o $@


$(BUILD_DIR)/%.o: %.S Makefile | $(BUILD_DIR)
$(AS) -c $(CFLAGS) $< -o $@


$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
$(SZ) $@


$(BUILD_DIR):
mkdir $@


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

    关注

    0

    文章

    60

    浏览量

    1369
  • CSM32RV20
    +关注

    关注

    0

    文章

    40

    浏览量

    460
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    EASY EAI Nano-TB(RV1126B)开发板试用】1、初识

    非常感谢电子发烧友以及灵眸科技给了我这次试用EASY EAI Nano-TB(RV1126B)开发板的机会,星期四确认了我的试用机会,星期五就收到了
    发表于 11-16 11:15

    【EASY EAI Nano-TB(RV1126B)开发板试用】+初识篇

    Nano-TB是灵眸科技研发的一款应用于AIoT领域的开发板,它基于瑞芯RV1126B处理器,集成了4个Cortex-A53及独立的NEON协处理器,它支持4K@30fps的H.264/H.265解码器
    发表于 10-25 22:06

    【作品合集】中科昊芯Core_DSC280025C开发板测评

    Core_DSC280025C开发板试用体验】+2.RAM工程与FLASH工程对比 【中科昊芯Core_DSC280025C开发板试用体验】
    发表于 09-18 10:52

    【作品合集】玄铁Banana Pi BPI-RV2开发板测评

    测试 作者:chen000000009【Banana Pi BPI-RV2开发板试用体验】开箱+硬件介绍 【Banana Pi BPI-RV2开发板
    发表于 09-17 10:58

    RK3506开发板Linux开发板极致性价比之选

    RK3506开发板Linux开发板极致性价比之选瑞芯RK3506开发板,3核Cortex-A7@1.5GHz+Cortex-M0,
    的头像 发表于 09-11 16:26 2780次阅读
    RK3506<b class='flag-5'>开发板</b><b class='flag-5'>Linux</b><b class='flag-5'>开发板</b>极致性价比之选

    【作品精选】2025电子发烧友开发板测评大赛作品合集!

    Milk-V Duo S 开发板免费试用 玄铁Banana Pi BPI-RV2开发板试用 玄铁Banana Pi BPI-CanMV-K2
    发表于 09-03 15:24

    有奖丨米尔 瑞芯RK3506开发板免费试用来啦!

    米尔与瑞芯合作发布的新品基于瑞芯RK3506应用处理器的MYD-YR3506开发板免费试用名额增加啦
    的头像 发表于 07-10 08:03 643次阅读
    有奖丨米尔 瑞芯<b class='flag-5'>微</b>RK3506<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>来啦!

    【Banana Pi BPI-RV2开发板试用体验】开发环境搭建

    参考 https://docs.banana-pi.org/zh/BPI-RV2/BananaPi_BPI-RV2 前言 本文分享开发板基本的ssh登录,文件传输,c开发环境搭建。 上
    发表于 06-25 16:07

    有奖丨米尔 瑞芯RK3506开发板免费试用

    米尔与瑞芯合作发布的新品基于瑞芯RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3块价值299元的MYD-YR3506
    的头像 发表于 06-19 08:04 853次阅读
    有奖丨米尔 瑞芯<b class='flag-5'>微</b>RK3506<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    爱芯32位MCU开发板AiP32RV15X介绍

    AiP32RV15X开发板是一款基于RISCV内核的32位MCU开发板,提供了板载调试器、RESET、WAKEUP按键、三色LED、CAN收发器、USB接口、UART、ADC、SPI、
    的头像 发表于 06-17 10:54 609次阅读
    中<b class='flag-5'>微</b>爱芯32位MCU<b class='flag-5'>开发板</b>AiP32<b class='flag-5'>RV</b>15X介绍

    有奖丨米尔 瑞芯RK3562开发板免费试用新增名额!

    米尔与瑞芯合作发布的新品基于瑞芯RK3562应用处理器的MYD-YR3562开发板免费试用名额增加
    的头像 发表于 06-13 08:04 854次阅读
    有奖丨米尔 瑞芯<b class='flag-5'>微</b>RK3562<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>新增名额!

    【评测试用】合众HZ-T536开发板免费试用体验

    【评测试用】合众HZ-T536开发板免费试用体验
    的头像 发表于 05-27 08:05 696次阅读
    【评测<b class='flag-5'>试用</b>】合众HZ-T536<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>体验

    基于RV1126开发板的按键测试方法与例程

    RV1126开发板的按键测试方法与例程详细描述
    的头像 发表于 04-15 17:03 831次阅读
    基于<b class='flag-5'>RV</b>1126<b class='flag-5'>开发板</b>的按键测试方法与例程

    有奖丨米尔 瑞芯YR3562开发板免费试用

    米尔与瑞芯合作发布的新品基于瑞芯RK3562应用处理器的MYD-YR3562开发板免费试用活动来啦~~米尔提供了3块价值599元的MYD-YR3562
    的头像 发表于 03-20 08:05 806次阅读
    有奖丨米尔 瑞芯<b class='flag-5'>微</b>YR3562<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    瑞芯主板/开发板Linux系统播放音频方法,触觉智能RK3562开发板演示

    本文介绍瑞芯方案主板/开发板Linux系统播放音频的方法,触觉智能RK3562开发板演示,通用RK3566、RK3568、RK3588等
    的头像 发表于 12-13 11:40 1400次阅读
    瑞芯<b class='flag-5'>微</b>主板/<b class='flag-5'>开发板</b><b class='flag-5'>Linux</b>系统播放音频方法,触觉智能RK3562<b class='flag-5'>开发板</b>演示