您好!
根据 ARM 技术参考手册、ARM Cortex R5F 支持 Thumb 和 ARM 模式下的 UDIV/SDIV 指令、从 Cortex-R5 r1p0开始。 另请 参见此处。
根据 这里这个支持论坛中的这个帖子、 TMS570LC4357使用 Cortex R5F 的版本 r1p2、所以它应该在 Thumb 和 ARM 模式中支持 UDIV/SDIV 指令。
但是、尽管 我设置 了--silicon_version=7R5、但我从未看到 TI C 编译器(经测试的版本 v20.2.1.LTS)实际发出 UDIV/SDIV 指令。
编译器 始终调用 __aeabi_idivmod。
根据我的理解、在 Thumb 模式下发射绝对安全、因为所有 R5F 都支持该模式(根据 ARM 技术参考手册)。
在 ARM 模式下、我可以 看到 设置 --silicon_version=7R5 不够具体、不足以允许发出 UDIV/SDIV、因为我还必须告诉 编译器 我要定向的内核的版本、以确保生成的代码能够实际运行。 但是、我在手册中没有找到有关此类开关的文档。
当我知道我正在使用具有支持这些指令的内核的 TMS570时、是否有任何方法让 TI C 编译器在 Thumb 和/或 ARM 模式下实际发出这些指令?
如果有人能够澄清这种情况、那将会很棒、提前非常感谢!