c - 如何仅更新微 Controller 中代码的某些部分或 API

标签 c microcontroller avr atmel flash-memory

我在我的项目中使用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/

相关文章:

c - 如何优化 malloc() 或动态填充未知大小的内存?

c - C 代码中的飞思卡尔微 Controller 错误

c - 不会打印字符串。字符数组

c - AVR C编程延迟按下按钮的两个功能

c++ - 如何在C语言中检测环绕计数器和大负值之间的区别

c - 响铃字符 (\a) 用于删除空格

embedded - 设置 RXIF 标志时未调用 PIC32 SPI ISR?

networking - 嵌入式 IP 堆栈 : is it okay/accepted to have asynchronous sending?

c - 如何在 C 语言中将正式的 if 语句包含到参数中?

c - 是否可以将 char 中的位映射到 Short 中的任意位?