我听说可以使用内置的bootloader和你编写的内核为PIC单片机编写一个操作系统。我也听说它必须是RTOS。
谢谢!
答案 0 :(得分:7)
是的,你可以编写自己的内核(我自己编写了2个)。是的,你可以用C语言写它。如果您想要先发制人的调度,那么在编写上下文切换时,您将非常难以完全避免组装。另一方面,你可以轻松纯粹用C语言编写一个合作内核(我自己也做过)。 (请注意,创建一个操作系统并不是一项简单的任务......我首先要用纯粹的C语言,然后使用一两个OS,然后尝试创建一个。)
FreeRTOS就是一个很好的例子。它具有PIC24F,PIC33F和PIC32MX的预先存在的端口(即在Explorer16演示板上无需修改的MPLAB项目)(以及其他供应商和设备的20多个其他官方端口)。支持PIC18F,但它并不漂亮......
您只需要MPLAB来创建内核(不含Microchip)。它可以与C和汇编互换。根据处理器的不同,可以使用免费版本的C30和C32编译器来使用MPLAB。
PIC是一种微控制器,是Microchip的商标。许多其他公司制造微控制器并称之为其他东西(例如AVR,LPC,STM32)。
是的,Mac,Linux和Windows支持新版本的MPLAB X.
答案 1 :(得分:4)
我建议您查看FreeRTOS。
答案 2 :(得分:2)
我对FreeRTOS的投票次数第二;我们一直在PIC24设计上使用它。端口运行良好,不使用大量内存。
Microchip supports many third party RTOSes.
大多数都有免费的演示项目,您可以下载,在MPLAB中构建,并非常容易地编程到Explorer16板上。然后,您可以尝试心脏的内容。
答案 3 :(得分:1)
PIC不是一个单一的架构。 PIC10与PIC24有很大的不同,尽管它们和它们之间的每个PIC都具有一些共性。另一方面,基于MIPS的PIC32是一种完全不同的架构。所以你必须清楚你所指的是什么PIC。
PIC上的操作系统没有和RTOS,但这非常适合设备所用的应用程序域,因此任何不具备实时功能的都是有点不太有用。
PIC已有很多RTOS ports。
关于开发方法C的内核调度程序并没有什么特别之处,在大多数情况下,只需要一些小的汇编程序 - 没有特殊的工具。如果您愿意,可以使用100%汇编程序,这可能是获得最小/最快代码所必需的,但前提是您的汇编程序知识优于编译器。
PIC特定于Microchip,但Parallax SX或多或少是克隆。例如,与ARM不同,Microchip不会将架构许可给第三方芯片制造商或IP提供商。在任何情况下都没有人会想要IMO;有更好的架构。 ARM Cortex-M特别适用于RTOS内核实现,AVR的指令专为从C源代码进行高效转换而设计。即使是古老的8051也非常适合RTOS的实施;它的8个寄存器组使上下文切换速度非常快(最多可以有8个线程),而像ARM一样,8051架构设备可以从多个制造商处获得。
答案 4 :(得分:0)
PIC 18F CPU的硬件堆栈长度仅为31个字节。其他RAM内存不能用作堆栈。甚至8051 IRAM内存也有128字节的堆栈。我已经完成了8051,ARM和PIC 18F的RTOS,并且对PIC 18F感觉不太好。如果PIC32的RAM(16K至64K)可用作堆栈,如果堆栈指针长度为16位,则它将比PIC18F类型好得多。有人知道吗?