PIC单片机操作系统

时间:2012-05-01 20:54:31

标签: operating-system kernel pic bootloader rtos

我听说可以使用内置的bootloader和你编写的内核为PIC单片机编写一个操作系统。我也听说它必须是RTOS。

  1. 这是真的吗?你能为PIC实际制作一个操作系统内核(使用C / C ++)吗?
  2. 如果是1,是否有这方面的例子?
  3. 如果是1,你需要任何类型的软件来创建内核吗?
  4. Microchip是唯一一家制造PIC微控制器的公司吗?
  5. 可以在mac上编程PIC单片机吗?
  6. 谢谢!

5 个答案:

答案 0 :(得分:7)

  1. 是的,你可以编写自己的内核(我自己编写了2个)。是的,你可以用C语言写它。如果您想要先发制人的调度,那么在编写上下文切换时,您将非常难以完全避免组装。另一方面,你可以轻松纯粹用C语言编写一个合作内核(我自己也做过)。 (请注意,创建一个操作系统并不是一项简单的任务......我首先要用纯粹的C语言,然后使用一两个OS,然后尝试创建一个。)

  2. FreeRTOS就是一个很好的例子。它具有PIC24F,PIC33F和PIC32MX的预先存在的端口(即在Explorer16演示板上无需修改的MPLAB项目)(以及其他供应商和设备的20多个其他官方端口)。支持PIC18F,但它并不漂亮......

  3. 您只需要MPLAB来创建内核(不含Microchip)。它可以与C和汇编互换。根据处理器的不同,可以使用免费版本的C30和C32编译器来使用MPLAB。

  4. PIC是一种微控制器,是Microchip的商标。许多其他公司制造微控制器并称之为其他东西(例如AVR,LPC,STM32)。

  5. 是的,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类型好得多。有人知道吗?