您好,
当我版本 FlexCan 示例项目时,我想获得一个 .elf可执行文件,可在Linux 下的 A53 内核上运行。
不过,该示例似乎是为M7 内核设计的。
有没有办法版本或调整 FlexCan 示例,使其生成可执行文件 .elf是否适合 A53 内核?
我还尝试从头开始创建一个针对A53的新应用程序项目,但我不确定如何重复使用或转移所有FlexCan配置(外围设备、驱动程序、初始化代码等)到这个新项目中。
请指导我如何实现这一目标?
我更新了主题,说我用 Goldvip 的图片解决了问题。
感谢您分享您正在使用的板。
对于 Goldbox3,你需要在设备树中启用 can0 和 can1 节点。在这些节点中,您可以配置 CAN 输出使用哪些引脚。必须确保所选引脚在其 SSS 中支持 can0 或 can1 输出。
你可以查看哪些引脚可以在主板原理图和参考手册中附带的 S32G3_IOMUX.xlsx 文件中使用(你需要用 acrobat 阅读器打开 RM 才能看到附带的文件)
你好,我正在使用这个https://www.nxp.com/design/design-center/development-boards-and-designs/GOLDBOX-3 (S32G3 )
你能分享一下你在用哪个板吗?我分享的图片中提到的连接器适用于扩展名为 S32GRV-PLATEVB 的 S32G-VNP-EVB3。
另外,按照手册(我在 S32G3 中关注过)它会提到 J166、J169... 但是在我的板上那些 Jumpers 不可用。
谢谢你,卡洛斯。
好吧,我明白你的意思了。我按照您的指示进行了操作,但这样我只能在 can0 和 can1 之间收发信息。我想要的是通过 CAN 总线接收或发送到其他设备(我有一个 CAN 总线,用于连接所有设备)。以 FlexCan 为例,我可以从其他设备接收,但是如果我只有低压差线性稳压器(LDO) candump can0,我就无法从其他设备接收 CAN 消息。
接口未处于环回状态。
这就是我想得到 .elf 的原因。因为我已经测试过 M7 的 FlexCan 示例,它可以正常工作。
我可以将简单的 candump can0 与你建议的 system () 一起使用,但看来我没有收到来自其他设备的 CAN 消息。
感谢您的提问
在运行 linux 的 A53 内核中,对 gpios、can 等模块的使用有些不同,而不是像裸机或 RTD(如 M7 内核)那样直接通过寄存器传递值。对于Linux的实现,需要一个驱动程序来在操作系统和硬件之间传递这些值,其中一些驱动程序已经在恩智浦提供的电路板支持包发行版中实现了。
要在 Linux 中使用 CAN,您可以查看电路板支持包用户手册中给出的示例
[适用于 S32G2 平台的 Linux 电路板支持包 44.0 用户手册]
这个例子是在 linux 控制台中编写这些命令,你可以编写一个 C 程序,使用system() 函数发送命令,然后只执行你的 C 代码。