主题中讨论的其他器件: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