您好!
我在写入 SD 卡时遇到困难。 我有一个简单的测试程序、它使用 EZDSP5535_SDCARD_WRITE 函数将填充了一些增量整数值的缓冲器写入 SD 卡。 然后立即将这些值读回缓冲区、并执行简单的 print 语句以确认读取和写入函数按预期工作。 下面是我用于读取/写入的代码。 现在、当我设置断点以尝试调试时。 在写入函数期间、我得到一个 mmcStatus =-10、这是初始化的默认值。 这是预期的结果、因为 API 引用未提及返回值。 然后、对于读取函数、我得到一个 mmcStatus = 0的返回值。 当我打印值时,print 语句不返回任何值。 我已经陷入困境几天了、我已经迷失了下一步的方向。 最后、我计划使用 SD 读/写功能将我的语音记录到 SD、然后将其回放给我。
提前感谢您、
谢里登
/*
* 德州仪器公司版权所有2010。
* 保留所有权利。 德州仪器(TI)公司的财产。
* 使用、复制或披露此代码的受限权限为
* 通过合同授予。
#include
#include "hellocfg.h"
#include "ezdsp5535.h"
#include "stdint.h"
#include "aic3204.h"
#include "ezdsp5535_I2S.h"
#include "CSL_I2S.h"
#include "ezdsp5535_led.h"
#include "ezdsp5535_SAR.h"
#include "CSL_PLL.h"
#include "ezdsp5535_sdcard.h"
#define MAX_缓冲 区大小512
#define SYS_ICR *(volatile ioport uint16*)(0x0001)
extern CSL_I2sHandle hI2;
extern void audioProcessingInit(void);
extern Int16 aic3204_loop_lineIn();
void systemInit (void);
uint16 writeBuff[MAX_buff_size/2];
uint16 readBuff[MAX_buff_size/2];
void main (void)
{
int i、j;
/*初始化 BSL */
EZDSP5535_init();
EZDSP5535_SDCARD_INIT ();
memset (writeBuff、0、sizeof (writeBuff));
memset (readBuff、0、sizeof (readBuff));
/*初始化 LED */
EZDSP5535_LED_INIT();
//配置编解码器芯片
配置 Aic3204();
/*初始化 I2S */
EZDSP5535_I2S_init ();
/*初始化 SAR */
EZDSP5535_SAR_INIT ();
/*初始化 OLED 显示*/
EZDSP5535_OSD9616_init();
EZDSP5535_OSD9616_SEND (0x00、0x2e); //取消激活滚动
/*通过 BIOS 调用启用中断*/
C55_enableInt (14);//参考技术手册、I2S2 TX 中断
C55_enableInt (15);//参考技术手册、I2S2 Rx 中断
对于(i = 0;i < MAX_buff _size/2;i++){
writeBuff[i]= i;
}
EZDSP5535_SDCARD_WRITE (0x200、MAX_缓冲 区大小、writeBuff);
EZDSP5535_SDCARD_READ (0x200、MAX_缓冲 区大小、readBuff);
for (i=0;<MAX_BUFF_SIZE/2;i++){)
printf ("%u\n"、readBuff[i]);
printf ("%\d"、i);
}
// audioProcessingInit();
// aic3204_loop_lineIN();
//在 main()退出 DSP/BIOS 调度程序启动后
}
空 systemInit (空)
{
uint16 i;
PLL_Obj pllObj;
CSL_Status 状态;
pll_handle hPll;
PLL_Config * pConfigInfo;
PLL_Config pllCfg_v2_100MHz ={0x8BE8、0x8000、0x0806、0x0000};
/*配置空闲控制*/
SYS_ICR = 0xFF2E;
asm (" idle");
/*重置外设*/
CSL_fins (CSL_SYSCTRL_REGS->PSRCR、SYS_PSRCR_COUNT、0x02);
CSL_SYSCTRL_REGS->PRCR = 0xfb;
设备复位的/*延迟*/
对于(i=0;i< 200;i++);
/*设置 PLL */
状态= PLL_init (&pllObj、CSL_PLL_INST_0);
hPll =(PLL_Handle)(&pllObj);
PLL_RESET (hPll);
pConfigInfo =&pllCfg_v2_100MHz;
状态= PLL_CONFIG (hPll、pConfigInfo);
}