c - 是否可以创建支持多种不同微 Controller 的 PIC 固件二进制文件?

标签 c pic microchip firmware mplab

由于目前芯片短缺,我不得不购买与最初设计规范不同的 PIC 微 Controller 。

  • 初始:PIC24FJ256GA606
  • 修订版 1:PIC24FJ512GA606
  • 修订版 2:PIC24FJ1024GA606

在本例中,微 Controller 属于同一系列,但内存大小不同。

最初,创建二进制文件是为了支持多种产品变体,并且它们都使用该微 Controller (使用硬件引脚来定义产品类型,从而定义其支持的软件功能)。我想继续使用单个二进制文件,但能够支持上面指定的不同微 Controller 。

我们在制造过程中使用 PICKIT 4 刷新微 Controller 。 在制造过程中,定制引导加载程序也会闪存到微 Controller 上,以允许固件更新过程由现场的另一个 PIC 微 Controller 驱动(它是一个通过 RS-485 连接的分布式系统)。

我使用 MPLAB X IDE 进行开发和构建生产二进制文件。

我想关键问题是这是否可能? 如果是这样,那么我将如何创建支持多个处理器的单个二进制文件?

最佳答案

通常,单个二进制文件应仅对应于特定的 Controller 。因为尤其是 Microchip 拥有种类繁多的微 Controller 。但正如您在问题中提到的:

In this instance, the microcontrollers are within the same family but have different size of memory.

您可以稍微使用相同的二进制文件,只要您非常仔细地选择硬件即可。我的意思是,如果这 3 种不同的型号具有相同的引脚映射,但有些引脚映射较少或有些较多,那么您将尽可能为 I/O 功能选择通用的相应引脚。由于这些设备来自同一系列,因此它们必须具有具有相同端口和引脚编号的公共(public) IO 引脚。

如果这些相似之处(包括内部寄存器)足以满足您系统的功能,您可以为这 3 个或更多设备使用相同的二进制文件只要您非常仔细地选择正确的硬件如果不触及其硬件,所有功能都不会保留。

但是对于不属于同一个系列的其他系列来说,很难说同样的事情。在这种情况下,您可以检查系统每个功能的硬件相似性。如果那个微 Controller 提供了相同的硬件,那么你可以先去尝试一下,看看它是否会被编程,然后它会以同样的方式运行。在确保足够之后,您也可以将该模型添加到可用模型列表中。

希望这能给您带来有用的想法。

关于c - 是否可以创建支持多种不同微 Controller 的 PIC 固件二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70379534/

相关文章:

将结构复制到 C 中的结构

c - 试图了解 Microchip PIC16LF15344 I2C 外围引脚选择

c++ - 代码依赖文档软件

c - 一次成功写入()/读取()后套接字 "Bad file desc."

c++ - C++ 中的定宽整数

c - 如何在非 volatile 存储器中存储数据

python - 如何制作 Cython 对象的副本?

embedded - 如何使用_small_代码空间减少十六进制ASCII字符转换的代码空间?

c - XC8 编译器是否支持弱符号?

c - Pic32 引导加载程序写入内存