嵌入式系统中异步系统调用胶囊的开发与应用
1. 驱动使用与硬件差异
在为Raspberry Pi Pico设置DigitLetterDisplay驱动时,由于使用了嵌入式操作系统,所需的更改极小。接下来只需将Raspberry Pi Pico连接到常规的Raspberry Pi板,并上传内核和示例应用程序。
Raspberry Pi Pico和micro:bit的一个关键区别在于ARM MCU的类型。Raspberry Pi Pico使用ARM Cortex - M0 + MCU,而micro:bit使用ARM Cortex M4 MCU。Tock允许以TBF文件格式分发二进制应用程序,但由于MCU不同,不能对Raspberry Pi Pico和micro:bit使用相同的TBF文件,因为MCU会因指令不兼容而报错。此时,Tock Application Bundle (TAB)文件就派上用场了,它是一个包含多个TBF文件的tar存档,每个MCU架构对应一个TBF文件。不过,tockloader知道如何使用这个文件,而gdb则不行。
在将进程加载到Raspberry Pi Pico时,必须小心选择正确的ELF文件,确保使用build/cortex - m0文件夹中的文件。从进程的角度来看,Cortex - M0和Cortex - M0 +架构是相同的。
2. 系统调用胶囊类型与架构
内核使用的胶囊或驱动主要有三种类型:Syscall胶囊、服务胶囊和驱动。对于每种类型,都有其在Tock架构中的特定含义和相关性。同时,系统调用基础设施以及系统调用从用户空间进程分发到syscall胶囊的方式也很重要。
Tock的启动过程以
超级会员免费看
订阅专栏 解锁全文
22

被折叠的 条评论
为什么被折叠?



