找回密码
 立即注册
查看: 45|回复: 3

刚又研究了一下用来产生EEPROM的文件在32位时编译的结果

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:363
  • 最近打卡:2026-05-08 17:09:43
已绑定手机

63

主题

257

回帖

2157

积分

金牌会员

积分
2157
发表于 4 天前 | 显示全部楼层 |阅读模式
发现它不是从0x00开始的,并且也不会按照书写顺序排列内容,是乱的。

于是用_at_0x00进行了规范,每个变量都要按顺序规范一下,有没有一个啥设置或者编译参数直接规范这种操作?
规范完了后还是不行,产生的文件和8位是一样的。在板子上读出来的是错的,分析内容发现它的int数据的高低字节是反着的。这咋搞?
都用32位的编译器编译,在int code 表格里面的数是高在前低在后,为何到了代码里面读出来放内存的就是低在前了?
比如88这个数字,产生的EEPROM的内容是00 58
在8位里面的读出来就是88,在32位里面读出来是22528,翻译成16进制就是58  00
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:363
  • 最近打卡:2026-05-08 17:09:43
已绑定手机

63

主题

257

回帖

2157

积分

金牌会员

积分
2157
发表于 4 天前 | 显示全部楼层
研究继续
发现之前的说法不对,数据并不是那样的,之前都用比较小的数,高字节都是00
后来验证仍然是高字节在前,但是在读EEPROM的函数调用时的参数里面的地址就是数组的首地址需要-1才能得到正确的数据,之前的8位模式是不需要的。但是写的时候不需要,到底咋回事啊
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:518
  • 最近打卡:2026-05-06 16:22:30
已绑定手机

278

主题

425

回帖

2307

积分

金牌会员

积分
2307
发表于 4 天前 | 显示全部楼层
从来没考虑过这种问题,你编程有很大的问题
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:363
  • 最近打卡:2026-05-08 17:09:43
已绑定手机

63

主题

257

回帖

2157

积分

金牌会员

积分
2157
发表于 4 天前 | 显示全部楼层
QQ6243*** 发表于 2026-5-5 17:56
从来没考虑过这种问题,你编程有很大的问题

可能是被8位的束缚了吧
但是百思不得其解啊
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-5-9 05:41 , Processed in 0.116644 second(s), 62 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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