CC2541的Flash读写功能
时间:10-02
整理:3721RD
点击:
CC2541的Flash读写功能
在 CC2541 的 OSAL 系统里面,有 SNV 这个功能,就是 Flash 读写功能,main 函数中的 osal_snv_init(); 就是该功能的初始化函数。
[html] view plain copy 在CODE上查看代码片派生到我的代码片
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;
osalSnvLen_t len 是数据长度;
void *pBuf 是数据内容;
要先写入数据才能读,否则出错。
也可以看一下:
http://e2e.ti.com/support/wirele ... 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。