估计数字例程的嵌入式内存大小

时间:2018-07-01 20:04:40

标签: embedded cross-compiling 68000

只有一个类似的问题here,但我正在尝试使用另一种方式来估算尺寸要求。

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

可能性之一可能是:

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

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