Hi,
I have an application of memory size 380Kbytes, I could able to upload application into a device which has nr51822. After checking the datasheet of nrf51822 I noticed it has only 250kB of memory and 16kB of RAM. How can this be possible ?
Hi,
I have an application of memory size 380Kbytes, I could able to upload application into a device which has nr51822. After checking the datasheet of nrf51822 I noticed it has only 250kB of memory and 16kB of RAM. How can this be possible ?
Check your linker options. In gcc-arm it is a .ld file:
MEMORY
{
FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0x5a000
RAM (rwx) : ORIGIN = 0x20000000 + __SOFTDEVICE_DATA_SIZE, LENGTH = 64K - __SOFTDEVICE_DATA_SIZE
}
Something like that. You can upload anything you want if the linker file says it will fit.
That does not necessarily match reality. If you load past physical FLASH, it will wrap around. Nothing will actually work.
Make sure your linker file/settings match physical reality.
Hi,
I have an application of memory size 380Kbytes
How are you measuring this? Note that the size of the .hex is not the same as the flash usage. The total flash usage is Code + RO-data + RW-data, these values are typically displayed after you have compiled your application.
the size of the .hex is not the same as the flash usage
Indeed - this is a common beginner's misconception!
In fact, the size of a hex file is over twice the size of the actual binary code that it represents!
This has nothing specifically to do with Nordic.
See, for example, http://www.keil.com/support/docs/3250.htm
If you load past physical FLASH, it will wrap around
No, that's not true.
Hi Sigurd, I am fledging embedded systems engineer. I have not compiled the program. I have got from senior engineer and I have uploaded on to product. I have simply noticed it from computer properties.