0

我有一个准备数据缓冲区的函数,然后通过外部提供的 API 函数发送它,如下所示:

send(uint8_t* data_buf, uint32_t length)

在我的特殊情况下,我的代码总是准确地发送 8 个字节并且前 7 个字节总是相同的(我无法改变这个事实;它是某种消息头)。

因为我在一个有限的嵌入式环境中,我想优化我的代码的大小和性能,或者至少选择两者的最佳折衷。

目前,我看到两个选项:

  1. 创建一个全局数组。一次初始化前 7 个字节,然后在发送数组之前覆盖最后一个字节。
  2. 创建一个本地数组,写入所有 8 个字节,然后发送。

有没有比上面提到的两个更好的解决方案?

4

1 回答 1

-1

即使在嵌入式系统上,您也可以指望拥有超过 8字节的缓存。因此,性能真的不重要。databuf[8]在这两种情况下都将完全缓存。第一种情况的代码大小可能会小 2-3 条指令。

(通常还有另一个问题:代码/闪存大小和 RAM 大小是不同的约束,当您可以 XIP 时)。

于 2013-01-15T09:30:04.587 回答