沁恒ch32学习——risc-v架构学习笔记

大蒙同学 大蒙同学     2023-01-07     704

关键词:

作为新手第一次接触RISC-V架构时。我首先百度简单了解了ARM架构和RISC-V架构的区别,以我个人的理解是ARM架构代表之前的复杂指令集,而RISC-V架构代表着精简指令集。就比如说同样是一个舞蹈动作,复杂指令集可能会是一个命令就完成舞蹈动作,而精简指令集是由手,腿的动作组合而成。而我这次的学习的重点并不是围绕着指令集,而是基于RISC-V架构的CHV103R8T6开发板的应用上。

我们知道接触一款新的开发板,其数据手册和用户手册是很重要的。所以第一时间我就将用户手册大概的浏览一遍了解一下这款开发板外设的分布等。当我浏览一遍发现这款MCU和STM32有着很大的类似之处,而我已经对STM32有着较为深的应用这对我有助于我更快上手MCU。从系统框图上我们可以发现同样也是有AHB、APB1、APB2总线,高速总线上系统时钟频率是72Mhz这个和STM32F103系列单片机有着异曲同工之处,在了解了系统框图之后就来到了外设部分,发现没有需要重视的地方后就来到了编程环境的搭建。我们知道STM32的编程环境是MDK(keil),而基于RISC-V架构的单片机的编程环境是MounRiver  Studio,依照这官方提供的PDF文件也大概知道了如何去使用。

 下面我就类比一下MDK编程环境,简单的说说我的看法。首先从界面来看相比MDK而言更加的现代化,颜色清新脱俗,给人整体的感觉还是很舒服的。其次在编程的时候你会发现智能提示更加的方便,比如我们将鼠标移到函数名时我们就可以查看该函数的具体内容,省去以往在MDK编号时反复的去打开函数的声明。而且这款编译器的兼容性做的还是很不错,可以直接导入KEIL工程,对于我这种从MDK编程转入过来的人十分的友好,这里我想提一下之前学习TI公司的MSP432时,其安装的繁琐性、兼容性低等问题对于新手而言是十分头痛的事情。所以相比而言MounRiver  Studio就十分友好了。最后在DBUG部分同样是很优秀,在学习STM32时我们知道调试代码用的最多的是JLINK等,但往往我们需要自己拥有DAP或者自己连线才可以经行调试。而CHV103系列单片机有沁恒公司生产,在开发板搭载了WCH-LINK可以直接进行代码调试,这就省去以往繁琐的工作了。当然在使用MounRiver  Studio时我也入了不少的坑,比如在串口传输信息给上位机时,我发现浮点型的数据无法传输,这就令我百思不得其解了。最开始我还以为是我代码的问题,找了很久发现并没有问题,后来通过百度发现某些编译器会默认printf不包含浮点型,之后果然找到对应的位置,将对应的选项勾选问题就解决的了。

最后就开始了项目的开发,代码移值的问题我也遇到了不少,有些BUG也是莫名其妙,不过话说回来通过不断的修复BUG自己编程的能力也随着提升,虽然有时碰到问题苦苦冥想,不断的百度依旧无法解决,有时候我甚至已经怀疑自己,做在椅子上发呆想问题出在哪里,通过不断的尝试最终解决一个BUG时心中的喜悦是莫大的鼓励。

以上就是我本次学习RISC-V架构的笔记和心路历程。

risc-v指令学习笔记(基于ch32v103)(代码片段)

文章目录RISC-V指令学习笔记(基于CH32V103)一、指令结构分类二、寄存器功能三、加载存储指令四、算数运算指令五、移位指令六、逻辑操作指令七、跳转指令7.1条件跳转7.2无条件跳转八、比较判断九、CSR操作指令RISC-V指... 查看详情

沁恒ch32v307单片机入门(01):基础说明与流程体验(代码片段)

...试试国产的单片机。基础说明芯片介绍这里准备使用南京沁恒的CH32V307为基础进行介绍,这是一款RISC-V架构内核的单片机。我看中它的主要是自带高速USBPHY和ETHPHY,同时价格也很便宜,某宝上散买十块出头。图片是R的... 查看详情

沁恒ch552usb学习之旅

学习目标:学习单片机USB开发,了解USB底层前期准备:参考书籍和资料: 1、《圈圈教你玩USB》,绝对的经典,入门USB不二之选! 2、《圈圈教你玩USB》,绝对的经典,入门USB不二之选! 3、... 查看详情

risc-v学习笔记(代码片段)

RISC-V学习笔记(1)作者:夏风喃喃参考:计算机组成与设计:硬件/软件接口(RISC-V版)文章目录RISC-V学习笔记(1)第1章计算机抽象及相关技术1.6性能1.6.1性能的定义1.6.2性能的度量1.6.3CPU性能... 查看详情

risc-v学习笔记(代码片段)

RISC-V学习笔记(2)作者:夏风喃喃参考:计算机组成与设计:硬件/软件接口(RISC-V版)文章目录RISC-V学习笔记(2)第2章计算机的语言2.1引言2.2计算机硬件的操作2.3计算机硬件的操作数(加... 查看详情

沁恒ch32v307使用记录:gpio与exti(代码片段)

...用。这篇文章将对CH32V307中相关内容进行说明。本文使用沁恒官方的开发板(CH32V307-EVT-R1沁恒RISC-V模块MCU赤兔评估板)进行演示。本文演示中需要用到开发板上的KEY和LED,默认只是引入接口到排针,并没有和芯片GP... 查看详情

沁恒risc-vmcu为全国大学生智能汽车竞赛加速(代码片段)

 §01沁恒RISC-V  第十七届(2022年)全国大学生智能汽车竞赛规则已发布,沁恒微电子很荣幸继续为大赛提供赞助。其中多车编队组的头车限定使用沁恒微电子的MCU作为主控,跟随车之一可以选用沁恒微电子的MCU... 查看详情

沁恒ch32v208:ch32v208的储存结构,启动模式和时钟(代码片段)

...特点,以及通过SDK中的示例代码分析CH32V208的时钟设置目录沁恒CH32V208(一):CH32V208WBU6评估板上手报告和Win10环境配置沁恒CH32V208(二):CH32V208的储存结构,启动模式和时钟CH32V存储容量命名方式在介绍下面的内容前,先看一下CH32V系列和存... 查看详情

国产沁恒ch32f103c8t6使用指南

国产沁恒CH32F103C8T6使用指南前言:CH32F103芯片是由南京沁恒电子产品公司推出的国产ARM芯片,与STM32F103系列芯片相比,不仅管脚和寄存器全部兼容,而且还增强了USB功能,有2个USB,一个Host,一个Device&#x... 查看详情

risc-vrisc-v架构学习笔记(架构初学)

Register介绍RISC-V架构提供31个用户可修改的通用(基本)寄存器,即x1到x31,以及一个额外的只读寄存器x0,硬连接到0。x0寄存器的一个常见用途是帮助将其他寄存器初始化为零。共有31个通用寄存器。其中7个是临时寄存... 查看详情

第十七届全国大学生智能汽车竞赛沁恒微电子芯片推荐(代码片段)

简介:南京沁恒为电子公司继续赞助第十七届全国大学生智能车。今年他们不仅提供性能更加优越的RISV-VMCU芯片,同时也推荐使用公司具有特色的无线蓝牙芯片,用于运动智能车作品的调试与跟踪。关键词:沁恒&... 查看详情

沁恒ch32v307单片机入门(01):基础说明与流程体验(代码片段)

...试试国产的单片机。基础说明芯片介绍这里准备使用南京沁恒的CH32V307为基 查看详情

读入优化~~~(个人学习笔记)

基本模板:inlineintread(){ intx=0,w=1;charch=0; while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)w=-1;ch=getchar();} while(ch>=‘0‘&&ch<=‘9‘)x=(x<<3)+(x<<1)+ch-‘0‘,ch=getchar(); returnx*w;}& 查看详情

沁恒ch32v307单片机入门(02):官方库与工程模板介绍(代码片段)

文章目录目的官方库工程模板使用例程总结目的现在开发单片机大多数时候都是面向库开发的,这里将简单介绍下CH32V307的官方库。在开发过程中新建项目时通常会从某些模板开始,模板包含了库和初始化代码等内容࿰... 查看详情

《图解机器学习-杉山将著》读书笔记---ch5

CH5稀疏学习重点提炼提出稀疏学习的缘故:虽然带有约束条件的最小二乘学习法结合交叉验证法,在实际应用中是非常有效的回归方法,但是,当参数特别多时,计算参数以及预测值需要大量时间。此时,我们要解决这个问题。... 查看详情

spark机器学习读书笔记-ch05

5.2.从数据中提取合适的特征[[email protected]ch05]#sed1dtrain.tsv>train_noheader.tsv[[email protected]ch05]#lltotal42920-rw-r--r--1rootroot21972457Jan3115:03train_noheader.tsv-rw-r--r--1rootroot21972 查看详情

emacs学习笔记

这篇文章先当收藏夹用好了。。。 Emacs的快速教程第25章Emacs入门:http://i.linuxtoy.org/docs/guide/ch25.htmlEmacs零海拔入门:http://wiki.woodpecker.org.cn/moin/EmacsSuperEasyTutorialOrg-Mode的快速教程第32章组织你的意念:Emacsorgmode:http://i.l 查看详情

armv8datasheet学习笔记1:概述

1.前言ARMv8的架构继承以往ARMv7与之前处理器技术的基础;除了支持现有的16/32bit的Thumb2指令外,也向前兼容现有的A32(ARM32bit)指令集。基于64bit的AArch64架构,除了新增A64(ARM64bit)指令集外,也扩充了现有的A32(ARM32bit)和T32(Thumb232bit)指... 查看详情