查看: 1446|回复: 9

[求助] lpc1768flash写的问题

[复制链接]
  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
    发表于 2020-10-15 09:06:13 | 显示全部楼层 |阅读模式
    请教一下,lpc1768是不是只能一次性写固定数目的字节的?
    /**
    * @brief IAP write length definitions
    */
    typedef enum {
      IAP_WRITE_256  = 256,
      IAP_WRITE_512  = 512,
      IAP_WRITE_1024 = 1024,
      IAP_WRITE_4096 = 4096,
    } IAP_WRITE_SIZE;


    能不能写一个字节呢??我只是用一个字节,感觉256都有点浪费啊~~

    最佳答案

    现在的编译器在声明变量,或者 malloc的时候都会自动4字节对齐。 但是不可以以下方式处理: uint8_t mbuf[256]; uint8_t *src_addr; src_addr = &mbuf[1];        //不可以使用此源地址下的地 ...
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2020-10-15 09:12:57 | 显示全部楼层
    很可能是按页写的。具体查看文档吧!
    友商的flash也是擦除后可按word写,但同一位置也仅可以写一次。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
     楼主| 发表于 2020-10-15 09:20:19 | 显示全部楼层
    jobszheng5 发表于 2020-10-15 09:12
    很可能是按页写的。具体查看文档吧!
    友商的flash也是擦除后可按word写,但同一位置也仅可以写一次。 ...

    将 RAM 内容复制到 Flash
    输入
    命令代码:5110
    参数 0(DST):要写入数据字节的目标 Flash 地址。目标地址的边界应当为 256 字节
    参数 1(SRC):读取数据字节的源 RAM 地址。该地址应当以字为边界
    参数 2:写入字节的数目。应当为 256 | 512 | 1024 | 4096
    参数 3:系统时钟频率(CCLK)(单位:KHz)
    这是文档里面写的,那感觉好浪费啊~~
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2020-10-15 09:27:00 | 显示全部楼层
    这个是硬件设计所导致的。
    估计也是因为这个Cortex-M0+的MCU上面就集成了片上的EEPROM。
    这样就非常方便楼主的设计了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
     楼主| 发表于 2020-10-15 09:31:10 | 显示全部楼层
    jobszheng5 发表于 2020-10-15 09:12
    很可能是按页写的。具体查看文档吧!
    友商的flash也是擦除后可按word写,但同一位置也仅可以写一次。 ...

    参数 1(SRC):读取数据字节的源 RAM 地址。该地址应当以字为边界
    这个怎么来4字节定义呢??
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2020-10-15 09:42:16 | 显示全部楼层
    现在的编译器在声明变量,或者 malloc的时候都会自动4字节对齐。
    但是不可以以下方式处理:
    1. uint8_t mbuf[256];
    2. uint8_t *src_addr;
    3. src_addr = &mbuf[1];        //不可以使用此源地址下的地址空间。
    复制代码
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
     楼主| 发表于 2020-10-15 09:44:36 | 显示全部楼层
    jobszheng5 发表于 2020-10-15 09:42
    现在的编译器在声明变量,或者 malloc的时候都会自动4字节对齐。
    但是不可以以下方式处理:
    ...

    多谢大佬~~~
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
     楼主| 发表于 2020-10-15 09:48:11 | 显示全部楼层
    jobszheng5 发表于 2020-10-15 09:42
    现在的编译器在声明变量,或者 malloc的时候都会自动4字节对齐。
    但是不可以以下方式处理:
    ...

    这个是啥逻辑呢??
    为啥不能用,语法不对吗?
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2020-10-15 09:59:23 | 显示全部楼层
    在声明mbuf[256]时,地址 &mbuf[0]是4字节对齐的,但是 &mbuf[1]偏移了一个字节,自然就不再会是4字节对齐了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
     楼主| 发表于 2020-10-15 10:47:14 | 显示全部楼层
    jobszheng5 发表于 2020-10-15 09:59
    在声明mbuf[256]时,地址 &mbuf[0]是4字节对齐的,但是 &mbuf[1]偏移了一个字节,自然就不再会是4字节对齐 ...

    ok,多谢~~
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-24 15:05 , Processed in 0.158583 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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