请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320C6455 /*====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*版权所有(c) Texas Instruments Inc 2002、2003、2004、2005
*
*本软件的使用受
提供本软件的许可协议中*的条款和条件控制。
*====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*/
**================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*
*@文件 EMIFA_ReadWrite_Example.c
*
*@path $(CSLPATH)\examples\EMIFA\src
*
@EMIFA 的描述示例
*
========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*@n 目标平台:VDB
*============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*@n 示例说明
*@n 此示例
* 设置异步和同步类型
* 2.初始化并打开 CSL EMFIA 模块。
* 3.设置硬件参数
* 4.将无效值写入 EMIFA CS2区域、以对
*进行写操作 以前的值。
* 5.将有效数据写入 CS2区域。
* 6.进行数据比较以确保写入的数据正确或
* 不是和
* 7.显示基于步骤6的消息
* 8.重复步骤4到步骤7将数据写入到 CS4区域
*
============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*
*运行示例的过程
*@逐字记录
* 1.配置 CCS 设置以与所使用的仿真器配合使用
* 请参阅 CCS 手册以了解设置配置和加载
* 正确的 GEL 文件
* 3.启动 CCS 窗口
* 4.打开项目 EMIFA_ReadWrite_Example.pjt
* 5.编译工程并加载工程的.out 文件。
*
*@endverbatim
*
**/
/*====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*修订历史记录
*===========
* 2005年5月21日 Ramitha Mathew。 已创建
* 2005年7月20日 RM 模块名称从 EMIF64更改为 EMIFA
* 2005年11月30日 NG 已更新文档
* 2006年2月06日 DS Async 和 SYNC START 区域已更改为 CE3 LOaction
*====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*/
#include
#include
#include
//
#define DATA_MATH_SUCCESS 的数据比较成功标志 1
/*结果-失败*/
#define DATA_MATH_FAIL 0
/*数据计数(数字写入/回读)*/
#define DATA_CNT 10
// EMIFA CE3的基地址*/
#define EMIFA_CE3_BASE_ADDR (0xB0000000u)
#define EMIFA_MEMYPE_ASYNC0
#define EMIFA_MEMTYPE_SYNC 1
/* EMIFA 实例的句柄*/CSL_EmifaHandle
hemifa;
/*局部和转发*/
void emifaReadWrite (void);
/*====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*@func main
*
*@desc
* 这是文件的主例程。
*
*============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*/
void main (
void
)
{
/*启用 EMIFA */
CSL_FINST ((((CSL_DevRegs*) CSL_DEV_regs)->PERCFG1、DEV_PERCFG1_EMIFACTL、\
使能);
emifaReadWrite();
返回;
}/*====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*@func emifaReadWrite
*
*@arg
* 无
*
*@desc
* 此函数演示 EMIFA 的设置功能
* 它执行以下步骤
* 1.打开 EMIFA 模块 CSL
* 调用 CSL_emifaHwSetup 以进行模块配置
* 3.写入配置为同步存储器和
*的 CE4区域 配置为异步存储器回读的 CE2区域、以使
* 确保数据确实被写入。
* 4、EMIFA 模块 CSL 闭合。
*
*@return
* 无
*
*====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*/
void emifaReadWrite (
void
)
{
uint32. 结果、索引、tempData;
CSL_EmifaObj emifaObj;
CSL_Status 状态;
CSL_EmifahwSetup hwSetup;
CSL_EmifaMemType asyncVal、syncVal;
CSL_EmifaAppanWait asyncWait = CSL_EMIFA_ASNCWAIT_DEFAULTS;
CSL_Emifa异 步 asyncMem = CSL_EMIFA_ASINCCFG_DEFAULTS;
CSL_EmifaSync syncMem = CSL_EMIFA_SYNCCFG_DEFAULTS;
/*指向异步(CE3)起始区域的指针*/
uint32 * p23数据=(uint32 *) EMIFA_CE3_base_ADDR;
指向同步(CE3)开始区域的/*指针*/
uint32 * pSyncData =(uint32 *) EMIFA_CE3_base_ADDR;
/*清除本地数据结构*/
memset (&emifaObj、0、sizeof (CSL_EmifaObj));
memset (&hwSetup、0、sizeof (CSL_EmifaHwSetup));
/*异步类型的设置*/
asyncVal.sel = EMIFA_MEMYPE_ASYNC;
asyncVal.async =&asyncMem;
asyncVal.sync =空;
/*同步类型的设置*/
syncVal.sel = EMIFA_MEMTYPE_SYNC;
synctval.async =空;
synctval.sync = syncdem;
/*设置硬件参数*/
hwSetup.asyncWait =&asyncWait;
hwSetup.ceCfg[0]=&asyncVal;
hwSetup.ceCfg[1]=空;
hwSetup.ceCfg[2]=&synctval;
hwSetup.ceCfg[3]=空;
printf ("\TInfo:EMIFA 的读写操作\n");
/*初始化 EMIFA CSL 模块*/
状态= CSL_emifaInit (NULL);
if (status!= CSL_Sok){
printf ("EMIFA:初始化错误。\n");
printf ("\叛国:cSL_emifaInit [状态= 0x%x]。\n"、状态);
返回;
}
否则{
printf ("EMIFA:模块已初始化。\n");
}
/*打开 EMIFA 实例*/
hemifa = CSL_emifaOpen (&emifaObj、CSL_EMIFA、NULL、&STATUS);
if ((status!= CSL_Sok)||(hEmifa = NULL)){
printf ("EMIFA:打开实例时出错。 [状态= 0x%x、hEmifa \
= 0x%x]\n"、状态、hemifa);
返回;
}
否则{
printf ("EMIFA:模块实例已打开。\n");
}
/*使用 HwSetup 设置配置参数*/
status = CSL_emifaHwSetup (hEmifa、hwSetup);
if (status!= CSL_Sok){
printf ("EMIFA:硬件设置中出错。\n");
printf ("读写操作失败\n"\n);
返回;
}
否则{
printf ("EMIFA:模块硬件设置成功。\n");
}
printf ("\TInfo:异步读写\n");
/*将"无效"值写入 EMIFA CS2区域。 这将覆盖
*以前的有效值。
*
tempData = 0xdeadf牛肉;
对于(索引= 0;索引< DATA_CNT;索引++){
pAppData [index]= tempData;
}
/*将**有效**值写入 CS2区域。 *
tempData = 0x55550000;
对于(索引= 0;索引< DATA_CNT;索引++){
pAppData [index]= tempData + INDEX;
}
/*验证数据是否确实已写入*/
结果= DATA_MATH_SUCCESS;
对于(索引= 0;索引< DATA_CNT;索引++){
if (如果)(如果)(如果)=(tempData + index)){
结果= DATA_MATH_FAIL;
中断;
}
}
/*打印适当的消息*/
if (结果= data_match_Success){
printf ("\n 异步读写成功\n");
}
否则{
printf ("\n 异步读写操作不成功\n");
}
printf ("\TInfo:同步读取写入\n");
/*将"无效"值写入 EMIFA CS4区域。 这将覆盖
*以前的有效值。
*
tempData = 0xdeadf牛肉;
对于(索引= 0;索引< DATA_CNT;索引++){
pSyncData[index]= tempData;
}
/*将**有效**值写入 CS4区域。 *
tempData = 0x56780000;
对于(索引= 0;索引< DATA_CNT;索引++){
pSyncData[index]= tempData + INDEX;
}
/*验证数据是否确实已写入*/
结果= DATA_MATH_SUCCESS;
对于(索引= 0;索引< DATA_CNT;索引++){
if (pSyncData[index]!=(tempData +索引)){
结果= DATA_MATH_FAIL;
中断;
}
}
/*打印适当的消息*/
if (结果= data_match_Success){
printf ("\n 同步读写成功\n");
}
否则{
printf ("\n 同步读写操作不成功\n"\});
printf ("\叛国:读取数据时出错。[状态= 0x%x]\n"、状态);
}
返回;
}
我尚未修改代码、CCS 显示以下错误:
未定义 第一个参考
符号 文件中
------ --------
_CSL_emifaHwSetup /EMIFA_ReadWrite_Example.obj
_CSL_emifaInit /EMIFA_ReadWrite_Example.obj
_CSL_emifaOpen /EMIFA_ReadWrite_Example.obj