zjl12006 发表于 2016-1-4 14:54:26

SD卡烧录工具如何把bin文件写到SD卡上

本人在学习Uboot,也在尝试写一些裸程序来了解如何操作硬件,如何编写驱动等。现想写一个烧录工具,将我的程序写到SD卡上,然后从SD卡启动。当我以如下形式,打开文件的方式,最大可以写1.5MB到SD卡,然后GetLastError()返回0x5(拒绝访问)。

        wsprintf(szDiskName, L"\\??\\%c:", szDiskName);    //szDiskName是SD卡的Volume name, 'H'、'j’、'K'等
        hDevice = CreateFile( szDiskName,
                                                GENERIC_WRITE,
                                                FILE_SHARE_READ | FILE_SHARE_WRITE,
                                                NULL,
                                                OPEN_EXISTING,
                                                FILE_ATTRIBUTE_NORMAL,
                                                NULL);


如果以如下形式打开SD卡,则1KB都写不进去。GetLastError()也是返回0x5。
        wsprintf( szDiskNum, TEXT("\\\\.\\PhysicalDrive%d"), stVolumeData.Extents.DiskNumber);
        hDevice = CreateFile(szDiskNum,
                                GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
                                NULL, OPEN_EXISTING, 0 , NULL);


我想问一下,用哪个函数或什么方法 可以将较大的文件烧写到SD卡? 网上找不到答案,头很大。

zjl12006 发表于 2016-1-8 11:29:48

搞定,哈哈。。原来要把SD卡前512Bytes写乱,然后怎么写都行了,写多大也都行。
页: [1]
查看完整版本: SD卡烧录工具如何把bin文件写到SD卡上