楼主: henrei-290209

[已解决] KEA128 无法在线擦除Flash

[复制链接]

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24863
最后登录
2025-7-18
发表于 2016-6-21 09:20:53 | 显示全部楼层
henrei-290209 发表于 2016-6-20 17:10
大神,试过啦,没有用。
工程就一个flash写程序,没开中断,flash写也只使用了poll模式没有用中断。
...

我待会有空测试下你的代码,然后给你回复。
工程是codewarrior的,对吧?
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

51

帖子

0

注册会员

Rank: 2

积分
168
最后登录
1970-1-1
 楼主| 发表于 2016-6-21 15:38:56 | 显示全部楼层
小恩GG 发表于 2016-6-21 09:20
我待会有空测试下你的代码,然后给你回复。
工程是codewarrior的,对吧?

codewarrior的,非常感谢
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2020-1-19 15:50
  • 签到天数: 243 天

    连续签到: 1 天

    [LV.8]以坛为家I

    3

    主题

    1325

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2316
    最后登录
    2020-1-19
    发表于 2016-6-21 16:39:07 | 显示全部楼层
    真不错。学习中...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    51

    帖子

    0

    注册会员

    Rank: 2

    积分
    168
    最后登录
    1970-1-1
     楼主| 发表于 2016-6-21 21:06:06 | 显示全部楼层
    我改用固件库的擦除函数又测试了一下,现象是一样的,只要不用__attribute__ 指定数值,擦除是好使的。
    如果用__attribute__ 在规定内存地址赋值,就无法擦除。
    感觉应该是.ld文件的问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24863
    最后登录
    2025-7-18
    发表于 2016-6-22 09:41:52 | 显示全部楼层
    henrei-290209 发表于 2016-6-21 21:06
    我改用固件库的擦除函数又测试了一下,现象是一样的,只要不用__attribute__ 指定数值,擦除是好使的。
    如 ...

    在codewarrior中,__attribute__ 是用来指定常量的,常量是readonly的。
    如果你需要定义的数据改变,那么你可以不定义为常量,直接定义为变量。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24863
    最后登录
    2025-7-18
    发表于 2016-6-22 09:41:55 | 显示全部楼层
    henrei-290209 发表于 2016-6-21 21:06
    我改用固件库的擦除函数又测试了一下,现象是一样的,只要不用__attribute__ 指定数值,擦除是好使的。
    如 ...

    在codewarrior中,__attribute__ 是用来指定常量的,常量是readonly的。
    如果你需要定义的数据改变,那么你可以不定义为常量,直接定义为变量。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24863
    最后登录
    2025-7-18
    发表于 2016-6-22 09:43:47 | 显示全部楼层
    也就是划一个sector专门用于你的数据存储,可以不用常量或者变量定义形式,直接用flash写的方式把数据写入到flash对应地址,需要修改的时候,读出来,修改,然后擦除flash对应地址,再写入。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    51

    帖子

    0

    注册会员

    Rank: 2

    积分
    168
    最后登录
    1970-1-1
     楼主| 发表于 2016-6-22 15:38:23 | 显示全部楼层
    小恩GG 发表于 2016-6-22 09:43
    也就是划一个sector专门用于你的数据存储,可以不用常量或者变量定义形式,直接用flash写的方式把数据写入 ...

    那样做有点浪费存储空间。因为我要存储的参量比较大,大概16K,如果这么做需要预留32K。
    或者在生产的时候烧写,但是这样需要烧写两遍,一次是主程序,一次是类似bootload式的写变量。这样生产会疯的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    51

    帖子

    0

    注册会员

    Rank: 2

    积分
    168
    最后登录
    1970-1-1
     楼主| 发表于 2016-6-22 15:45:19 | 显示全部楼层
    比较悲催的是,KEA不支持#pragma define_sector
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24863
    最后登录
    2025-7-18
    发表于 2016-6-22 16:05:40 | 显示全部楼层
    henrei-290209 发表于 2016-6-22 15:38
    那样做有点浪费存储空间。因为我要存储的参量比较大,大概16K,如果这么做需要预留32K。
    或者在生产的时 ...

    楼主不着急,我帮你去问问我们的codewarrior工程师。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-19 01:58 , Processed in 0.105453 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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