PIC32CX寄存器名称不在标头中?

PIC32CX register names not in header?

提问人:Gambanishu Habbeba 提问时间:6/25/2023 最后编辑:Gambanishu Habbeba 更新时间:7/6/2023 访问量:163

问:

我正在尝试使用PIC32CX BZ2 进行黑客攻击。由于 MPLAB 中出于某种奇怪的原因没有代码完成,我有点被迫知道寄存器名称,或者头文件中声明的任何设置。如果它们与文档匹配,并且我可以使用 TRISA 等,那就没问题了。但只有GPIOB_REGS>GPIO_TRIS和其他类似的东西——这是完全不奇怪的。再说一次,如果不提前输入,我必须在头文件中挖掘这些内容。这不可能是Microchip的计划,对吧?有没有办法使用普通的寄存器名称?谢谢!

编辑: 好的,澄清一下:这是一架带有 PIC32CX BZ451 的 WBZ2。我正在使用 MPLAB,安装了正确的编译器 (XC32) 并且工作正常(编译有效的程序),并且选择了正确的设备。查看屏幕截图。

enter image description here

enter image description here

微控制器 PIC MPLAB PIC32

评论

0赞 Mike 6/26/2023
如果在 IDE 中选择了正确的控制器,则只需包含 .现在应该定义每个寄存器名。xc.h
0赞 Gambanishu Habbeba 6/26/2023
我选择了正确的控制器,并且在我创建 c 文件时已经包含了 xc.h。这就是我定义 GPIOB_REGS->GPIO_TRIS 之类的东西的方式。我是否必须为编译器设置任何内容(就像我必须为 XC8 编译器所做的那样)?
0赞 the busybee 6/26/2023
我希望提供一些库和头文件的文档。说明了什么?
0赞 Mike 6/26/2023
xc8 用于 8 位控制器,PIC32CX 是 32 位控制器。所以 1.在项目中选择正确的控制器, 2.选择 XC32 编译器,3。包括xc.h
1赞 Mike 6/26/2023
完整的文档随编译器一起安装。

答:

0赞 Mike 6/26/2023 #1

PIC32CX是基于ARM的32位控制器,xc8编译器是8位微芯片控制器的编译器。
如果你想使用你已经安装的PIC32CX,并选择一个合适的编译器:

  • XC32 编译器或
  • ARM 32 位 GNU 工具链

如果您想使用 8 位微芯片控制器,xc8 编译器是一个不错的选择。 您可以在 procect 属性中执行此设置。
永远不要忘记:

#include <xc.h>

在具有MIPS内核的微芯片控制器中,配置寄存器的处理与具有ARM内核的微芯片控制器完全不同:

MIPS:ASNSELA = 0x0000;

手臂:GPIOA_REGS->GPIO_ANSEL = 0x0000;

评论

0赞 Gambanishu Habbeba 6/26/2023
我们正在谈论一个 32 位控制器。您能否分享一张屏幕截图,显示使用 PIC32CX BZ2 处理器的 TRISA regster 的使用情况!因为我确信标头不会根据文档定义寄存器名称。
0赞 Gambanishu Habbeba 6/26/2023
例如,对于PIC32MX,p32mx230f064b.h 第 4647 行及以下定义了 TRISA,一切正常。对于PIC32CX处理器,情况并非如此。这是我想首先确定的,然后我可以继续进一步的问题。
0赞 Mike 6/26/2023
我从未使用过 PIC32CX,但这个与基于 MIPS 的 MX 控制器完全不同。PIC32CX是基于ARM的控制器。因此,您必须查看如何配置 IO 引脚的文档。
0赞 Gambanishu Habbeba 6/26/2023
我真的很感谢你的帮助,我很高兴有人回答。话虽如此,问题是关于PIC32CX的,如果你从未使用过它,你可能无法回答这个问题。如果您觉得您的环境设置正确,您可以做的是使用所述控制器创建一个项目,看看是否可以编译我问题中的代码。