【问题标题】:Transition between processors处理器之间的转换
【发布时间】:2010-10-10 01:33:07
【问题描述】:

我在工作中主要编写嵌入式代码。我们有一个大型的长期项目,已经开发了好几代,现在为其编写的处理器正在停产,甚至可能无法继续使用同一制造商的处理器。 (过渡可能是从 TI 到 Renesas FPU 微处理器)。 部分问题是某些代码是用汇编编写的。
我正在寻找尽可能轻松地进行过渡的方法,并在将来需要进行此类过渡时使其更加顺畅。
你有什么建议?

【问题讨论】:

    标签: assembly embedded porting processor


    【解决方案1】:

    生成尽可能多的代码的通用 C 版本。

    如果您的意图是让最终实现采用手工优化的组装方式,这似乎是浪费时间,但实际上并非如此。

    当针对新目标进行优化时,您可以重写汇编中的关键部分,但拥有 C 版本首先可以让您在每个新目标上快速启动并运行某些东西,其次提供一个可读的参考实现以与何时进行比较优化,这两者都会让你的生活变得更加轻松。

    此外,意识到没有必要对一切进行手工优化组装,只需花费最多时间/占用最多空间的代码部分即可。用汇编语言编写一个大型项目几乎肯定是在浪费不必要的精力。其余的可以保持为通用 C。但是在 C 版本启动并运行并且您可以对其进行概要分析之前,您不会知道应该关注什么。你可以猜,但你不会知道。

    【讨论】:

    • 同意:除了最简单的 C 编译器之外,所有的 C 编译器都可以很好地完成指令调度和寄存器着色,只要您愿意为他们简化这项工作。通过基于对 disasm 输出的仔细关注进行调整,我通常会从我的原生 C 例程中获得 1 个 IPC 或更好。
    • 同意!装配是为不了解更多的工程师准备的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 2019-07-12
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多