听说可以使用内置的引导加载程序和自己编写的内核为PIC微控制器编写操作系统,而且必须是实时操作系统。
- 这是真的吗?您是否可以用C/C++为PIC编写操作系统内核?
- 如果问题1的答案是肯定的,是否有任何示例可供参考?
- 如果问题1的答案是肯定的,是否需要任何类型的软件来创建内核?
- Microchip是唯一生产PIC微控制器的公司吗?
- PIC微控制器能否在Mac上进行编程?
谢谢!
听说可以使用内置的引导加载程序和自己编写的内核为PIC微控制器编写操作系统,而且必须是实时操作系统。
谢谢!
我建议你查看 FreeRTOS。
PIC 不是单一的架构。PIC10 与 PIC24 差别很大,尽管它们和每个 PIC 之间都有一些共同点。另一方面,基于 MIPS 的 PIC32 是完全不同的架构。因此,您必须清楚自己所指的是哪种 PIC。
在 PIC 上运行的操作系统不必是实时操作系统(RTOS),但这将非常适合设备所用的应用领域,因此任何不能实时处理的东西都会减弱其实用价值。
已经有许多适用于 PIC 的 RTOS 端口。
内核调度程序没有特殊的开发方法,在大多数情况下,只需要 C 和一些汇编语言即可 - 没有特殊工具。如果您希望获得最小/最快的代码,则可以使用 100% 汇编语言,但前提是您的汇编语言知识比编译器更好。
PIC是Microchip专有的,虽然Parallax SX更或多或少是一个克隆。与ARM不同,Microchip不会将架构授权给第三方芯片制造商或IP提供商。无论如何,在我看来,没有人会想要它;还有更好的架构。ARM Cortex-M特别适合RTOS内核实现,AVR指令旨在从C源代码进行高效转换。即使是受人尊敬的8051也非常适合RTOS实现;其八个寄存器库使上下文切换非常快(对于最多八个线程),并且像ARM一样,8051架构设备可从多个制造商获得。
PIC 18F CPU 的硬件堆栈只有31个字节长。其他RAM内存不能用作堆栈。即使8051 IRAM内存具有128字节的堆栈。我已经为8051、ARM和PIC 18F做了RTOS,并且在PIC 18F上感觉不好。如果可以将PIC32的RAM(16K到64K)用作堆栈,如果堆栈指针是16位长,那么它将比PIC18F类型好得多。有人知道吗?