【问题标题】:Porting from PLM51 to C从 PLM51 移植到 C
【发布时间】:2015-03-05 07:48:16
【问题描述】:

我正在做一个需要将代码从 PLM51 移植到 C 的项目。

正在使用 8051 架构。微控制器是无 romless 的,并且正在使用 64Kb 的外部存储器。 PLM51 代码大小接近 63Kb。

所以我的问题是,当我将代码从 PLM51 移植到 C 时,代码大小会增加还是减少? 决定大小增加/减少的参数是什么?

【问题讨论】:

  • 我的第一个想法是,使用当前的优化 C 编译器,您可能会看到大小减小,因为 PL/M 编译器可能非常旧,没有实现太多优化。然而,产生 63Kb 二进制文件的东西肯定是多毛的。在我必须从事的一个项目中,我有大约 3000 行 PL/M 代码编译到大约 6Kb,作为不断与 64Kb 代码大小限制作斗争的杂草丛生的大部分汇编混乱的一部分。所以首先,你(或公司)真的能负担得起吗? (我的意思是可能花在移植上的时间)

标签: c embedded porting code-size


【解决方案1】:

首先我必须说,虽然我用两种语言编写过,但我没有做过从 PL/M 到 C 的移植,也没有比较用两种语言编写的类似程序的大小。

这个问题很难肯定地回答,但两种语言的水平相当相似,都是相当低级的可移植语言。我似乎记得我们对 PL/M 的经验法则是,每个 PL/M 语句平均大约有 5 条汇编指令。这种效率会因编译器和优化级别而异。

可能对最终图像的代码大小有很大影响的一个因素是链接器可能包含的外部库。一个特别的罪魁祸首是通常非常大的 printf 格式化程序。在 PL/M 中,您通常会编写自己的字符输出函数,这些函数将根据您的特定需求进行定制,通常会产生更小的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2016-06-10
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多