Operating system PIC微控制器操作系统

Operating system PIC微控制器操作系统,operating-system,kernel,pic,bootloader,rtos,Operating System,Kernel,Pic,Bootloader,Rtos,我听说可以使用内置的引导加载程序和您编写的内核为PIC微控制器编写操作系统。我还听说它必须是RTOS 这是真的吗?你能为PIC制作一个操作系统内核(使用C/C++)吗 如果1为“是”,是否有此类示例 如果1是,您是否需要任何类型的软件来创建内核 Microchip是唯一一家生产PIC微控制器的公司吗 PIC微控制器可以在mac上编程吗 谢谢 我建议你退房 是的,您可以编写自己的内核(我自己编写了2个)。是的,你可以用C为PIC写。如果您想要先发制人的调度,那么在编写上下文切换时将很难完全避免汇编

我听说可以使用内置的引导加载程序和您编写的内核为PIC微控制器编写操作系统。我还听说它必须是RTOS

  • 这是真的吗?你能为PIC制作一个操作系统内核(使用C/C++)吗
  • 如果1为“是”,是否有此类示例
  • 如果1是,您是否需要任何类型的软件来创建内核
  • Microchip是唯一一家生产PIC微控制器的公司吗
  • PIC微控制器可以在mac上编程吗
  • 谢谢

    我建议你退房

  • 是的,您可以编写自己的内核(我自己编写了2个)。是的,你可以用C为PIC写。如果您想要先发制人的调度,那么在编写上下文切换时将很难完全避免汇编。另一方面,您可以很容易地纯粹用C编写一个协作内核(我自己也做过)。(请注意,创建一个操作系统并不是一项简单的任务……我会先让您在纯C中了解情况,然后使用一两个操作系统,然后尝试创建一个操作系统。)

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

  • 您只需要MPLAB来创建内核(不含微芯片)。它可以与C和assembly互换工作。根据处理器的不同,MPLAB附带有免费版本的C30和C32编译器

  • PIC是一种微控制器,是微芯片的商标。许多其他公司生产微控制器,并称之为其他产品(如AVR、LPC、STM32)

  • 是的,新版本的MPLAB X在Mac、Linux和Windows上受支持


  • 我支持弗里尔托斯;我们在PIC24设计中一直使用这个。该端口工作正常,不占用大量内存


    大多数都有免费的演示项目,您可以很容易地下载、在MPLAB中构建和在Explorer16板上编程。然后你可以尽情地试验

    PIC不是一个单一的体系结构。PIC10与PIC24有很大的不同,尽管它们和它们之间的每个PIC都有一些共同点。另一方面,基于MIPS的PIC32是一种完全不同的体系结构。所以你必须清楚你指的是什么图片

    PIC上的操作系统不必是RTO和RTO,但这将非常适合设备所使用的应用领域,因此任何不具备实时能力的操作系统都会变得不那么有用

    已经有很多照片

    就开发方法而言,内核调度器没有什么特别之处,C语言,在大多数情况下,只需要一个小的汇编程序,而无需特殊的工具。如果您愿意,您可以使用100%汇编程序,这对于获得最小/最快的代码可能是必要的,但前提是您的汇编程序知识优于编译器


    虽然PIC或多或少是一个克隆,但它是微芯片特有的。例如,与ARM不同的是,Microchip不向第三方芯片制造商或IP提供商许可该体系结构。无论如何,没有人会想要它;有更好的体系结构。ARM Cortex-M特别适合RTOS内核实现,AVR的指令设计用于从C源代码高效翻译。即使是久负盛名的8051也非常适合RTOS的实现;它的八个寄存器组使上下文切换速度非常快(最多八个线程),与ARM一样,8051体系结构设备可从多个制造商处获得。

    PIC18F CPU的硬件堆栈只有31字节长。其他RAM内存不能用作堆栈。即使是8051 IRAM内存也有128字节的堆栈。我做过8051、ARM和PIC18F的实时操作系统,感觉PIC18F不太好。如果PIC32的RAM(16K到64K)可以用作堆栈,如果堆栈指针是16位长的,它将比PIC18F类型好得多。有人知道吗?

    我看到了那个,并对此感到好奇。您将如何编译并将其保存到PIC?此外,我还需要RTOS支持检测按钮并确定按钮是否已按下。请查看“支持的MCU”页面以了解支持的工具。至于按钮——好吧,这将是您要实现的工作。请参阅:@Coder:典型的RTOS内核提供基于优先级的抢占式线程调度、进程间通信,通常还有一些用于中断处理的最小框架。通常不包括I/O。在您的情况下,您可能会让按钮输入触发一个中断,然后中断向线程发送一个事件信号。或者(效率较低)你可能会有一个线程轮询输入并向其他线程发送事件。为什么你认为你需要一个像PIC这样的小型微控制器上的操作系统?@PaulR这是一个我正在编写一个小型操作系统的项目,它可以为一个小型设备做很多事情。PIC小巧、受支持、现代化且价格低廉。@PaulR-作为一名专业的嵌入式程序员,我发现在PIC上使用RTOS几乎总是一个更好的主意。@Adam:有趣的是,我原以为对于大多数PIC应用程序来说,完整的RTOS是一种过火的技术,但我可以看到一个小型多任务内核的价值。@PaulR-同意;有不同级别的RTO。。。FreeRTOS是一个小型多任务内核,完全适合PIC。我们发现,它几乎总是比编写自己的调度程序要好,尤其是在PIC24及以上版本上。+1完全回答了我的问题!非常感谢。一个传统的注意事项是,您可以使用其他IDE为PIC微控制器编程,比如ccsinfo.com上的ccs c,这是最好的PIC IDE+c编译器之一,或者您可以使用Mikroletronika上的IDE,它支持c、Pascal或Basic for PIC和AVR.Tha