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

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

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

549件の閲覧回数
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 件の賞賛
返信
1 返信

546件の閲覧回数
ErichStyger
Specialist I

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 件の賞賛
返信