Cortex-M4 Support?

Completed

Comments

28 comments

  • Avatar
    Michael Johnson

    Cortex-M4 support will be in the 2.1 release which we are currently wrestling with. You can have early access to it if you want. I have a preliminary CPU/board support package for the Embedded Artists LPC4300 board which I can supply if you have one of these boards.

    0
    Comment actions Permalink
  • Avatar
    Jerry Gardner

    Embedded Artists have an LPC4300 board? I searched their website and saw no reference to such a board. Can you provide a link?

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    The board has a test chip on it so I guess it's not available yet - contact NXP.

    0
    Comment actions Permalink
  • Avatar
    Michael Freeman

    We are thinking about using Kinetis chip from Freescale for the next project.  Does Rowley have plans for this family of chips?

    Thanks

    Michael Freeman

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    We've have released a Kinetis CPU support package that works with v2.0 i.e. treating the device as a Cortex-M3. We are working on the Cortex-M4 support for the v2.1 release. Note that we haven't seen a Kinetis part with an FPU on it.

    0
    Comment actions Permalink
  • Avatar
    Paul Curtis

    The LPC4300 won't be available until Q4 2011, it seems.  The production Keil board I have on order, which should have arrived this month, is now delayed to Q4.  NXP are intruducing the flashless versions first, but no word on integrated flash introduction.

    The Cortex-M4 is really raw at this stage--no hardware with FPU to speak of, as Michael says.  The test LPC4300 we have does include an FPU, so all is not yet lost.

    0
    Comment actions Permalink
  • Avatar
    Michael Freeman

    We have 3 Kinetis Towers, 2 with K60 one with K40.  My impresion is the Kinetis chips we got have all the features in them. Do you need one to complete you dev?

    Michael Freeman

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    We have the same hardware - the released CPU support package works on these boards give it a try.

    I need to do some work on the DSP/SIMD instruction support in the debugger/simulator before we can support the parts as Cortex-M4's rather than as Cortex-M3's.

    There isn't an FPU on the K60 supplied on the Tower board we have - my understanding is that the FPU is only on the 120Mhz parts.

    0
    Comment actions Permalink
  • Avatar
    Michael Freeman

    You are right, there is no FPU on these. Freescale is a little missleading on their web page about this.

    0
    Comment actions Permalink
  • Avatar
    Qasim, Mohammed (H USA)

    Along the same lines, is there support for Cortex A8 (i.MX53 family) in the pipeline?

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    The CortexM4 support was released (including FPU support) in the V2.1.

    There will be support for CortexA/CortexR in the next release.

    Supporting specific CortexA/CortexR chips is another matter.

    0
    Comment actions Permalink
  • Avatar
    Bn-spam

    How much work will it be to support the STM32F4 (Cortex M4 with FPU!)  just announced by ST Micro?

    0
    Comment actions Permalink
  • Avatar
    Paul Curtis

    The work is in the memory map; if SVD files are provided by ST or it's no too different from the F2 devices, it should be fairly rapid.

    0
    Comment actions Permalink
  • Avatar
    MLC Michael Lamber
    Hello Paul, we want to start with Cortex M4 (STM32F4 with FPU). Have you any idea, when crossworks is ready for it? Can we use the crossconnect debugger? Thanks Michael
    0
    Comment actions Permalink
  • Avatar
    Paul Curtis

    http://www.rowleydownload.co.uk/arm/packages/STM32.htm

    0
    Comment actions Permalink
  • 0
    Comment actions Permalink
  • Avatar
    MLC Michael Lamber

    Thanks,

    I installed this version and wrote a little program.

    But I get the message:

    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-elf/bin/ld: cannot find D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libm_v7em_t_le.a: No such file or directory
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-elf/bin/ld: cannot find D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v7em_t_le.a: No such file or directory
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-elf/bin/ld: cannot find D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libcpp_v7em_t_le.a: No such file or directory
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-elf/bin/ld: cannot find D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libdebugio_v7em_t_le.a: No such file or directory
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-elf/bin/ld: cannot find D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_targetio_impl_v7em_t_le.a: No such file or directory
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-elf/bin/ld: cannot find D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7em_t_le.a: No such file or directory
    Build failed

    All files are the specified folder.

    Have you any idea?

    Also I get not working the FPU for STM32F407 microcontroller.

    Here I get the message:

    C:/Users/ML/AppData/Local/Rowley Associates Limited/CrossWorks for ARM/packages/targets/STM32/STM32_Startup.s:1:0: sorry, unimplemented: -mfloat-abi=hard and VFP
    Build failed

    Is there anything wrong with my settings or is the compiler not ready for FPU.

    Thanks for yout help

    Michael

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    You'll need to use the EABI gcc target - this can be set in the project properties or the default changed in crossstudio environment options.

    Regards

    Michael

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    Forgot to mention - that I'd set the "treat doubles as floats" option to avoid any double precision stuff being generated due floating point constants - i.e C code will have 3.142 NOT 3.142f

    Regards

    Michael

    0
    Comment actions Permalink
  • Avatar
    MLC Michael Lamber

    Hello Michael,

    first problem is solved.

    With the FPU I get the folowing error:

    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-eabi/bin/ld: error: D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(__vfprintf_int.o) uses VFP register arguments, THUMB Debug/Executable_1.elf does not
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-eabi/bin/ld: failed to merge target specific data of file D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(__vfprintf_int.o)
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-eabi/bin/ld: error: D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(__vfscanf_int.o) uses VFP register arguments, THUMB Debug/Executable_1.elf does not
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-eabi/bin/ld: failed to merge target specific data of file D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(__vfscanf_int.o)
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-eabi/bin/ld: error: D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(libc2.o) uses VFP register arguments, THUMB Debug/Executable_1.elf does not
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-eabi/bin/ld: failed to merge target specific data of file D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(libc2.o)
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-eabi/bin/ld: error: D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(user_libc.o) uses VFP register arguments, THUMB Debug/Executable_1.elf does not
    D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/gcc/arm-unknown-eabi/bin/ld: failed to merge target specific data of file D:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7em_fpv4_sp_d16_hard_t_le_eabi.a(user_libc.o)
    Build failed

    Settings:

    ARM FP ABI Type    Hard

    ARM FPU Type        FPV4-SP-D16

    C-Program:

    int main()
    {
      float a,b,c;
      a = 22.3;
      b = 2456.56578;
      do
      {
        c = a + b;
      }
      while(1);
      return 0;
    }

    Thank you

    Michael

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    Hi Michael

    Did you rebuild all after changing the gcc target?

    Regards

    Michael

    0
    Comment actions Permalink
  • Avatar
    MLC Michael Lamber

    Yes, I do.

    The error message is after I try to rebuild

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    Hi Michael

    Did you set the properties on the project or just the file? Did you set the "treat double as float" you are using

    a = 22.3;

    rather than

    a = 22.3f;

    Regards

    Michael

    0
    Comment actions Permalink
  • Avatar
    MLC Michael Lamber

    Hello Michael,

    I tried 22.3 and 22.3f.

    I set the settings on the project

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    Hi MIchael,

    I can't reproduce this - could you attach the .hzp file to the ticket.

    Regards

    Michael

    0
    Comment actions Permalink
  • Avatar
    MLC Michael Lamber

    Here is the zip-file.

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    Hi Michael

    You have set the FP-ABI to be softFP on main.c. I find that displaying the properties in the project explorer is a good way to see what property values are set.

     

    Regards

    Michael

    0
    Comment actions Permalink
  • Avatar
    MLC Michael Lamber

    Works

    Thank

    Michael

    0
    Comment actions Permalink

Please sign in to leave a comment.