智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2631|回复: 13
打印 上一主题 下一主题

flash 数组的读取与存取

[复制链接]

30

主题

229

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2689
威望
1401
贡献
718
兑换币
877
注册时间
2014-7-1
在线时间
285 小时
跳转到指定楼层
1#
发表于 2016-1-2 21:23:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10贡献
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\1013956044\QQ\WinTemp\RichOle\WGBHJ118H4UPESK0{NWADDJ.png
如图片所示

附件: 您需要 登录 才可以下载或查看,没有帐号?注册
回复

使用道具 举报

30

主题

229

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2689
威望
1401
贡献
718
兑换币
877
注册时间
2014-7-1
在线时间
285 小时
2#
 楼主| 发表于 2016-1-2 21:41:22 | 只看该作者
还有就是大家有没有按键调整后的数组保存和读取的flash例程,说下思路也行 先谢谢了
回复

使用道具 举报

49

主题

848

帖子

1

精华

知名人物

说和做是两码事

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
32825

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章资源大师奖章

威望
29437
贡献
1934
兑换币
1870
注册时间
2013-12-10
在线时间
727 小时
3#
发表于 2016-1-3 19:54:51 | 只看该作者
保存一下就不要保存了  要不然flash寿命有限  具体就是 只执行一次  设定一个flash标志位就行
回复

使用道具 举报

31

主题

731

帖子

0

精华

版主

情怀、节操、内涵、下限

Rank: 9Rank: 9Rank: 9

积分
8787
威望
4777
贡献
1128
兑换币
3165
注册时间
2012-5-7
在线时间
1441 小时
毕业学校
长春大学
4#
发表于 2016-1-4 10:47:07 | 只看该作者
那个write和read的函数原型是什么?
回复

使用道具 举报

30

主题

229

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2689
威望
1401
贡献
718
兑换币
877
注册时间
2014-7-1
在线时间
285 小时
5#
 楼主| 发表于 2016-1-4 11:11:04 | 只看该作者
majorfog 发表于 2016-1-4 10:47
那个write和read的函数原型是什么?

flash数据的读取与写入
回复

使用道具 举报

31

主题

731

帖子

0

精华

版主

情怀、节操、内涵、下限

Rank: 9Rank: 9Rank: 9

积分
8787
威望
4777
贡献
1128
兑换币
3165
注册时间
2012-5-7
在线时间
1441 小时
毕业学校
长春大学
6#
发表于 2016-1-4 11:21:08 | 只看该作者
1013956044 发表于 2016-1-4 11:11
flash数据的读取与写入

我的意思是你的函数输入输出参数是怎么定义的。。返回值的含义是什么,1代表成功还是失败
回复

使用道具 举报

30

主题

229

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2689
威望
1401
贡献
718
兑换币
877
注册时间
2014-7-1
在线时间
285 小时
7#
 楼主| 发表于 2016-1-4 12:14:06 | 只看该作者
majorfog 发表于 2016-1-4 11:21
我的意思是你的函数输入输出参数是怎么定义的。。返回值的含义是什么,1代表成功还是失败

U8 Flash_readBUF(U16 sectNo,U16 offset,U16 cnt,U16 *bBuf)
{
    U32 wAddr = 0;
    wAddr = sectNo * 2048 + offset;
    while (cnt--)
   {
     *bBuf++=*(UCHAR *)wAddr++;
   }
   return TRUE;
}


U8 Flash_writeBUF(U16 sectNo,U16 offset,U16 cnt,U16 buf[])
{
    U32 size;
    U32 destaddr;

    union
    {
        U32   word;
        U8  byte2[4];
    } dest;

    if(offset%4 != 0)
        return 1;   //参数设定错误,偏移量未对齐(4字节对齐)

    // 设置写入命令
    FTFL_FCCOB0 = PGM4;
    destaddr = (U32)(sectNo*(1<<11) + offset);//计算地址
    dest.word = destaddr;
    for(size=0; size<cnt; size+=4, dest.word+=4, buf+=4)
    {
        // 设置目标地址
        FTFL_FCCOB1 = dest.byte2[2];
        FTFL_FCCOB2 = dest.byte2[1];
        FTFL_FCCOB3 = dest.byte2[0];

        // 拷贝数据
        FTFL_FCCOB4 = buf[3];
        FTFL_FCCOB5 = buf[2];
        FTFL_FCCOB6 = buf[1];
        FTFL_FCCOB7 = buf[0];

        if(1 == Flash_cmd_launch())
            return 2;  //写入命令错误
    }

    return 0;  //成功执行
}

回复

使用道具 举报

31

主题

731

帖子

0

精华

版主

情怀、节操、内涵、下限

Rank: 9Rank: 9Rank: 9

积分
8787
威望
4777
贡献
1128
兑换币
3165
注册时间
2012-5-7
在线时间
1441 小时
毕业学校
长春大学
8#
发表于 2016-1-4 14:20:40 | 只看该作者
1013956044 发表于 2016-1-4 12:14
U8 Flash_readBUF(U16 sectNo,U16 offset,U16 cnt,U16 *bBuf)
{
    U32 wAddr = 0;

TRUE的值是1么
回复

使用道具 举报

30

主题

229

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2689
威望
1401
贡献
718
兑换币
877
注册时间
2014-7-1
在线时间
285 小时
9#
 楼主| 发表于 2016-1-4 17:05:53 | 只看该作者

是的  这样不就说明正确的  但是我那个数值一按复位为什么还是保存不了
回复

使用道具 举报

31

主题

731

帖子

0

精华

版主

情怀、节操、内涵、下限

Rank: 9Rank: 9Rank: 9

积分
8787
威望
4777
贡献
1128
兑换币
3165
注册时间
2012-5-7
在线时间
1441 小时
毕业学校
长春大学
10#
发表于 2016-1-5 20:57:09 | 只看该作者
你是怎么测试复位的呢?  也是用你发的这段程序么
回复

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2026-2-15 12:50 , Processed in 0.148137 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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