找回密码
 立即注册
查看: 204|回复: 6

使用mov操作读内存错误

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-07-06 12:08:36

4

主题

7

回帖

80

积分

注册会员

积分
80
发表于 2025-7-5 19:02:44 | 显示全部楼层 |阅读模式
截图202507051853018581.jpg



我使用这个MOV操作函数读内存然后使用串口回显出来

截图202507051854492147.jpg


我只在EEPROM中使用IAP的方式写入了128个字节
        上面这个函数我最开始设置的是读128次,读出来的结果是正常的;
        然后我把他设置成了读256结果就无任何返回结果;
        设置成512就只读出了256个字节;

我使用的是STC32G128K,频率是22.1184,用户EEPROM设置的128K。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:537
  • 最近打卡:2025-08-24 01:00:11
已绑定手机

86

主题

5979

回帖

1万

积分

超级版主

积分
10832
发表于 2025-7-5 22:21:45 | 显示全部楼层
  1. unsigned char Iap_Read_Byte(unsigned char sector,unsigned int addr)
  2. {
  3.         return *(CBYTE+IAP_OFFSET+sector*0x0200+addr);
  4. }
复制代码


回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-07-06 12:08:36

4

主题

7

回帖

80

积分

注册会员

积分
80
发表于 2025-7-6 12:08:36 | 显示全部楼层

他这个读eeprom的操作有大小限制吗,不管是IAP或者MOV都是使用大一点的循环来读都是会出问题
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-07-06 12:08:36

4

主题

7

回帖

80

积分

注册会员

积分
80
发表于 2025-7-6 12:58:06 | 显示全部楼层

我循环读取128个字节的时候没问题 截图202507061255042026.jpg

但是循环读取256个字节的时候就 截图202507061257177833.jpg 只有第一个0xff被读取出来了,而且这个字节我也不知道是从哪读取出来的
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-08-22 14:04:24

5

主题

19

回帖

102

积分

注册会员

积分
102
发表于 2025-7-21 14:31:59 | 显示全部楼层

CBYTE 这个的含义是什么?

点评

CBYTE就是((unsigned char volatile code *) 0) C51 中 XBYTE、CBYTE、DBYTE的定义在 ABSACC.H 中 源文件位置:Keil_v5\C51\INC  详情 回复 发表于 2025-7-21 14:43
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:537
  • 最近打卡:2025-08-24 01:00:11
已绑定手机

86

主题

5979

回帖

1万

积分

超级版主

积分
10832
发表于 2025-7-21 14:43:05 | 显示全部楼层
fujig*** 发表于 2025-7-21 14:31
CBYTE 这个的含义是什么?

CBYTE就是((unsigned char volatile code *) 0)
C51 中 XBYTE、CBYTE、DBYTE的定义在 ABSACC.H 中
源文件位置:Keil_v5\C51\INC
  1. /*--------------------------------------------------------------------------
  2. ABSACC.H
  3. Direct access to 8051 & 251 memory areas for C251 Version 3.
  4. Copyright (c) 1995-2001 Keil Elektronik GmbH and Keil Software, Inc.
  5. All rights reserved.
  6. --------------------------------------------------------------------------*/
  7. #define CBYTE ((unsigned char volatile code  *) 0)
  8. #define DBYTE ((unsigned char volatile data  *) 0)
  9. #define PBYTE ((unsigned char volatile pdata *) 0) /* for C51 compatiblity */
  10. #define XBYTE ((unsigned char volatile xdata *) 0)
  11. #define NBYTE ((unsigned char volatile near *)  0)
  12. #if __C251__ >= 200
  13. #define HBYTE ((unsigned char volatile huge *)  0)
  14. #endif
  15. /* Note: this macros are defined for C51 compatiblity, you may use for  */
  16. /*       new designs the ARRAY or VAR macros defined below              */
  17. #define CWORD ((unsigned int volatile code  *) 0)
  18. #define DWORD ((unsigned int volatile data  *) 0)
  19. #define PWORD ((unsigned int volatile pdata *) 0)
  20. #define XWORD ((unsigned int volatile xdata *) 0)
  21. #define NWORD ((unsigned int volatile near *)  0)
  22. #if __C251__ >= 200
  23. #define HWORD ((unsigned int volatile huge *)  0)
  24. #endif
  25. #if __C251__ >= 200
  26. #define CVAR(object, addr)   (*((object volatile code *) (addr)))
  27. #define CARRAY(object, base) ((object volatile code *) (base))
  28. #define DVAR(object, addr)   (*((object volatile data *) (addr)))
  29. #define DARRAY(object, base) ((object volatile data *) (base))
  30. #define HVAR(object, addr)   (*((object volatile huge *) (addr)))
  31. #define HARRAY(object, base) ((object volatile huge *) (base))
  32. #define NVAR(object, addr)   (*((object volatile near *) (addr)))
  33. #define NARRAY(object, base) ((object volatile near *) (base))
  34. #define XVAR(object, addr)   (*((object volatile xdata *) (addr)))
  35. #define XARRAY(object, base) ((object volatile xdata *) (base))
  36. #endif
复制代码


回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-08-22 14:04:24

5

主题

19

回帖

102

积分

注册会员

积分
102
发表于 2025-7-21 14:47:58 | 显示全部楼层
Debu*** 发表于 2025-7-21 14:43
CBYTE就是((unsigned char volatile code *) 0)
C51 中 XBYTE、CBYTE、DBYTE的定义在 ABSACC.H 中
源文件 ...

感谢大佬,等于这个做了指针弱转换了对吧
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-24 03:19 , Processed in 0.124373 second(s), 89 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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