21ic问答首页 - CH32V307单片机,SRAM最快写入的周期是多少?
CH32V307单片机,SRAM最快写入的周期是多少?
本帖最后由 怀揣少年梦 于 2025-6-23 16:06 编辑
背景:在进行GPIO测试时,发现GPIO的翻转极限是24Mhz,应该是受限于SRAM周期问题:想了解一下SRAM最快写入的周期是多少?有什么办法可以提升吗?
汇编如下:
背景:在进行GPIO测试时,发现GPIO的翻转极限是24Mhz,应该是受限于SRAM周期问题:想了解一下SRAM最快写入的周期是多少?有什么办法可以提升吗?
汇编如下:
.section .text
.global GPIO_Toggle_Asm
GPIO_Toggle_Asm :
# 高速模式(约48MHz)
li t1, 0x40011410 # GPIOD_BSHR地址
li t2, 0x40011414 # GPIOD_BCR地址
li a5, 0x0001 # PD0置位值
loop:
sw a5, 0(t1) # 输出高电平
sw a5, 0(t2) # 输出低电平
j loop
赞0
评论
2025-06-23
@怀揣少年梦 :一般是 DMA 快。操作GPIO 不用跑指令,MCU是空闲的。
直接使用汇编应该会比DMA快一些吧
赞0
主频144,每6个周期执行一次翻转。
应该指令都在CACHE之中,与SRAM无关。CACHE是和内核时钟同步的。
分支跳转指令2,读操作数1,读GPIO寄存器1,异或计算1,写GPIO寄存器 1. 正好六个周期。优化一下可以到5个周期。把读操作数改到循环外。
评论
2025-06-23
@怀揣少年梦 :你用MCU以24M(差不多是42纳秒)的频率翻转IO口,这么快的,做什么应用?真需要这么快,不得用FPGA。
大佬我是使用汇编指令进行GPIO翻转的
赞0
评论
2025-06-23
大佬,已经添加代码
赞0
评论
2025-06-23
您需要登录后才可以回复 登录 | 注册