0

在使用 MPLABX5.5 + XC32 3.01 工作仅一个月时,我已经有 3 个单独的实例,其中代码编译不正确,导致我的程序在堆栈或帧指针开始使用不正确的地址后失败。我想转储这些工具并尝试其他方法,因为跟踪编译器错误占用了我太多时间。还有什么其他东西可以用来与 PIC32MM 一起工作吗?即使访问与 XC32 不同的编译器也可能会有所帮助。

4

1 回答 1

2

我想做同样的事情。也许我们可以收集如何到达那里的最佳选择,因为经过多次尝试,我还没有成功。作为一个起点,我还希望能够从源代码重新编译 xc32-gcc 以准确了解它在做什么,并能够为其他架构编译 xc32 二进制文件(就像听起来很疯狂,我我想用在树莓派上运行的 clang 或 gcc 为 pic32mm 平台编译一些代码。)

  1. 我什至希望能够从源代码编译 xc32-gcc。我知道这是可能的,但我没有成功。一些链接和开始: https ://github.com/zeha/xc32 这似乎是我发现的最新的源分组,但我还没有弄清楚如何编译它。

  2. ChipKit 被引用了很多,但是,我也没有深入了解如何为我构建它。这里有很多项目,我不确定它们是如何组合在一起的: https ://github.com/chipKIT32 我怀疑有人(可能会看到这篇文章的人)知道公式或脚本或 docker 文件,或者无论如何使这变得简单。

  3. https://gitlab.com/spicastack/pic32-parts-free 这个项目似乎与我们所说的很接近,但是,推荐的安装方式是使用 podman 和 gentoo。我不是 gentoo 人(还不是?),docker 版本对我来说失败了。对于 gentoo 人来说,这可能是对 dockerfile 的简单修复,但是..我还没有到达那里。(我确实尝试过安装 gentoo 并开始走上这条路,但是天哪,当我想做的是让 pic 交叉编译器工作时,谈论陷入困境。当我的新 gentoo 安装出现失败时出现python错误,我放弃了。)

  4. https://github.com/andeha/Twinbeam 这个项目还说了一些关于使用 llvm 构建 pic32 代码的“正确的事情”,并且在这个项目中引用了 llvm2pic32:https ://github.com/andeha/Sprinkle I '还没有设法得到这个来制作我可以在图片上使用的可行的英特尔十六进制文件,但有希望。

  5. 使用 clang/llvm 生成代码。我认为它会编译 C 并生成开箱即用的 mips,我已经做到了这一点,但我还不能让它链接并生成一个有效的 hex 文件。来自微芯片的链接器脚本似乎还不错,但我认为 hex 文件最终会将代码放在错误的位置。我可能应该整理一个闪烁的示例并尝试将其推得更远,并与其他人分享以弄清楚交易是什么,但甚至退一步,只是试图获得一个超级简单的 mips 汇编程序来获得链接并上传到 PIC32MM 部件对我来说将是一个巨大的成功。

也许其他人有更好的参考和链接?

于 2021-11-07T18:20:34.990 回答