Hi,
I have an example based on v2.4.1\nrf\samples\bluetooth\peripheral_lbs
This is my prj.conf
# Flash CONFIG_FLASH=y CONFIG_FLASH_MAP=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_MPU_ALLOW_FLASH_WRITE=y # Bluetooth CONFIG_BT=y CONFIG_BT_PERIPHERAL=y CONFIG_BT_DEVICE_NAME="Intonavi" # FOTA CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y CONFIG_SECURE_BOOT=y CONFIG_SB_SIGNING_KEY_FILE="d:/NordicSemiconductor/apps/ble_ota2/priv-ecdsa.pem"
this is my pm_static.yml, this is copy from file: build/partitions.yml
EMPTY_0:
address: 0x15200
end_address: 0x16000
placement:
before:
- s1_pad
region: flash_primary
size: 0xe00
EMPTY_1:
address: 0x22200
end_address: 0x23000
placement:
before:
- mcuboot_pad
region: flash_primary
size: 0xe00
EMPTY_2:
address: 0xf5000
end_address: 0xf6000
placement:
after:
- mcuboot_secondary
region: flash_primary
size: 0x1000
app:
address: 0x23200
end_address: 0x8c000
region: flash_primary
size: 0x68e00
app_image:
address: 0x23200
end_address: 0x8c000
orig_span: &id001
- app
region: flash_primary
size: 0x68e00
span: *id001
b0:
address: 0x0
end_address: 0x8000
placement:
after:
- start
region: flash_primary
size: 0x8000
b0_container:
address: 0x0
end_address: 0x9000
orig_span: &id002
- b0
- provision
region: flash_primary
size: 0x9000
span: *id002
mcuboot:
address: 0x9200
end_address: 0x15200
placement:
before:
- mcuboot_primary
region: flash_primary
sharers: 0x1
size: 0xc000
mcuboot_pad:
address: 0x23000
end_address: 0x23200
placement:
align:
start: 0x1000
before:
- mcuboot_primary_app
region: flash_primary
sharers: 0x2
size: 0x200
mcuboot_primary:
address: 0x23000
end_address: 0x8c000
orig_span: &id003
- mcuboot_pad
- app
region: flash_primary
sharers: 0x1
size: 0x69000
span: *id003
mcuboot_primary_app:
address: 0x23200
end_address: 0x8c000
orig_span: &id004
- app
region: flash_primary
size: 0x68e00
span: *id004
mcuboot_secondary:
address: 0x8c000
end_address: 0xf5000
placement:
after:
- mcuboot_primary
align:
start: 0x1000
region: flash_primary
share_size:
- mcuboot_primary
size: 0x69000
provision:
address: 0x8000
end_address: 0x9000
placement:
after:
- b0
align:
start: 0x1000
region: flash_primary
size: 0x1000
s0:
address: 0x9000
end_address: 0x15200
orig_span: &id005
- s0_pad
- mcuboot
region: flash_primary
size: 0xc200
span: *id005
s0_image:
address: 0x9200
end_address: 0x15200
orig_span: &id006
- mcuboot
region: flash_primary
size: 0xc000
span: *id006
s0_pad:
address: 0x9000
end_address: 0x9200
placement:
after:
- b0_container
align:
start: 0x1000
region: flash_primary
share_size:
- mcuboot_pad
size: 0x200
s1:
address: 0x16000
end_address: 0x22200
orig_span: &id007
- s1_pad
- s1_image
region: flash_primary
size: 0xc200
span: *id007
s1_image:
address: 0x16200
end_address: 0x22200
placement:
after:
- s1_pad
- s0
region: flash_primary
share_size:
- mcuboot
size: 0xc000
s1_pad:
address: 0x16000
end_address: 0x16200
placement:
after:
- s0
align:
start: 0x1000
region: flash_primary
share_size:
- mcuboot_pad
size: 0x200
settings_storage:
address: 0xf6000
end_address: 0xf8000
placement:
align:
start: 0x1000
region: flash_primary
size: 0x2000
sram_primary:
address: 0x20000000
end_address: 0x20040000
region: sram_primary
size: 0x40000
storage_partition:
address: 0xf8000
end_address: 0x100000
region: flash_primary
size: 0x8000
I init parametres for settings_storage of flash
#define DATA_PARTITION_OFFSET FIXED_PARTITION_OFFSET (settings_storage) #define DATA_PARTITION_DEVICE FIXED_PARTITION_DEVICE (settings_storage)
Now i do the following:
Build, Flash, with flash_erease, flash_write and flash_read. This is my console log
Flash is ready
Test 1: Flash erase page at 0xf6000
Flash erase succeeded!
Attempted to write 12c at 0xf6000
Data read: 12c | 300, at 0xf6000
Attempted to write 64 at 0xf6004
Data read: 64 | 100, at 0xf6004
Attempted to write 1 at 0xf6008
Data read: 1 | 1, at 0xf6008
Attempted to write 2 at 0xf600c
Data read: 2 | 2, at 0xf600c
Next step. Comment flash_erease and flash_write, only flash_read is active. Build and Flash device. This is my console log
Flash is ready
Data read: b8397b06 | -1204192506, at 0xf6000
Data read: 689acd9a | 1754975642, at 0xf6004
Data read: 615433a5 | 1632908197, at 0xf6008
Data read: 4293d3ff | 1116984319, at 0xf600c
Why values are different?
When I use storage_partition and hard address 0xf8000 everyfing is ok, after write all next reads have corrected values.