由于新唐提供的芯片支持库中没有打开硬浮点运算,需手动设置集成开发环境,首先打开keil4,在菜单中选择file->Device Database…,打开器件数据库,选择NuMicro Cortex-M Database,点击OK,在弹出的的Database中找到开发板使用的芯片NUC472HI8AE,双击打开,在Options中第一行后面添加空格后输入FPU2,将这一行改为了CPU=IRAM(0x20000000-0x2000FFFF) IROM(0-0x7FFFF) CLOCK(50000000) CPUTYPE("Cortex-M4") FPU2,点击Updara后点击close即可。此处的更改对已建的工程无影响,只影响以后使用该芯片的工程。新建keil工程,此时在Project->Option for Target“PROJ”->Target->Float Point Hardware下拉框中会出现 “Use FPU”和“Not Used” 两种选项,此处选择”Use FPU”。集成开发环境的设置表示在编译程序时,将使用硬浮点运算指令代替软浮点库,减少了程序浮点运算时间。由于硬浮点运算指令需要使用CP10、CP11协寄存器,需使能CPACR寄存器的20-23位,此部分不需手动设置,新唐提供的库已在system_NUC472_442.c->SystemInit()设置。
/* FPU settings ------------------------------------------------------------*/
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
SCB->CPACR |= ((3UL << 10*2) | /* set CP10 Full Access */
(3UL << 11*2) ); /* set CP11 Full Access */
#endif
以上是新唐NUC472打开keil4 IDE FPU功能,M45XX类似。 |