主题中讨论的其他器件:RF430CL331H、 RF430CL330H、 RF430FRL152H
工具/软件:Code Composer Studio
您好!
我使用 RF430FRL152HEVM 套件与手机进行 NFC 通信。 我想从手机到 RF430FRL152HEVM 套件执行读写操作。
我已尝试以下路径中的示例:
slac691f\RF430FRL15xH_projects_v1_5\RF430FRL15xH_projects_v1_5\RF430FRL15xH_projects_v1_5\RF430FRL15xH NFC projects\RF430FRL152H
我在运行时写入 FRAM 时遇到问题。
源代码为:
内存 { SFR :origin = 0x0000、length = 0x0010 外设_8位 :origin = 0x0010,length = 0x00F0 外设_16BIT :origin = 0x0100,length = 0x0100 RAM :origin = 0x1C00,length = 0x1000 ///ROM ISR、起始点、长度不正确 RF13M_ROM_ISR:origin = 0x54D0,length = 0x0002 //代码区域,可以增加/减少 // FRAM_NDEF + FRAM_CODE 长度必须等于0x768 (FRAM_NDEF 从0xF868开始) //两个段一起位于0xF868-0xFFCF 范围内 FRAM_NDEF :origin = 0xF868、length = 0x0096 //在0xF8CF - NDEF 存储器段结束 FRAM_Data :origin = 0xF8FE,length = 0x00A0 //结束于0xF8CF - NDEF 存储器段 FRAM_CODE :origin = 0xF99E,length = 0x0630 //在0xFFCF - Firmware memory 部分结束 JTAGSIGNATURE :origin = 0xFFD0、length = 0x0004、fill = 0xFFFF BSLSIGNATURE :origin = 0xFFD4、length = 0x0004、fill = 0xFFFF INT00 :origin = 0xFFE0、length = 0x0002 INT01 :origin = 0xFFE2,length = 0x0002 INT02 :origin = 0xFFE4,length = 0x0002 INT03 :origin = 0xFFE6,length = 0x0002 INT04 :origin = 0xFFE8、length = 0x0002 INT05 :origin = 0xFFEA,length = 0x0002 INT06 :origin = 0xFFEC,length = 0x0002 INT07 :origin = 0xFFEE,length = 0x0002 INT08 :origin = 0xFFF0,length = 0x0002 INT09 :origin = 0xFFF2,length = 0x0002 INT10. :origin = 0xFFF4,length = 0x0002 INT11. :origin = 0xFFF6、length = 0x0002 INT12. :origin = 0xFFF8,length = 0x0002 INT13. :origin = 0xFFFA,length = 0x0002 INT14 :origin = 0xFFFC,length = 0x0002 复位 :origin = 0xFFFE,length = 0x0002 }/********* /* 指定段分配到内存中 */ ********* / SECTIONS { 组(all_FRAM) { 组(READ_WRITE_MEMORY) { //.TI.persistent:{}>FRAM_Data 对于#pragma PERSISTENT * .cio :{} /* C I/O 缓冲器 * sysmem :{} /*动态内存分配区域*/ } 组(只读_存储器) { .cinit :{} /*初始化表 * .pinit :{} /* C++构造函数表 * init_array :{} /* C++构造函数表 * .mspabi.exidx:{} /* C++构造函数表 * .mspabi.extab:{} /* C++构造函数表 * .const :{} /*常量数据 */ } GROUP (可执行文件存储器) { .text :{} /*代码 */ } }> FRAM_CODE rf13m_ROM_ISR:{}> RF13M_ROM_ISR 类型= DSECT .jtagsignature:{}> JTAGSIGNATURE/* JTAG Signature * bslsignature:{}> BSLSIGNATURE /* BSL Signature * .jtagpassword /* JTAG 密码 * .bss :{}> RAM /*全局和静态变量 * .data :{}> RAM /*全局和静态变量 * .TI.noinit:{}>RAM /*用于#pragma noinit * .TI.persistent:{}>FRAM_Data 对于#pragma PERSISTENT * 堆栈 :{}> RAM (高) /*软件系统堆栈 * /* MSP430中断矢量 * int00 :{} > INT00 .int01 :{} > INT01 .int02 :{} > INT02 .int03 :{} > INT03 .int04 :{} > INT04 RFPMM :{*(.int05 )}> INT05类型= VECT_INIT 端口1 :{*(.int06 )}> INT06类型= VECT_INIT SD_ADC :{*(.int07 )}> INT07 type = VECT_init USCI_B0 :{*(.int08 )}> INT08类型= VECT_INIT ISO :{*(.int09 )}> INT09 type = VECT_init WDT :{*(.int10 )}>INT10类型= VECT_INIT TIMER0_A1:{*(.INT11 )}> INT11 type = VECT_INIT TIMER0_A0:{*(.INT12 )}> INT12 type = VECT_INIT 联合国管理信息系统 :{*(.INT13 )}> INT13类型= VECT_INIT SYSNMI :{*(.int14)}> INT14类型= VECT_INIT .reset :{} >复位/* MSP430复位矢量 */ }--><!--kadov_tag{{</spaces>}--><!--kadov_tag{</spaces>}--><!--kadov_tag{</spaces>}}--> main.c 文件: #pragma RETAIN (FRAM_ARR); #pragma LOCATION = 0xF8FE; //#pragma DATA_SECTION (FRAM_ARR、".TI.persistent") #pragma PERSISTENT (FRAM_ARR) unsigned char FRAM_ARR[50]; Main () { --- ---- 对于(count = 0;count<21;count++) { FRAM_ARR[count]=计数; }}-->---- }
在运行时,我正在写入 FRAM 存储器。 调试工具期间、CCS 存储器中也会显示更新的数据。 但是,在执行 RESET 命令之后,每次都会擦除该数据。
您能不能建议这个错误,我在这里。
谢谢、
Anil Garg