conversion from 'unsigned int' to 'U16' {aka 'short unsigned int'} changes value from '2089472' to '

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

conversion from 'unsigned int' to 'U16' {aka 'short unsigned int'} changes value from '2089472' to '

402 Views
AsafTv
Contributor II

#define FLASH_STORAGE_SIZE                                                                                                                                   (0x1000000)

#define FLASH_STORAGE_SECTOR_SIZE                                                                                                 (0x1000)

#define FLASH_STORAGE_BOOT_ADDRESS                                                                                                          (0x000000)

#define FLASH_STORAGE_BOOT_SIZE                                                                                                                     (0xD000)

#define FLASH_DEVICE_INFO_ADDRESS                                                                                                (FLASH_STORAGE_SIZE - 2 * FLASH_STORAGE_SECTOR_SIZE)

#define FLASH_NEW_IMAGE_FILE_INFO_ADDRESS                                                                          (FLASH_STORAGE_SIZE - FLASH_STORAGE_SECTOR_SIZE)

#define FLASH_DEVICE_INFO_ADDRESS                                                                                                (FLASH_STORAGE_SIZE - 2 * FLASH_STORAGE_SECTOR_SIZE)

 

#define FLASH_STORAGE_CURRENT_FIRMWARE_SIZE                                                                    ((FLASH_STORAGE_SIZE - (2 * FLASH_STORAGE_SECTOR_SIZE + FLASH_STORAGE_BOOT_SIZE)) / 2)

i get this warning on  FLASH_STORAGE_CURRENT_FIRMWARE_SIZE

What I'm doing wrong?

0 Kudos
1 Reply

399 Views
ErichStyger
Senior Contributor V

The problem is how you *use* this macro, so you have to check where (and how) it is used.

But basically it looks your are truncating the bits to unsigned 16bit.

0 Kudos