查看: 3614|回复: 17

[求助] [求助]K60flash上以问价形式保存数据,无法单独更新某字节...

[复制链接]
  • TA的每日心情
    开心
    2019-9-17 17:18
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    26

    主题

    394

    帖子

    0

    高级会员

    Rank: 4

    积分
    967
    最后登录
    2019-10-9
    发表于 2014-11-8 14:06:49 | 显示全部楼层 |阅读模式
    如题
    我在k60flash上创建一个文件并初始化写入多字节数据
    /* Open the flash device */
         flash_set_file = fopen(FLASH_NAME, "rb");
         if (flash_set_file == NULL) {
          printf("\nUnable to open file %s", FLASH_NAME);
          _task_block();
         }

    //初始化数据
         system_time_struct.adjust_space = 0x24;
         system_time_struct.timeServe = 0x00;
         system_time_struct.timeZone = 0x1B;

    // Disable sector cache
         ioctl(flash_set_file, FLASH_IOCTL_ENABLE_SECTOR_CACHE, NULL);
                  
    // Move STRING_SIZE Bytes back
         fseek(flash_set_file, -4, IO_SEEK_END);

    //写入数据
         len = write(flash_set_file, &system_time_struct, sizeof(system_time_struct));

    单独更新某字节数据时,数据无法写入.错误代码:2563

         memset(system_time_struct, 0, sizeof(system_time_struct));
         system_time_struct.adjust_space = 0x11;
         system_time_struct.timeServe = 0x11;
         system_time_struct.timeZone = 0x11;
                        
         //Move STRING_SIZE Bytes back
         fseek(flash_set_file, -4, IO_SEEK_END);
                              
         // Unprotecting the the FLASH might be required
         ioctl_param = 0;
         ioctl(flash_set_file, FLASH_IOCTL_WRITE_PROTECT, &ioctl_param);
                            
         len = write(flash_set_file, &system_time_struct, sizeof(system_time_struct));
        if (len != sizeof(system_time_struct)) {
              printf("\nError writing to the file. Error code: %d", _io_ferror(flash_set_file));
              _task_block();
         }
    更新数据时,len=-1,错误代码:2563

    请大神指点迷津:
    1. K60自带MFS文件系统,是不是可以直接像操作文件一样管理flash存储?不用擦除数据,再写入数据,而根据地址寻找直接操作数据?
    2. _io_ferror(flash_set_file)函数返回的错误代码,如何解析?是不是有相应的文档?

    我知道答案 目前已有17人回答
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-17 17:18
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    26

    主题

    394

    帖子

    0

    高级会员

    Rank: 4

    积分
    967
    最后登录
    2019-10-9
     楼主| 发表于 2014-11-8 14:07:17 | 显示全部楼层
    苦恼的我,期待大神点拨
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-10 13:40:37 | 显示全部楼层
    darren_liu 发表于 2014-11-8 14:07
    苦恼的我,期待大神点拨

    楼主你好
    请问你提到的MFS是指[url=https://www.freescale.co
    m/zh-Hans/webapp/sps/site/overview.jsp?code=MQXMFS]Freescale MQX™文件系统(MFS)?[/url]
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-10 13:52:18 | 显示全部楼层
    楼主你好
    建议你按照帖子飞思卡尔产品论坛快速购买通道及SR提交流程提交一个服务请求:
    如果你尚未注册飞思卡尔官网账号,请先点击右侧注册按钮:图标完成注册。
    如果你已有飞思卡尔官网账号,可以点击右侧申请SR按钮:图标提交一个服务请求。最好使用英文描述清楚遇到的问题,以便国内外工程师都能够帮助到你。

    注意要提到MQX这个关键字,以便此服务请求被分配到MQX操作系统的工程师那儿。

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-17 17:18
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    26

    主题

    394

    帖子

    0

    高级会员

    Rank: 4

    积分
    967
    最后登录
    2019-10-9
     楼主| 发表于 2014-11-11 16:59:56 | 显示全部楼层
    FSL_TICS_Robin 发表于 2014-11-10 13:40
    楼主你好
    请问你提到的MFS是指Freescale MQX™文件系统(MFS)?

    是的,目前单个字节更新问题已经解决。但是在使用fseek函数有点问题。
    MQX中使用fseek函数时,
    fseek(flash_file,0, IO_SEEK_SET);以文件头做基地址进行偏移写入数据失败,
    fseek(flash_file,0, IO_SEEK_END);以文件尾做基地址进行偏移写入数据成功。
    还请指点。

    版主,这个问题我也要提交SR,找MQX工程师解决吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-11-11 17:35:14 | 显示全部楼层
    楼主用的是什么样的FLASH,是否要考虑FLASH只能写一次的问题?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-12 09:23:27 | 显示全部楼层
    darren_liu 发表于 2014-11-11 16:59
    是的,目前单个字节更新问题已经解决。但是在使用fseek函数有点问题。
    MQX中使用fseek函数时,
    fseek(fla ...

    已经联系过,提交一下SR吧
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-17 17:18
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    26

    主题

    394

    帖子

    0

    高级会员

    Rank: 4

    积分
    967
    最后登录
    2019-10-9
     楼主| 发表于 2014-11-12 11:16:58 | 显示全部楼层
    安 发表于 2014-11-11 17:35
    楼主用的是什么样的FLASH,是否要考虑FLASH只能写一次的问题?

    版主您好

    我的芯片是:MK60DN512VLQ10,其带有512K的程序flash。
    我想在上面保存一些数据,并可以更新。现在我基于MQX的MFS系统已经实现数据的保存和更新,重新上电后数据仍然可以正确读出。

    那版主所说的flash只能写一次是什么情况?请版主明示。
    本人菜鸟,还请多多指教
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-17 17:18
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    26

    主题

    394

    帖子

    0

    高级会员

    Rank: 4

    积分
    967
    最后登录
    2019-10-9
     楼主| 发表于 2014-11-12 11:17:42 | 显示全部楼层
    本帖最后由 darren_liu 于 2014-11-12 11:30 编辑
    FSL_TICS_Robin 发表于 2014-11-12 09:23
    已经联系过,提交一下SR吧

    恩,好的,谢谢版主指点
    提交后,就等到工程师回复邮件是吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-17 17:18
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    26

    主题

    394

    帖子

    0

    高级会员

    Rank: 4

    积分
    967
    最后登录
    2019-10-9
     楼主| 发表于 2014-11-18 10:16:39 | 显示全部楼层
    安 发表于 2014-11-12 15:00
    是这样的,FLASH机制就是只能写一次,再写的话就要擦除。如果之前写过数据的地址,需要将这一片擦除掉。才 ...

    谢谢版主的回复。这几天没有登论坛,回复晚了。
    我现在按照帖子中的方法已经实现数据更新,且掉电后重新上电,数据为最后一次保存的数据。
    那这样的话,我是不是可以理解为:MQX已经封装好了对flash的操作,留出接口函数供用户调用,用户可以像操作文件的方式来对flash进行相关操作。
    不知道这样理解是否正确,请版主指教。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 16:46 , Processed in 0.124957 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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