0

我正在为我的项目使用 atxmega256a3bu 微控制器,我想制作一个程序架构,就像我已经编译和编程了代码一样,现在只能更改一些 API 并将其重新编程到板上闪存的其他部分不应更改,新编译的 API 可以使用已在闪存中编程的其余代码。

比如我把所有的代码都做了,下载到板子里面,里面有个API函数叫

todo_callback()
{
printf("nothing to do");
}

现在,如果我想更改如下功能:

todo_callback()
{
printf("updated to do");
}

那么如何在不更改整个闪存代码的情况下更新此功能。

问候,shreyas。

4

1 回答 1

1

根据您要执行的操作,您可以使“固定”代码使用函数表来实现其函数。要添加新的实现,您只需要能够覆盖适当的指针。

(当然,这意味着函数表应该是可写的,或者在启动时生成并能够为表找到新条目。)

基本上,这个想法是添加一个间接级别,以便可以在不更改使用它们的代码的情况下交换函数。

于 2014-02-07T05:50:30.240 回答