首页 > 解决方案 > 估计数值程序的嵌入式内存大小

问题描述

这里只有一个其他类似的问题但我正在尝试使用另一种方法来估计尺寸要求。

我正在尝试比较两个数值例程在 68k 上的执行情况。嵌入式大小和执行速度是我需要量化的指标。

有关例程的详细信息:一个包含许多复杂的数学运算,例如求幂。另一个是近似版本,只有加法和乘法。

为了比较执行时间,我只是将挂钟时间用于我的计算机上的两个例程。

为了比较内存大小,我做了一个交叉编译器,并通过数学库的静态链接生成二进制代码。二进制文件的大小可以很好地衡量嵌入式系统的内存需求,对吧?

编辑我正在使用 crosstool-NG 来构建编译器。当我使用m68k-unknown-uclinux-uclibc-gcc代码编译时。但是,当我使用时m68k-unknown-elf-gcc出现错误fatal error: math.h: No such file or directory。我认为库部分引用了目标,并且编译是使用主机上的库完成的。

标签: embeddedcross-compiling68000

解决方案


其中一种可能性可能是:

  • 大小:使用 objdump 获取有关您的目标文件的信息,它提供了很多有用的信息,例如符号及其地址。另一种方法是生成映射文件,它包含对象和符号映射到内存的位置(RAM 和 ROM,但不包括动态分配)。这些链接可以帮助您:objdump map
  • 执行时间:鉴于必须在运行时计算,IMO 您有两个选择:内部 uC 定时器或切换引脚(和示波器)。我更喜欢第二个选项,从实现的角度来看更容易,而且准确性比定时器更好(而且它需要的指令更少)

编辑:关于您的编辑,尝试添加编译命令(或makefile)的路径,例如-I[yourPath]


推荐阅读