This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Migrating project is from nRF52810 to nRF52832_QFAB

Hi Sir/Miss,

 

In original project, I use nRF52810. But, it's not enough flash in our customer adding requirements.

Therefore, I want to migrate project from nrf52810 to nrf52832_XXAB in IAR.

I still use SoftDevices 112 and SDK 17.0.2.

I remove original files (iar_startup_nrf52810.s and system_nrf52810.c) and add iar_startup_nrf52.s and system_nrf52.c file in project.

And, setting ROM and RAM in linker script. (ROM end: 0x3FFFF, RAM end 0x20007FFF). The begin of memory is same as before.

To add NRF52 and NRF52832_XXAB are in define symbols (Both of them are in Assembler and C/C++ Compiler). Also, I remove NRF52810_XXAA in define.

I don't change stack/Heap size, they're still 2048.

After compiler, IAR displays Fatal Error[Pe035 ]#error directive: "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" in core_cm4.h

__FPU_PRESENT is set to 1.

I see this article and follow it to include "nrf52.h", "arm_const_structs.h" and "arm_math.h"".

But, the result is same.

Do I miss something else?

Please help to solve it.

Thank you.

Parents
  • Hi,

    I do find the error message a bit confusing, since the nRF52832 does have an FPU, but nevertheless it may be related to the FPU setting in the project options, "General Options" category. This is the settings for a generic nRF52832 project:

    Regards,
    Terje

  • Hi,

    I have another question about memory region. Currently, I use nRF52832-QFAA (512 KB) to develop. But, the configuration is as nRF52832-QFAB (256 KB). The device selected and memory region is as below:

      

    After I use central device to bonding it, peer storages LTK. I check it to storage at address 0x0007E000. It's not in range of limitation by setting.

      

    Is it following current using size of SoC? Or, do I still have wrong or missing the configuration?

    Please help.

    Thanks a lot.

  • Hi,

    The settings look correct to me. If you are currently running the project on an AA variant, it might be worth changing the setting from AB to AA to see if it works then. Flash (ROM) and RAM settings should be kept as is, though, for keeping within the Flash and RAM of the AB variant.

    Regarding the include files, you wrote that you include nrf52.h. You should also make sure that nrf52810.h is no longer included, as well as any other nrf52810 related header files. You should also ensure that other nrf52 and nrf52832 related header files are included. The error message that the CPU does note have floating point may come from a wrong setting from an nRF52810 related file such as a header file, s file, svd file, or any other file from the mdk.

    If all else fails, it might be worth opening an nRF52832 project and move your project specific files over to that project, rather than searching for missing settings in your existing project.

    Regards,
    Terje

Reply
  • Hi,

    The settings look correct to me. If you are currently running the project on an AA variant, it might be worth changing the setting from AB to AA to see if it works then. Flash (ROM) and RAM settings should be kept as is, though, for keeping within the Flash and RAM of the AB variant.

    Regarding the include files, you wrote that you include nrf52.h. You should also make sure that nrf52810.h is no longer included, as well as any other nrf52810 related header files. You should also ensure that other nrf52 and nrf52832 related header files are included. The error message that the CPU does note have floating point may come from a wrong setting from an nRF52810 related file such as a header file, s file, svd file, or any other file from the mdk.

    If all else fails, it might be worth opening an nRF52832 project and move your project specific files over to that project, rather than searching for missing settings in your existing project.

    Regards,
    Terje

Children
Related