硬汉嵌入式论坛

 找回密码
 立即注册
搜索
查看: 495|回复: 8
收起左侧

[RL-FlashFS] stm32f429+rtx5+RL-FlashFS用 nand MT29F4G08在CreateNewFile中fmount进入HardFaultHandler

[复制链接]

45

主题

346

回帖

481

积分

高级会员

积分
481
发表于 2026-7-17 15:11:08 | 显示全部楼层 |阅读模式
static char * DevicePath[]=
{
        "N0:", /* NAND */
};

uint8_t g_TestBuf[BUF_SIZE];

/*
*********************************************************************************************************
*        函 数 名: DemoFlashFS
*        功能说明: FlashFS件系统演示主程序
*        形    参: 无
*        返 回 值: 无
*********************************************************************************************************
*/
void DemoFlashFS(void)
{
        uint8_t cmd;
    char *_path = DevicePath[0];

        /* 打印命令列表,用户可以通过串口操作指令 */
        DispMenu();
       
        while(1)
        {
                if (comGetChar(COM1, &cmd))        /* 从串口读入一个字符(非阻塞方式) */
                {
                        printf("\r\n");
                        switch (cmd)
                        {
                                case '1':
                                        printf("【1 - ViewSDCapacity】\r\n");
                                        ViewSDCapacity(_path);                /* 挂载,卸载及其容量显示 */
                                        break;
                               
                                case '2':
                                        printf("【2 - ViewRootDir】\r\n");
                                        ViewRootDir(_path);                    /* 显示SD卡根目录下的文件名 */
                                        break;
                               
                                case '3':
                                        printf("【3 - CreateNewFile】\r\n");
                                        CreateNewFile(_path);            /* 创建三个text文本并使用不同函数写入内容 */
                                        break;
                               
                                case '4':
                                        printf("【4 - ReadFileData】\r\n");
                                        ReadFileData(_path);                /* 使用三个不同函数读取文本  */
                                        break;

                                case '5':
                                        printf("【5 - SeekFileData】\r\n");
                                        SeekFileData(_path);                /* 创建一个text文本,在指定位置对其进行读写操作  */
                                        break;
                               
                                case '6':
                                        printf("【6 - DeleteDirFile】\r\n");
                                        DeleteDirFile(_path);            /* 删除文件夹和文件  */
                                        break;
                               
                                case '7':
                                        printf("【7 - WriteFileTest】\r\n");
                                        WriteFileTest(_path);            /* 测试文件读写速度  */
                                        break;
                               
                                case '8':
                                        printf("【8 - WriteCSVFile】\r\n");
                                        WriteCSVFile(_path);                /* 写数据到CSV文件中  */
                                        break;
                               
                                case '9':
                                        printf("【9 - ReadCSVFileData】\r\n");
                                        ReadCSVFileData(_path);            /* 从CSV文件中读数据  */
                                        break;

                                case 'N':                     /* 打开NAND,操作NAND功能 */
                case 'n':
                                        printf("【n - OpenNand】\r\n");
                                        _path = DevicePath[0];
                                        break;                    

                case 'F':                   /* 启动FTP服务器的存储设备,这里用的SD卡 */
                                case 'f':
                                        printf("【f - StartFTP】\r\n");
                                        _path = DevicePath[0];
                                        StartFTP(_path);
                                        break;

                case 'T':                 /* 关闭FTP服务器的存储设备*/
                                case 't':
                                        printf("【t - StopFTP】\r\n");
                                        _path = DevicePath[0];
                                        StopFTP(_path);
                                        break;

                                default:
                                        DispMenu();
                                        break;
                        }
                }
               
                osDelay(10);
        }
}   先输入1,后输入3, 1.png


2.png

3.png
求助!


回复

使用道具 举报

45

主题

346

回帖

481

积分

高级会员

积分
481
 楼主| 发表于 2026-7-17 15:13:44 | 显示全部楼层
发错板块了,请版主迁移下,不好意思,谢谢!
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124160
QQ
发表于 2026-7-17 16:16:23 | 显示全部楼层
操作前执行低级格式化和文件系统格式化,特别是修改系统配置参数,修改后,必须要执行这个。
回复

使用道具 举报

45

主题

346

回帖

481

积分

高级会员

积分
481
 楼主| 发表于 2026-7-17 17:06:13 | 显示全部楼层
eric2013 发表于 2026-7-17 16:16
操作前执行低级格式化和文件系统格式化,特别是修改系统配置参数,修改后,必须要执行这个。

OK  谢谢版主!
回复

使用道具 举报

45

主题

346

回帖

481

积分

高级会员

积分
481
 楼主| 发表于 2026-7-22 15:26:09 | 显示全部楼层
粗心大意了    DMA没打勾
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124160
QQ
发表于 2026-7-23 09:50:45 | 显示全部楼层
zhengwending 发表于 2026-7-22 15:26
粗心大意了    DMA没打勾

那个地方得DMA
回复

使用道具 举报

45

主题

346

回帖

481

积分

高级会员

积分
481
 楼主| 发表于 2026-7-23 16:42:04 | 显示全部楼层

HAL库里的。再咨询个问题,不想用flashfs,想换成littlefs,但是不勾选rte配置环境里不勾选file,tcpnet的FTP又不能用  。。。。这怎么个思路解决呢
回复

使用道具 举报

45

主题

346

回帖

481

积分

高级会员

积分
481
 楼主| 发表于 2026-7-23 16:47:12 | 显示全部楼层

还得请教   void test_file_rw(void)
{
    uint8_t buf[512];
    uint8_t read_buf[512];
    FILE *fp;
   
    printf("=== File RW Test ===\r\n");
   
    /* 写入 */
    memset(buf, 0xAB, 512);
    fp = fopen("N0:/test.bin", "w+b");
    if (!fp) {
        printf("FAIL: fopen write\r\n");
        return;
    }
    size_t w = fwrite(buf, 1, 512, fp);
    printf("Write: %d bytes\r\n", w);
        fflush(fp);
    fclose(fp);
   
    /* 读取 */
    fp = fopen("N0:/test.bin", "rb");
    if (!fp) {
        printf("FAIL: fopen read\r\n");
        return;
    }
    size_t r = fread(read_buf, 1, 512, fp);
    printf("Read: %d bytes\r\n", r);
    fclose(fp);
   
    /* 比较 */
    if (memcmp(buf, read_buf, 512) == 0) {
        printf("PASS: Data matches!\r\n");
    } else {
        printf("FAIL: Byte[0]=0x%02X (expected 0xAB)\r\n", read_buf[0]);
    }
}   测试fs,=== File RW Test ===
Write: 512 bytes
Read: 512 bytes
FAIL: Byte[0]=0xC8 (expected 0xAB) 数据不对,挂载,格式化都没问题。
回复

使用道具 举报

45

主题

346

回帖

481

积分

高级会员

积分
481
 楼主| 发表于 2026-7-24 11:23:27 | 显示全部楼层

1.png
2.png    串口输入4  打开文件,就卡在这了   ftp看txt文件  字节 0


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-9-23 05:29 , Processed in 0.394454 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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