阿波罗板~调试之怪现象,求解惑!

2019-07-20 09:26发布

本帖最后由 dyxcrazy 于 2018-2-5 10:52 编辑

代码如下: STlink 调试时  调试到红 {MOD}代码时  if 条件都满足 为何没有进入到 下面函数 直接跳过去了,可能原因有哪些呢?@正点原子
               另外,之前也写成功过,转移的一个图片 结果还丢数据了,而且以前nandflash  里的文件 给我干没了。。。。有重大影响吗?
转移的图 如下:


#include "sys.h"
#include "delay.h"
#include "ff.h"
#include "lcd.h"
#include "sdram.h"
#include "nand.h"
#include "malloc.h"
u8* sd_fpath="0:/readme.txt";
u8* nand_fpath="2:/back.bmp";
u8* ufpath="3:/pic/back.bmp";
//u8* ufpath2="3:/testdir";
//u8* ufpath3="3:/testdir/test.txt";
FATFS fatsd;
FATFS fatflash;
FATFS fatnand;

FIL fileobj;
FRESULT fr;
UINT brs;

DIR dirobj;

void USBtoNandFlash(void)
{FIL fp;
        FRESULT fr;
        u8 *read_pic_buff;
        u8 *pic_buff;
        //u8 pic_buff[200]="aaaaaaaa1234566";
        //u8 write_pic_buff[255]="hello world!";
        u32 br,bw;
        u32 btr=100,btw=100;
        DIR dp;
        
        //read_pic_buff=mymalloc(SRAMEX,512*1024);         //申请一个扇区的缓存
        pic_buff=mymalloc(SRAMEX,512*1024);
        if(pic_buff==NULL)return;

        fr = f_open(&fp, (const TCHAR*)ufpath, FA_READ|FA_WRITE);
if(fr==FR_OK)
{        
        btr=f_size(&fp);
        fr=f_read(&fp,pic_buff,btr,&br);
}        
f_close(&fp);

        if(fr==FR_OK)
        {        
                btw=btr;
                fr = f_open(&fp, (const TCHAR*)nand_fpath, FA_READ|FA_WRITE|FA_CREATE_ALWAYS);
               
                if(fr==FR_OK)fr=f_write(&fp,pic_buff,btw,&bw);        
                if(fr==FR_OK)
                {
                        POINT_COLOR=RED;
                        LCD_ShowString(30,300,200,16,16,"Write pic successed    ");//写入成功
                }
                f_close(&fp);
        }
myfree(SRAMEX,pic_buff);
//f_closedir(&dp);
//fr=fr;
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
正点原子
1楼-- · 2019-07-21 07:05
dyxcrazy 发表于 2018-2-6 10:11
那个问题 先放下, 再考虑下,再请教个问题

我每次完全擦除 nandflash 后 初始化  显示的   valid bloc ...

管理表坏了,全片擦除,然后重新格式化。
dyxcrazy
2楼-- · 2019-07-21 12:18
正点原子 发表于 2018-2-20 00:01
管理表坏了,全片擦除,然后重新格式化。

感谢回复。我已经全片擦除了,但是利用  usb读卡器实验 slave 插到电脑里读出来的 大小是不对的 。电脑提示让我格式化  ,我也格式化了几次,都不对、不知道该怎么选择?如下图:
dyxcrazy
3楼-- · 2019-07-21 15:48
 精彩回答 2  元偷偷看……
dyxcrazy
4楼-- · 2019-07-21 16:48
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-21 20:10
dyxcrazy 发表于 2018-2-23 17:00
目前怀疑是  usb读卡器实验 slave 的 库函数版本  有bug
我下载了  寄存器版本 后  然后拷数据到nandflas ...

寄存器版本比较可靠点。发现问题,可以换寄存器版本试试。
dyxcrazy
6楼-- · 2019-07-22 01:14
 精彩回答 2  元偷偷看……

一周热门 更多>