OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4545|回复: 12

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

[复制链接]

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-1-14
在线时间
17 小时
发表于 2018-2-5 09:17:05 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 dyxcrazy 于 2018-2-5 10:52 编辑

代码如下: STlink 调试时  调试到红色代码时  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;
}


最佳答案

查看完整内容[请看2#楼]

目前怀疑是 usb读卡器实验 slave 的 库函数版本 有bug 我下载了 寄存器版本 后 然后拷数据到nandflash 问题解决了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-1-14
在线时间
17 小时
 楼主| 发表于 2018-2-5 09:17:06 | 显示全部楼层
目前怀疑是  usb读卡器实验 slave 的 库函数版本  有bug
我下载了  寄存器版本 后  然后拷数据到nandflash  问题解决了
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-1-14
在线时间
17 小时
 楼主| 发表于 2018-2-5 09:20:32 | 显示全部楼层
本帖最后由 dyxcrazy 于 2018-2-5 09:23 编辑

传过去的图片 变成这样了、、、

back.jpg
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-1-14
在线时间
17 小时
 楼主| 发表于 2018-2-5 09:34:01 | 显示全部楼层
本帖最后由 dyxcrazy 于 2018-2-5 10:54 编辑

顶一个
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-2-6 01:30:32 | 显示全部楼层
1,FIL fp,放全局变量。2,你在LCD_ShowString这里,放断点,不能跑到?你检查过fr么?printf打印fr的值,试试看。
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-1-14
在线时间
17 小时
 楼主| 发表于 2018-2-6 08:29:04 | 显示全部楼层
本帖最后由 dyxcrazy 于 2018-2-6 08:30 编辑
正点原子 发表于 2018-2-6 01:30
1,FIL fp,放全局变量。2,你在LCD_ShowString这里,放断点,不能跑到?你检查过fr么?printf打印fr的值, ...

放断点也进不去, 我查看fr 是在变量查看窗口看的 显示是FR_OK   难道显示不可靠谱嘛?
我在这 放断点 POINT_COLOR=RED; 都进不去
我试试全局变量
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-1-14
在线时间
17 小时
 楼主| 发表于 2018-2-6 10:11:13 | 显示全部楼层
本帖最后由 dyxcrazy 于 2018-2-6 10:53 编辑

那个问题 先放下, 再考虑下,再请教个问题

我每次完全擦除 nandflash 后 初始化  显示的   valid block   每次都不一样》?为什么?所以nandflash 的 存储大小也跟着变  只有47M了

bad block checked:1020
bad block checked:2826
NAND ID:0xdc909556
format nand flash...
good_blocknum:4092
err hd,rd:0x0,0xffffffff
eccnum,eccstart:1,2
PageNum,ColNum:0,1024
2bit ecc error or more
good_blocknum:4084
NAND ID:0xdc909556
total block num:4096
good block num:4096
valid block num:585
good_blocknum:4079
NAND ID:0xdc909556
total block num:4096
good block num:4096
valid block num:2057
good_blocknum:4092
NAND ID:0xdc909556
total block num:4096
good block num:4096
valid block num:1093
good_blocknum:4086
NAND ID:0xdc909556
total block num:4096
good block num:4096
valid block num:377
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-2-20 00:01:05 | 显示全部楼层
dyxcrazy 发表于 2018-2-6 10:11
那个问题 先放下, 再考虑下,再请教个问题

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

管理表坏了,全片擦除,然后重新格式化。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-1-14
在线时间
17 小时
 楼主| 发表于 2018-2-22 10:02:39 | 显示全部楼层
正点原子 发表于 2018-2-20 00:01
管理表坏了,全片擦除,然后重新格式化。

感谢回复。我已经全片擦除了,但是利用  usb读卡器实验 slave 插到电脑里读出来的 大小是不对的 。电脑提示让我格式化  ,我也格式化了几次,都不对、不知道该怎么选择?如下图:
11.png
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-1-14
在线时间
17 小时
 楼主| 发表于 2018-2-22 10:27:12 | 显示全部楼层
格式化以后放入数据  重新插入电脑
显示容量又被莫名大量占用。。
22.png
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-1-14
在线时间
17 小时
 楼主| 发表于 2018-2-22 11:21:19 | 显示全部楼层
本帖最后由 dyxcrazy 于 2018-2-22 11:24 编辑

去年遗留的问题到今年
3.png
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-2-25 02:09:18 | 显示全部楼层
dyxcrazy 发表于 2018-2-23 17:00
目前怀疑是  usb读卡器实验 slave 的 库函数版本  有bug
我下载了  寄存器版本 后  然后拷数据到nandflas ...

寄存器版本比较可靠点。发现问题,可以换寄存器版本试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-1-14
在线时间
17 小时
 楼主| 发表于 2018-2-25 08:35:23 | 显示全部楼层
正点原子 发表于 2018-2-25 02:09
寄存器版本比较可靠点。发现问题,可以换寄存器版本试试。

ok
谢谢
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 18:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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