完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
在项目程序中直接调用官方例程的FlashReadOTPword函数读取0x10地址的值得到ID号,并发送到电脑串口观察数值,多次上电接收到的数值都是一样的,排除是串口的问题。只要我修改了项目程序中其他与读ID号毫不相关的功能后,读出的ID号就跟之前不一样了,将程序改回去后,读出的ID号又和之前一样了。
我还另写了一个单独测试ID号的程序,但测试程序修改其他与读ID号不相关的功能并不会改变读出的ID值。而且在先烧录项目程序再烧录测试程序的情况下,测试程序读出的是ID值和项目程序的一样,也就是说项目程序读出的ID号变化测试程序读出的ID号也变。但一直烧测试程序读出的ID号是不会变的。 请问这是什么问题呢?另外测试程序编译后大小为1K左右,项目程序编译后大小为23K左右。 |
|
相关推荐
6个回答
|
|
|
你程序RAM用了多少了?是不是RAM使用太多,导致堆栈出问题,读出来的值被程序修改了。
|
|
|
|
|
|
就用了一百多而已,应该不是堆栈的问题。因为烧测试程序和项目程序读出来的值是一样的,感觉是程序没有读到ID号存放的地址而是读了程序存储区的地址。 如果是堆栈问题,那测试程序应该能读出真正的ID号。 |
|
|
|
|
|
你说修改了某一块 程序后就会导致读出的ID号发生变化,修改回去后就好了,请问这个修改的程序是哪一块程序?修改前后对RAM使用大小有造成影响吗?
|
|
|
|
|
|
不是说改回去就好了,是程序一样的话读出的ID号就一样,不能确定读出的是真的ID号。
修改的是跟读ID号无关的功能,对RAM的使用没有影响,比如说这个版本读一次ID号,另一个版本连读两次ID号,两个版本的程序得到的ID号都是不一样的。如下图: |
|
|
|
|
|
是不是读flash的地址不对?
|
|
|
|
|
|
这个问题已经解决了,读16位地址就出错,读8位地址就是正确的。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
376 浏览 0 评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
880 浏览 0 评论
1481 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
3432 浏览 2 评论
2838 浏览 1 评论
安卓手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗
1832浏览 1评论
1481浏览 1评论
377浏览 0评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
881浏览 0评论
485浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 07:30 , Processed in 0.832312 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1062