"Self Programming" 对比 "In Application Programming"

"Self Programming" vs "In Application Programming"

我指的是 Atmega 控制器和 LPC2148 微控制器。 Atmel 谈到 "Self Programming",而 NXP 谈到 "In Application Programming"。这两种技术在概念上是否相同?这意味着我们甚至可以远程编程,而无需使用适当的软件连接编程器或 PC?

我认为你所指的与部件中的闪存编程有关,闪存包含部件运行的固件。该部分的编程有两个大的图片类别。一个是部件中的处理器阻止您从部件外部的某些软件、主机、设备编程器,无论是通过部件上的引脚对该部件进行编程。第二大类是零件上的软件对零件上的存储器进行编程,所有这些都在零件内。不是自修改代码,而是说有 N banks of program flash,一个 bank of flash 可以是 运行 一个程序(比如 bootloader),可以对其他 bank 进行编程。引导加载程序一个,另一个用例是该部分具有通过以太网的能力,例如去检查固件更新。

对于外部,以防芯片供应商提供用于停止处理器(理想情况下)和对闪存进行编程的接口 designed/defined。对于内部到内部的情况,有一些接口是内部处理器地址 space 的一部分,可以执行相同的任务,尽管不一定完全相同。因此文档需要将两种主要方法分开,因为它们都有地址和时序图等来解释如何做。

每个供应商,无论是工程部门、营销部门还是法律部门,或者两者的组合,都可能出于各种原因针对同一事物提出不同的术语,主要是为了避免您将我们的部分与他们的部分混淆。 NXP 不希望您在应用程序编程中使用谷歌搜索并找到一些 atmel 部件,然后切换到 atmel。

是的。它们都意味着您编写的程序可以更新芯片的程序存储器(闪存)。此功能可用于实现引导加载程序等。

在早期,您必须物理地拔出程序存储芯片并使用特殊的编程器工具来加载代码。然后我们进行了系统编程——这意味着您可以将一个特殊工具连接到芯片上的几个引脚并对其进行编程,而无需将其从电路板上移除。之后是应用程序编程——这意味着芯片可以自行编程。

您可以看到这有点令人困惑,所以我认为这就是为什么 Atmel 只使用更具描述性的术语 'self programming' 来表示 IAP。