news 2026/4/18 14:22:45

树莓派Pico‌的pio指令

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树莓派Pico‌的pio指令

整体结构

RP2040 ├── PIO0 │ ├── Instruction RAM(32× 16bit)│ ├── SM0 │ ├── SM1 │ ├── SM2 │ └── SM3 └── PIO1 ├── Instruction RAM(32× 16bit)├── SM0 ├── SM1 ├── SM2 └── SM3

State Machine(SM)内部寄存器

名称位宽类型说明
PC5 bit寄存器指令计数器
X32 bit寄存器通用工作寄存器
Y32 bit寄存器通用工作寄存器
ISR32 bit移位寄存器输入移位缓存
OSR32 bit移位寄存器输出移位缓存

SM FIFO

PULL(TX → OSR) PUSH(ISR → RX)
名称方向位宽深度本质
TX FIFOCPU → SM32 bit4硬件队列
RX FIFOSM → CPU32 bit4硬件队列

指令宽度:16 bit|1 指令 = 1 cycle(+ delay)

一、PIO 指令

分布 delay / side-set 可重分配

15–1312–87–0
含义OPCODEOPERANDDELAY / SIDESET

指令表

指令作用示例
JMP条件 / 无条件跳转jmp x-- loop
WAIT等待 GPIO / IRQwait 1 pin 0
IN输入到 ISRin pins, 1
OUT从 OSR 输出out pins, 1
PUSHISR → RX FIFOpush
PULLTX FIFO → OSRpull
MOV寄存器操作mov x, osr
IRQ触发 / 等待中断irq 0
SET立即数写寄存器 / GPIOset pins, 1

二、各指令详细表(含例子)

1️⃣ JMP —— 跳转

jmp condition, target
条件含义例子
always无条件jmp start
x--X–,不为 0 则跳jmp x-- loop
y--Y–,不为 0 则跳jmp y-- send
!xX == 0jmp !x done
x!=yX ≠ Yjmp x!=y retry
pinpin 为 1jmp pin high
!osreOSR 非空jmp !osre more

2️⃣ WAIT —— 等待

waitpolaritysourceindex
项目说明例子
polarity等待 0 / 1wait 0 gpio 5
GPIO指定 GPIOwait 1 gpio 2
PINpin 映射wait 1 pin 0
IRQ等待 IRQwait 1 irq 0

3️⃣ IN —— 输入移位

insource, bit_count
source说明例子
pins从 GPIO 读in pins, 1
x从 Xin x, 8
y从 Yin y, 4
null填 0in null, 8
isrISR → ISRin isr, 1

4️⃣ OUT —— 输出移位

out dest, bit_count
dest说明例子
pins输出到 GPIOout pins, 1
x输出到 Xout x, 8
y输出到 Yout y, 4
null丢弃out null, 32
pindirs设置方向out pindirs, 1

5️⃣ PUSH —— ISR → RX FIFO

push[if_full][block]
形式说明例子
默认阻塞push
if_fullISR 满才推push if_full
noblock非阻塞push noblock

6️⃣ PULL —— TX FIFO → OSR

pull[if_empty][block]
形式说明例子
默认阻塞pull
if_emptyOSR 空才拉pull if_empty
noblock非阻塞pull noblock

7️⃣ MOV —— 寄存器操作

mov dest, src
src说明例子
xXmov y, x
yYmov x, y
osrOSRmov x, osr
isrISRmov osr, isr
null0mov x, null
~x取反mov x, ~x

8️⃣ IRQ —— 中断

irq[set|clear|wait]index
操作说明例子
set触发 IRQirq set 0
clear清 IRQirq clear 0
wait等待 IRQirq wait 0

9️⃣SET —— 立即数写

setdest, value
dest说明例子
pinsGPIO 输出set pins, 1
xX 寄存器set x, 10
yY 寄存器set y, 3
pindirsGPIO 方向set pindirs, 1
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:53:07

AI写论文优选推荐!4个AI论文生成工具,帮你搞定毕业大论文!

实测四款AI论文写作工具,提升写作效率300%! 还在为撰写期刊论文而苦恼吗?面对海量的文献资料、复杂的格式要求以及反复的修改过程,许多学术人员都体会到写作效率低下的烦恼!别担心,下面介绍的四款AI论文写…

作者头像 李华
网站建设 2026/4/18 11:04:33

专业干货!低查重AI教材写作工具大盘点,开启教材生成新体验!

编写教材的复杂格式问题一直是许多作者的烦恼。比如,标题该选用多大的字体,应该分为几级层级?参考文献引用是根据GB/T7714的规范,还是各个出版机构的一些标准?习题的排版到底是单栏还是双栏?面对如此繁杂的…

作者头像 李华
网站建设 2026/4/18 5:31:04

ue metahuman 未登录

ue metahuman 已经下载,但是还是显示未登录,原因: 现象真正原因 显示 User not logged in账号和角色DNA不匹配 到处都登录了还报错角色不是你账号创建 UE5.5 没事 5.6 报错5.6 强制校验 Source 资源权限

作者头像 李华
网站建设 2026/4/18 1:06:39

pic单片机效率探讨,打包pic单片机A/D转换数据

pic单片机作用宽泛,对于pic单片机,大家已不再像若干年前一样一无所知。随着对pic单片机的使用,大家的pic单片机应用技能逐渐增强、熟练度逐步提高。但是,大家仍会碰到一些pic单片机相关问题。本文中,小编将介绍如何将p…

作者头像 李华
网站建设 2026/4/18 8:48:57

亲测好用8个降AIGC平台推荐 千笔·降AIGC助手解决降AI率难题

AI降重工具:让论文更“自然”的秘密武器 在当前高校论文写作中,越来越多的学生开始关注“AIGC率”和“查重率”这两个关键词。随着AI技术的普及,许多学生在使用AI辅助写作时,发现自己的论文被系统判定为“AI生成”,这不…

作者头像 李华