05 2022 档案
摘要:1、volatile关键字 volatile 是易变的、不稳定的意思。和const一样是一种类型修饰符,volatile关键字修饰的变量,编译器对访问该变量的代码不再进行优化,从而可以提供对特殊地址的稳定访问。以前只是听过这个关键词,知道它的存在,但从来没用过。用此文记录下在开发RISC-V MCU
阅读全文
摘要:CH32V203系列是基于32位RISC-V内核设计的工业级增强型低功耗通用微控制器,高性能,最高支持144MHz系统主频,低功耗,运行功耗低至45uA/MHz。本文已CH32V203为例,聊聊MCU的低功耗及应用场景。 一、低功耗产品低功耗产品一般可配置为两类运行状态: 1.平时低功耗,使用时唤醒
阅读全文
摘要:基于RISC-V MCU CH32V305/CH32V307系列MCU实现的USB2.0(480Mbps)转JTAG接口方案,可用于调试或下载CPU、DSP、FPGA和CPLD等器件。 方案构成上只需一颗CH32V305/307芯片,无需CPLD和USB PHY辅助芯片。 方案结构框图如下所示: 与
阅读全文
摘要:1、什么是ld链接脚本? 通常,程序编译的最后一步就是链接,此过程根据“*.ld”链接文件将多个目标文件(.o)和库文件(.a)输入文件链接成一个可执行输出文件(.elf)。涉及到对空间和地址的分配以及符号解析与重定位。 而ld链接脚本控制这整个链接过程,主要用于规定各输入文件中的程序、数据等内容段
阅读全文
摘要:gp,global pointer,全局指针寄存器,RISC-V 32个寄存器之一,为了优化±2KB内全局变量的访问。 gp寄存器在启动代码中加载为__global_pointer$的地址,并且之后不能被改变。 linker时使用__global_pointer$来比较全局变量的地址,如果在范围内,
阅读全文