This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SW-EK-TM4C1294XL:复位时启用/禁用 FPU

Guru**** 2478765 points
Other Parts Discussed in Thread: TM4C1294NCPDT, EK-TM4C1294XL

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/695649/sw-ek-tm4c1294xl-fpu-enable-disable-on-reset

器件型号:SW-EK-TM4C1294XL
主题中讨论的其他器件:TM4C1294NCPDTEK-TM4C1294XL

您好!

我在 TM4C1294NCPDT 的数据表第145页看到、FPU 在复位时被禁用。

此外、在 SPMU298E 的第247页上、它显示"如果在禁用浮点单元时执行浮点指令、则会生成 NOCP 用法故障。"

鉴于上述情况、当我关注评估板 EK-TM4C1294XL 的 CLP 实验课程 lab07时、该实验使用浮点运算、而不在代码中的任何位置启用 FPU;它在我的评估板上运行良好。

我缺少了一些东西、或者我误解了这些东西。 请帮助我设置正确的理解。

BR、

Pranav。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您能否检查您的编译器配置是否禁止生成利用 FPU 的代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、

    感谢您的回答。
    我知道已启用 FPU 支持。 我的编译器标志设置如下所示:

    -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Pranav Saraswala ]'我的编译器标志设置如下所示:

    -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --[/quot] 在 TI v18.1.0.LTS 编译器安装的 lib/src/boot_cortex_m.c 源文件中的_c_int00_template 运行时库启动函数中存在以下内容:

    //如果为浮点#if
    __ARM_FP
    volatile uint32_t* cpacr =(volatile uint32_t*) 0xE000ED88;
    *cpacr |=(0xf0 <<16)构建、则初始化 FPU;
    #endif 

    表2-29  ARM 优化 C/C++编译器用户指南中的预定义 ARM 宏名称将_ARM_FP 宏描述为:

    [引用]对于--float_support={fpv4spd16 | fpv5spd16}、定义为6。 对于--float_support={vfpv2 | vfpv3 | vfpv3d16}、定义为12;否则未定义。[/quot]因此、当 使用--float_support=FPv4SPD16选项时、运行时间库启动代码会自动启用 FPU。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    切斯特、您好!
    感谢您的回答。 正确的是、在启动过程中启用了 FPU。