26、Tock系统中异步与同步API的应用及Raspberry Pi Pico适配

Tock系统中异步与同步API的应用及Raspberry Pi Pico适配

1. 文本显示回调函数

当文本显示或出现错误时,会调用 text_displayed 函数。在这个函数中,会执行两个操作:
- 无论文本是否成功显示,都要通过取消回调订阅和释放缓冲区来进行清理。
- 验证库的用户是否注册了回调,如果注册了,就以状态和存储的用户数据为参数调用该回调。

2. 同步与异步API
  • 异步API :之前展示的异步API与驱动的工作方式非常相似。不过,对于应用开发者来说,使用异步API很多时候是比较困难的。因此,大多数用户空间库会为驱动提供同步API,即库会实现所有等待回调所需的代码。
  • yield系统调用
    • 驱动可以随时调度上调用(upcall),无论用户空间进程在做什么。当驱动调度上调用时,内核不会立即调用用户空间中注册的函数,而是将上调用入队。与Linux通过中断进程来传递信号不同,Tock永远不会因为上调用而中断进程。内核只有在进程处于 Yielded 状态时才会调用函数回调。
    • 每个进程都有一个有限的可调度任务队列,上调用是这些任务之一。默认情况下,队列大小为10。如果队列已满,上调用调度将失败。
    • 进程通过 yield 系统调用请求内核将其置于 Yielded 状态。当内核收到 yield 系统调用时,它会
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值