我基于SimpleBLEPeripheral这个例子,用flag = osal_nv_item_init( index, 8*4*24, NULL );去初始化nv可访问的flash。
发现只能初始化8*4*24*2个byte,如果初始化8*4*24*3个byte,flag就返回NV_OPER_FAILED了。
可是8*4*24*3=2304个byte而已,SimpleBLEPeripheral.map显示,
126 336 bytes of CODE memory
35 bytes of DATA memory (+ 76 absolute )
6 271 bytes of XDATA memory
194 bytes of IDATA memory
8 bits of BIT memory
1 223 bytes of CONST memory
我是CC2541F256,有256K的flash呢,CODE才占了126K,应该还剩130K。怎么2304个byte都用不了?
cedar_xuesong:
OSNV的Flash区域是单独划定的,不是动态的
Feng Xu3:
回复 cedar_xuesong:
谢谢回复!
我找到了,是在这里划定的吧。
#define HAL_NV_PAGE_CNT 2