嵌入式硬件
文章平均质量分 67
单片机,RISC-V,Cortex-M
半斗米
嵌入式系统设计师 & 电子工程师
展开
-
RISC-V 和 Cortex-M 的异同
RISC-V 和 Cortex-M 都属于精简指令计算机(RISC),但是二者之间还是有很大区别的。原创 2022-03-22 20:19:57 · 4223 阅读 · 2 评论 -
RISC-V 使用位域
RISC-V 的位域:低位在先原创 2022-02-26 17:25:46 · 312 阅读 · 0 评论 -
FE310三个版本的差异
FE310到目前为止(2022年2月24日)出了三个版本,分别为FE310-G000 、FE310-G002 、FE310-G003,总体上差不多,但是又有一些细节上的差异。原创 2022-02-26 17:15:18 · 467 阅读 · 0 评论 -
NPN和PNP三极管搭建推挽电路实验
用NPN和PNP三极管效仿NMOS和PMOS管搭建推挽式反相器。原创 2021-03-13 10:42:28 · 4152 阅读 · 4 评论 -
PSpice WARNING(ORPSIM-15220): Error in Open Alias File
网络名与SCHEMATIC1.ALS文件中的关键字重名。原创 2021-02-28 19:19:26 · 1258 阅读 · 1 评论 -
交流耦合仪表放大器(AC-Coupled Instrumentation Amplifier)
TI 参考设计,使用 INA128 仪表放大器、OPA188 运算放大器做交流耦合。INA128使用直流耦合,OPA188 做积分并连到 INA128 的 Ref 脚以消除直流分量。转载 2021-02-25 10:55:00 · 1451 阅读 · 0 评论 -
适用于Cortex-M的低功耗休眠轮询编程模式
利用Cortex-M的Send-Event-on-Pend特性实现休眠轮询编程模式,休眠轮询模式在保持程序设计简单性的同时降低了功耗。mingdu.zheng at gmail dot com http://blog.csdn.net/zoomdy/article/details/79399478轮询模式因为不涉及中断处理,因此在程序结构上比较简单,也比较符合人类的同步思维习惯。但通常的...原创 2018-02-28 16:26:55 · 1350 阅读 · 0 评论 -
Cortex-M0/M0+屏蔽优先级低于BASEPRI设定的中断
Cortex-M3/M4/M7有BASEPRI特殊功能寄存器可以屏蔽优先级低于BASEPRI设定值的中断,但Cortex-M0/M0+没有BASEPRI寄存器,不过仍然可以实现相识的功能。mingdu.zheng at gmail dot com http://blog.csdn.net/zoomdy/article/details/79316998实现方法虽然Cortex-M0...原创 2018-02-12 15:55:00 · 2536 阅读 · 1 评论 -
对Cortex-M0/M0+难理解指令的解释
对部分需要加以注意或者不知道干嘛用的Cortex-M0/M0+指令给予个人理解层面的解释。完整的指令集请参考《Cortex-M0/M0+指令集》mingdu.zheng at gmail dot com http://blog.csdn.net/zoomdy/article/details/79308903可访问high registers的指令绝大部分指令只能访问low reg...原创 2018-02-11 11:19:11 · 5276 阅读 · 0 评论 -
Cortex-M0/M0+指令集
For the ARMv6-M architecture used in the Cortex-M0 and Cortex-M0+ Processors, in order to reduce the circuit size to a minimum, only the 16-bit Thumb instructions and a minimum subset of 32-bit Thumb ...转载 2018-02-10 15:57:36 · 6476 阅读 · 0 评论 -
运用结构体优化Cortex-M0/M0+程序
将全局变量组合成结构体,结构体成员变量的数目不超过32个,并按照大小排放,如此可以利用Cortex-M0/M0+的指令集生成最优的代码。mingdu.zheng at gmail dot com http://blog.csdn.net/zoomdy/article/details/79304324将全局变量组合成结构体来看一段很简单的实例代码。// 前半部分使用3个分散...原创 2018-02-15 09:38:38 · 899 阅读 · 0 评论 -
Cortex-M0/M0+ System Control Space Registers
SysTick Register Summary Address Name CMSIS symbal Full name 0xE000E010 SYST_CSR SysTick->CTRL SysTick Control and Status Register 0xE000E014 SYST_RVR SysTick->LOA...转载 2018-02-10 11:05:56 · 1452 阅读 · 0 评论 -
利用dprintf为Cortex-M0/M0+添加类似SWO的调试输出口
M3/M4/M7都有SWO可以作为调试输出接口,而M0/M0+没有SWO,不过可以使用GDB的dprintf特性给M0/M0+添加类似SWO的调试输出能力。这在没有多余的串口可以用作调试输出口时就特别有用了。mingdu.zheng at gmail dot com http://blog.csdn.net/zoomdy/article/details/792514221、定义输出函...原创 2018-02-04 11:07:13 · 1090 阅读 · 0 评论 -
学习Cortex-M:三种关中断方式
1、关闭整个CPU的所有中断;2、关闭特定外设的所有中断;3、关闭特定外设的特定中断源。http://blog.csdn.net/zoomdy/article/details/54954168 mingdu.zheng at gmail dot com1、总开关每个CPU有一个中断总开关。通过CPU中断控制寄存器实现。Cortex-M的中断控制寄存器包括:FAULTMASK、PR...原创 2017-04-02 20:13:03 · 10437 阅读 · 0 评论 -
学习Cortex-M:结构体 vs 分散变量
学习Cortex-M:结构体 vs 分散变量静态变量使用结构体表示的代码无论在space上还是speed上都要优于分散变量,应当尽量使用结构体。对于局部变量采用结构体还是分散变量并没有什么区别。http://blog.csdn.net/zoomdy/article/details/54895708 mingdu.zheng at gmail dot com结构体创建一段测试代...原创 2017-02-06 20:00:53 · 694 阅读 · 0 评论 -
Cortex-M入门
Cortex-M入门还是要看书,看书才能系统性地掌握。手上得有块开发板,实践才能深刻理解。开发工具要用好,“工欲善其事,必先利其器”。http://blog.csdn.net/zoomdy/article/details/54799787 mingdu.zheng at gmail dot com还是要看书在网上看博客逛论坛也是能学到些东西的,但通常是知识点,不能构成知识面。...原创 2017-02-01 08:57:18 · 2201 阅读 · 0 评论 -
NUCLEO-F767ZI以太网功能实现笔记本电脑不开盖开机
NUCLEO-F767ZI以太网功能实现笔记本电脑不开盖开机不想打开笔记本盖子按开机按钮开机?可以使用Wake-on-LAN远程唤醒。这里展示怎么用NUCELO-F767ZI以太网功能发送MagicPacket唤醒笔记本电脑。http://blog.csdn.net/zoomdy/article/details/54799462 mingdu.zheng at gmail dot com...原创 2017-02-01 08:32:38 · 2870 阅读 · 0 评论 -
NUCLEO-F767ZI以太网初探
NUCLEO-F767ZI以太网初探利用STM32CubeMX生成NUCLEO-F767ZI初始化代码和工程文件,修改配置和代码,使用DHCP动态获取IP地址,可以ping到NUCLEO-F767ZI。http://blog.csdn.net/zoomdy/article/details/54784027 mingdu.zheng at gmail dot com接口模式选择RM...原创 2017-01-30 21:30:11 · 3518 阅读 · 0 评论 -
NUCLEO-F042K6驱动的彩色灯环(WS2812)
NUCLEO-F042K6驱动的彩色灯环(WS2812)NUCLEO-F042K6是STMicroelectronics出品的Nucleo系列开发板之一,MCU为Cortex-M0核心的STM32F042K6。WS2812是常用的集成驱动电路的16M色LED。这里介绍使用STM32F042K6的SPI+DMA驱动WS2812的方法以及源代码分享。http://blog.csdn.net/z...原创 2017-01-25 18:50:38 · 5914 阅读 · 0 评论 -
5V供电Cortex-M微控制器
传统的微控制器(单片机)是5V供电系统,要想使用Cortex-M架构的微控制器替换这些传统器件,那最好是有5V供电的Cortex-M微控制器了,但现实情况是大部分Cortex-M架构的微控制器是3.3V供电的,最近几年才出现一些5V供电的Cortex-M微控制器,这里列出了部分5V供电的Cortex-M微控制器系列,点击链接打开官网。原创 2016-02-02 12:34:05 · 4938 阅读 · 0 评论 -
支持Cortex-M处理器的objloader组件
objloader是eCos系统提供的用于支持模块动态加载的组件,经过移植后,现已支持Cortex-M处理器架构。eCos官网:http://ecos.sourceware.orgeCos中文技术网:http://www.52ecos.neteCos交流QQ群:144940146。http://blog.csdn.net/zoomdy/article/details/20200355m...原创 2014-03-01 09:41:35 · 1951 阅读 · 0 评论 -
国产MCU,Cortex-M和RISC-V核心
国产MCU,Cortex-M和RISC-V核心原创 2020-08-07 16:07:07 · 8920 阅读 · 1 评论 -
RISC-V 嵌入式 Rust 快速入门,基于 Renode 模拟器和 HiFive1 开发板
Rust 是一种新的系统编程语言,其继承了 C 语言的诸多优点,同时又克服了 C 语言的诸多缺陷,是嵌入式开发的一个新选项。原创 2020-12-14 11:13:35 · 4236 阅读 · 0 评论 -
可以跑Linux的RISC-V计算机、微型电脑、单板机
RVBoards-D1-哪吒 某宝有售,搜索 rvboards 即可,699RMB。VisionFive 昉·星光线上发售,售价1100RMB。HiFive Unmatched 售价665美元。原创 2020-09-08 16:53:15 · 4122 阅读 · 2 评论 -
RISC-V 整数寄存器(x0~x31)与浮点寄存器(f0~f31)数据交换
RV32F、RV64F、RV64D 都有 fmv 指令可以做数据交换,RV32D 没有 fmv 指令可用,需要特殊处理。原创 2020-09-08 15:07:33 · 2441 阅读 · 0 评论 -
说说RISC-V的x0寄存器
RISC-V有32个通用寄存器,其中第1个寄存器x0硬编码为0,即读出来总是0,写进去总是被丢弃。x0为RISC-V指令集的简化可贡献不少啊。mingdu.zheng at gmail dot com http://blog.csdn.net/zoomdy/article/details/79343785搞过Linux的都知道Linux有两个特殊的设备:/dev/zero和/dev/nu...原创 2018-02-21 19:50:48 · 8950 阅读 · 0 评论 -
RISC-V Machine Mode 和 User Mode 相互切换
M模式下使用mret指令进入U模式,U模式下使用ecall指令进入M模式。转载 2019-08-31 19:40:26 · 8674 阅读 · 0 评论 -
RISC-V 借助CSR实现不修改工具链扩展指令
通常来讲,扩展指令集是要修改工具链的,至少也要修改汇编器和反汇编器。然而借助CSR可以实现不修改工具链扩展指令集的目的。原创 2019-08-31 20:09:44 · 1864 阅读 · 1 评论 -
RV-LINK:NucleiStudio 使用 RV-LINK 调试 RISC-V 程序
NucleiStudio 本质上是 Eclipse,按照 Eclipse 的做法就可以了。原创 2019-09-28 10:56:53 · 994 阅读 · 0 评论 -
RV-LINK:Eclipse 使用 RV-LINK 调试 RISC-V 程序
Eclipse 使用 GDB Hardware Debugging 类调试配置使用 RV-LINK,JTAG Device 选择 Generic Serial,GDB Connection String 填入 RV-LINK 串口号。原创 2019-09-28 10:56:31 · 1712 阅读 · 1 评论 -
RV-LINK:GDB 使用 RV-LINK 仿真器调试 RISC-V 程序
准备作为仿真器的开发板,下载 GDB,安装 USB 串口驱动,将 RV-LINK 烧入开发板,于是开发板变身 RISC-V 仿真器!原创 2019-09-28 10:56:08 · 4300 阅读 · 1 评论 -
RV-LINK:将 Longan Nano 开发板变成 RISC-V 仿真器
Longan Nano 烧入 RV-LINK 固件,将 Longan Nano 开发板变成 RISC-V 仿真器。原创 2019-09-28 10:55:40 · 1987 阅读 · 1 评论 -
RV-LINK:将 GD32VF103C-START 开发板变成 RISCV-V 仿真器
将 RV-LINK 固件烧入 GD32VF103C-START,将 GD32VF103C-START 变成 RISC-V 仿真器。原创 2019-09-28 10:55:07 · 2468 阅读 · 0 评论 -
RV-LINK:GD32VF103 问题:JTAG 引脚重映射、TAP 链定义等
在开发 RV-LINK 过程中发现的 GD32VF103 存在的问题。原创 2019-09-25 21:18:44 · 2493 阅读 · 1 评论 -
RISC-V GCC:-specs=nano.specs 的作用
nona.specs 将 `-lc` 替换成 `-lc_nano`,使有精简版的C库替代标准C库,可以减少最终程序映像的大小。原创 2019-09-11 09:50:36 · 8379 阅读 · 0 评论 -
RISC-V:__global_pointer$
The linker uses the `__global_pointer$` symbol definition to compare the memory addresses and, if within range, it replaces absolute/pc-relative addressing with gp-relative addressing, which makes the code more efficient.转载 2019-09-10 16:30:47 · 3767 阅读 · 0 评论 -
RISC-V:-mcmodel=medlow vs -mcmodel=medany
`-mcmodel` 对 RV32 没什么影响,对 RV64 有影响。不指定 `-mcmodel` 的情况下,默认是 `medlow`。对于 RV32,不用刻意指定 `-mcmodel`。原创 2019-09-10 15:46:53 · 3895 阅读 · 0 评论 -
大道至简——RISC-V架构之魂(下)
本文为《RISC-V CPU设计》专栏和《RISC-V嵌入式软件开发》专栏系列文章之一。 注:本文节选自“硅农亚历山大”所著国内第一本系统介绍CPU与RISC-V设计的中文书籍《手把手教你设计CPU:RISC-V处理器篇》(预计将于2018年3~4月上市)。原文出处:《大道至简——RISC-V架构之魂(下)》“大道至简——RISC-V架构之魂”——分成上中下三篇,本文是下篇。...转载 2018-03-16 14:05:17 · 22099 阅读 · 1 评论 -
RISC-V反汇编显示原始指令和寄存器编号
反汇编时添加 `-M no-aliases,numeric`选项,输出原始指令和寄存器编号。原创 2018-10-09 14:14:10 · 8264 阅读 · 0 评论 -
RISC-V加载常量(立即数或地址)
RISC-V使用`I-type`格式的指令和`U-type`格式的指令加载立即数,`I-type`格式包含12位立即数,`U-type`格式包含20位立即数,而且这20位是加载到寄存器的高20位的。所以,一条`I-type`指令加上一条`U-type`指令就可以加载32位的常量,包括32位的立即数或内存地址。有些情况下只需要一条`I-type`指令,或者一条`U-type`指令就可以了。原创 2018-10-16 09:43:37 · 9807 阅读 · 2 评论