查看: 4423|回复: 4

[MQX] K60 MQXSD卡驱动怎么用?有没有样例程序?(已解决)

[复制链接]
  • TA的每日心情
    奋斗
    2017-1-17 10:45
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    38

    主题

    395

    帖子

    3

    高级会员

    Rank: 4

    积分
    780
    最后登录
    2023-11-17
    发表于 2013-4-24 14:24:24 | 显示全部楼层 |阅读模式
    我在源码自带的驱动目录“io”下看了esdhc和sdcard设备驱动的源码,也参考了MFS中的样例程序写了SD卡驱动的程序:
    /*
    * task_sd.c
    *
    *  Created on: Apr 23, 2013
    *      Author: SY
    */
    #include "app_inc.h"
    // 使用SDHC
    #include "sdcard.h"
    #include "sdcard_esdhc.h"
    #include "esdhc.h"
    const SDCARD_INIT_STRUCT _my_sdcard_init = {
    _io_sdcard_esdhc_init,
    _io_sdcard_esdhc_read_block,
    _io_sdcard_esdhc_write_block,
    ESDHC_BUS_WIDTH_4BIT
    };
    // SD卡读写操作
    void task_sd(uint_32 initial_data)
    {

    MQX_FILE_PTR  com_handle, sdcard_handle;
    _mqx_int      error_code;
    uint_32    tmp = 0;

    // 打开SD底层设备通道
    com_handle = fopen(BSP_SDCARD_ESDHC_CHANNEL, NULL);
    if (com_handle == NULL)
    {
    printf("[task_sd]pen sdhc failed.\n");
    }
    else
    {
    printf("[task_sd]pen sdhc successfully.\n");
    }
    // 为SD卡模块上电
    gpio_init(4, (6), GPIO_DIR_OUT, GPIO_LEVEL_LOW); // TF_PWEN,控制为TF卡座供电
    _time_delay(1);

    // 初始化SD卡设备
    error_code = _io_sdcard_install("msdcard:", (pointer)&_my_sdcard_init , com_handle);
    if ( error_code != MQX_OK )
    {
    printf("[task_sd]:Error installing SD card device (0x%x)\n", error_code);
    _task_block();
    }
    else
    {
    printf("[task_sd]:installing SD card device ok\n");
    }

    // 打开SD卡
    sdcard_handle = fopen("msdcard:", 0);
    if (sdcard_handle == NULL)
    {
    printf("[task_sd]:Unable to open SD card device.\n");
    }
    else
    {
    printf("[task_sd]pen SD card successfully.\n");
    }
    ioctl(sdcard_handle, IO_IOCTL_GET_BLOCK_SIZE, &tmp);
    printf("[task_sd]:IO_IOCTL_GET_BLOCK_SIZE: %d\n", tmp);

    ioctl(sdcard_handle, IO_IOCTL_GET_NUM_SECTORS, &tmp);
    printf("[task_sd]:IO_IOCTL_GET_NUM_SECTORS: %d\n", tmp);

    while (1)
    {
    _time_delay(1000);
    printf("[task_sd]:SB\n");

    }
    }
    可是输出信息总是“[task_sd]:Unable to open SD card device.”
    而且后面的查看块大小和块数量的值都是0。在电路上,与TWR板上的引脚接口相同,没有写保护和插入检测引脚,使用SDHC接口。
    想问一下,是不是我使用SD卡驱动的方法不对啊。我暂时不想使用MFS,仅仅是一块一块地读SD卡的数据。
    我知道答案 目前已有3人回答
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-17 10:45
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    38

    主题

    395

    帖子

    3

    高级会员

    Rank: 4

    积分
    780
    最后登录
    2023-11-17
     楼主| 发表于 2013-4-24 14:36:22 | 显示全部楼层

    RE:K60 MQXSD卡驱动怎么用?用没有样例程序?(已解决)

    Sorry,问题解决了
    原来是在应用工程中,user_config.h中要设定
    #define BSPCFG_ENABLE_ESDHC 1
    启动使用ESDHC模块设备,任务本身没有问题。
    我是在源码包的样例工程中生成了库文件,然后把psp.a和bsp.a文件还有一大堆头文件复制出来,单独创建的应用工程。在源码包工程中的user_config.h已经配置了使用ESDHC,但是在应用工程中仅仅更新了库文件,user_config.h没有更新过来。
    现在已经可以查看到SD卡的属性信息了:
    Hello World
    [test_sd]:TEST SD START
    [task_sd]pen sdhc successfully.
    [task_sd]:installing SD card device ok
    [task_sd]pen SD card successfully.
    [task_sd]:IO_IOCTL_GET_BLOCK_SIZE: 512
    [task_sd]:IO_IOCTL_GET_NUM_SECTORS: 1943552
    [task_sd]:SB
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    17

    帖子

    0

    新手上路

    Rank: 1

    积分
    37
    最后登录
    1970-1-1
    发表于 2013-5-2 19:27:43 | 显示全部楼层

    回复:K60 MQXSD卡驱动怎么用?有没有样例程序?(已解决)

    求楼把工程传给我啊,350254055@qq.com,感激不尽
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-8-31 12:39
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    26

    主题

    149

    帖子

    1

    高级会员

    Rank: 4

    积分
    561
    最后登录
    2025-7-21
    发表于 2013-11-17 18:40:39 | 显示全部楼层

    回复:K60 MQXSD卡驱动怎么用?有没有样例程序?(已解决)

     楼主用的是那块开发板啊,用的是那块芯片啊?希望可以指导一下如何移植mqx ! QQ :1024723212
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    705

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1745
    最后登录
    1970-1-1
    发表于 2013-11-19 16:10:16 | 显示全部楼层

    RE:K60 MQXSD卡驱动怎么用?有没有样例程序?(已解决)

    我也想分享,楼主阳光普照啊!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-10 03:19 , Processed in 0.085949 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表