CH32V307单片机,SRAM最快写入的周期是多少?
本帖最后由 怀揣少年梦 于 2025-6-23 16:06 编辑背景:在进行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
阁下是怎么测试的呢?详细说说,包括代码。 看起来没啥问题。
主频144,每6个周期执行一次翻转。
应该指令都在CACHE之中,与SRAM无关。CACHE是和内核时钟同步的。
分支跳转指令2,读操作数1,读GPIO寄存器1,异或计算1,写GPIO寄存器 1. 正好六个周期。优化一下可以到5个周期。把读操作数改到循环外。 用DMA 循环模式应该可以更快些。让DMA 不停地轮流传输两个数据到GPIO。MCU 休眠,免得抢总线。 你可以擦写个1000次然后算个总时间,就可以得出平均时间了 把代码放在sram内部运行试试,我觉得应该是读flash导致的瓶颈
页:
[1]