我在我的项目中使用atxmega256a3bu微 Controller ,我想制作一个程序架构,就像我已经编译和编程了代码一样,现在只有一些API可以更改并重新编程到板上,闪存的其他部分不应更改和新编译后的 API 可以与闪存中已编程的其余代码一起使用。
例如, 我已经制作了所有代码并将其下载到板上,该板上有一个名为
的 API 函数todo_callback()
{
printf("nothing to do");
}
现在如果我想更改如下功能:
todo_callback()
{
printf("updated to do");
}
那我怎样才能只更新这个函数而不改变整个flash代码呢?
问候, 什雷亚斯。
最佳答案
根据您想要执行的操作,您可以使“固定”代码使用函数表来实现其函数。要添加新的实现,您只需要能够覆盖适当的指针。
(当然,这意味着函数表应该是可写的,或者在启动时生成,并且能够为该表查找新条目。)
基本上,这个想法是添加一层间接,以便可以在不更改使用它们的代码的情况下交换函数。
关于c - 如何仅更新微 Controller 中代码的某些部分或 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21620151/