嵌入式软件的时序优化与开发方法
1. 代码级时序优化
1.1 优化前的准备与注意事项
在进行代码级的时序优化时,若要在调试器或跟踪器中检查代码的正确功能,通常至少停用部分优化会有所帮助。部分编译器提供便于调试的特殊优化选项,如 HighTec GCC 编译器的 -Og 选项,可禁用妨碍调试的优化。此外,详细阅读编译器手册对实现代码级的成功运行时优化至关重要,每次优化措施后,都需通过测量、跟踪或合适的代码模拟来审查和检查对生成汇编代码的影响。
1.2 memcpy 函数优化示例
1.2.1 初始简单实现
以下是一个简单的 memcpy 函数实现,用于逐字节复制:
void* memcpy(void* pDest, void const* pSrc, unsigned short n)
{
/* char pointers allows copying with byte granularity */
char* pD = pDest;
char const* pS = pSrc;
while(n--)
{
*pD++ = *pS++;
}
return pDest;
}
参数 pDest 是目标内存区域起始地址的指针, pSrc 是源内存区域的指针, n 指定要复制的字节数。对于内存对齐,源和目标区域没有要求。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



