移植神舟IV的SD卡FATFS例程,运行f_mount(0, &fs)函数时,进入硬故障处理
时间:10-02
整理:3721RD
点击:
把神舟IV的SD卡FATFS例程移到我自己的板子上(把跟硬件相关的管脚重新定义了一下),上电后打印的串口如下:file system starting!
这是SDHC: HIGH_CAPACITY_SD_CARD!
成功激活SDHC卡!
CSD_Tab[0] 0x40
CSD_Tab[1] 0xE
CSD_Tab[2] 0x0
CSD_Tab[3] 0x32
CSD_Tab[4] 0x5B
CSD_Tab[5] 0x59
CSD_Tab[6] 0x0
CSD_Tab[7] 0x0
CSD_Tab[8] 0x3B
CSD_Tab[9] 0x57
CSD_Tab[10] 0x7F
CSD_Tab[11] 0x80
CSD_Tab[12] 0xA
CSD_Tab[13] 0x40
CSD_Tab[14] 0x0
CSD_Tab[15] 0xE3
SDHC CSD Version 2.0 Acess AS SD High Capacity.
SD CardBlockSize 512 CardCapacity 3500 M.
SD Product name:
到此之后不在输出任何数据,仿真发现运行到f_mount(0, &fs)后发现程序进入到下面的硬故障函数处理里面去了,
/**
* @brief This function handles Hard Fault exception.
* @param None
* @retval None
*/
void HardFault_Handler(void)
{
/* Go to infinite loop when Hard Fault exception occurs */
while (1)
{
}
}
刚接触FATFS,不知道怎么解决这个问题,大家给些建议。
这是SDHC: HIGH_CAPACITY_SD_CARD!
成功激活SDHC卡!
CSD_Tab[0] 0x40
CSD_Tab[1] 0xE
CSD_Tab[2] 0x0
CSD_Tab[3] 0x32
CSD_Tab[4] 0x5B
CSD_Tab[5] 0x59
CSD_Tab[6] 0x0
CSD_Tab[7] 0x0
CSD_Tab[8] 0x3B
CSD_Tab[9] 0x57
CSD_Tab[10] 0x7F
CSD_Tab[11] 0x80
CSD_Tab[12] 0xA
CSD_Tab[13] 0x40
CSD_Tab[14] 0x0
CSD_Tab[15] 0xE3
SDHC CSD Version 2.0 Acess AS SD High Capacity.
SD CardBlockSize 512 CardCapacity 3500 M.
SD Product name:
到此之后不在输出任何数据,仿真发现运行到f_mount(0, &fs)后发现程序进入到下面的硬故障函数处理里面去了,
/**
* @brief This function handles Hard Fault exception.
* @param None
* @retval None
*/
void HardFault_Handler(void)
{
/* Go to infinite loop when Hard Fault exception occurs */
while (1)
{
}
}
刚接触FATFS,不知道怎么解决这个问题,大家给些建议。
在线等啦,给个思路
8G的卡,读出的容量为3500M?谁知道可能是哪出问题了?
经过这两天的折腾,卡容量读错的问题是变量赋值溢出了,修改定义成64位字节变量。执行f_mount(0, &fs)函数时,进入硬故障处理的问题临时解决的办法是把代码优化等级改为0就可以了。
求更深入的解决办法