CC2541、CC2640 SNV Flash 读写

1. 在 CC2541 的 OSAL 系统里面,有 SNV 这个功能,就是 Flash 读写功能,main 函数中的  osal_snv_init(); 就是该功能的初始化函数。

int main(void)
{
  /* Initialize hardware */
  HAL_BOARD_INIT();

  // Initialize board I/O
  InitBoard( OB_COLD );

  /* Initialze the HAL driver */
  HalDriverInit();

  /* Initialize NV system */
  osal_snv_init();
  
  /* Initialize LL */

  /* Initialize the operating system */
  osal_init_system();

  /* Enable interrupts */
  HAL_ENABLE_INTERRUPTS();

  // Final board initialization
  InitBoard( OB_READY );

  #if defined ( POWER_SAVING )
    osal_pwrmgr_device( PWRMGR_BATTERY );
  #endif
    
  /* Start OSAL */
  osal_start_system(); // No Return from here

  return 0;
}

我们一般用的就是

osal_snv_write( osalSnvId_t id, osalSnvLen_t len, void *pBuf ) 和

osal_snv_read( osalSnvId_t id, osalSnvLen_t len, void *pBuf ) 函数,

osalSnvId_t id 相当于地址,用户可使用的范围是 0x80 - 0xFE;NV的起始地址是0x7E800,终止地址是0x7F7FF

osalSnvLen_t len 是数据长度;

void *pBuf 是数据内容;

要先写入数据才能读,否则出错。

也可以看一下:

http://e2e.ti.com/support/wireless_connectivity/f/538/p/214637/758111

http://www.elecfans.com/news/wangluo/20140825352199_5.html

写的都很不错。

2. CC2640 也是有 OSAL 的,里面也有一个 osal_snv.h,也有跟 CC2541 一样的功能,只是 osalSnvId_t id 不一样,范围是 0x80 - 0x8F。



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haozi0_0/article/details/49635533
文章标签: CC2541 flash
个人分类: CC2541、CC2640
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭