Utilizing 64-bit variables with MC56F84XXX

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Utilizing 64-bit variables with MC56F84XXX

1,177 Views
brandonkamphaus
Contributor I

I want to use 64-bit variables to handle storing some values, but I am having issues.

I am able to declare the variable as a long long int without problems, but if I try to use that value, I find that only 32 bits are being used and any efforts to hard code 64-bit values return the error of number is out of range.

 

I read on another Freescale forum that long long variables are treated like 32-bit numbers by default, but I attempted to enable 64-bit variables through using the pragma slld with the _slld suffixed libraries and I have added *(ll_engine.text) to the code section of the linker, but it doesn't appear to change anything.

 

I think that I might be missing a step to configure enabling 64-bit support, but I don't see what can be causing it.  Any thoughts?

 

I am using:

-Target: MC56F84763

-CodeWarrior for Microcontrollers

Version: 10.5

Build Id: 130916

Labels (1)
0 Kudos
2 Replies

763 Views
fukefeng
Contributor III

Hi:


I had save the simulator problem yet。

Except  use the SLLD lib  and  #pragma slld on ,you must check that properties ->c/c++building->Setting->tools settings->dsc compiler->processer->Generator  elf file for 56800EX core,because in some version of CW (like 10.2),it didn't had this selection,if you moved the project form that version

0 Kudos

763 Views
johnlwinters
NXP Employee
NXP Employee


Hi,

From our release notes:


Date: Aug 29, 2007
Build 1033, R8.2

* New features:
  
  - compiler library has support for C99 support functions, including trigonometric,
  hyperbolic, power, absolute value functions, exponential and logarithmic functions.
  NOTE: in order to use double precision function versions, one has to make use of
  libraries that support long long and double data types (name includes SLLD) and
  of #pragma slld on to compile the project

  - compiler has support for new 64-bit integer and fractional intrinsics
  ( __LL_deposit_h, __LL_deposit_l, __LL_extract_h, __LL_extract_l, __LL_abs,
    __LL_negate, __LL_add, __LL_sub, __LL_round, __LL_LL_mult_int, __LL_mult_int,
    __LL_LL_mac_int, __LL_mac_int, __LL_msu_int, __LL_LL_msu_int, __LL_mult_ls_int
    __LL_LL_mult, __LL_mult, __LL_LL_mac, __LL_mac, __LL_msu, __LL_LL_msu,
    __LL_mult_ls, __LL_div_int, __LL_div_s4q_int), whose definitions are in
  intrinsics_LL_56800E.h file

0 Kudos