hsrzq 发表于 2024-7-23 10:29:29

阳天 发表于 2024-7-23 09:56
折腾我几天了,一直怀疑自己的程序有问题,我拿例程的综合程序直接跑,也会碰到这种问题,可能是哪里不太 ...

说实话,我不太相信是编译逻辑造成的,问题大概率应该还是出在代码上。

比如比较常见的一种情况就是,数组的下标越界导致程序跑飞。加点乱七八糟的无用代码后,越界的位置恰好在新加位置,没有引起主程序太大异常,以致勉强还能凑合跑下去。

所以最好还是把完整代码发出来看看~

阳天 发表于 2024-7-23 10:30:42

死机程序

阳天 发表于 2024-7-23 11:00:59

hsrzq 发表于 2024-7-23 10:29
说实话,我不太相信是编译逻辑造成的,问题大概率应该还是出在代码上。

比如比较常见的一种情况就是,数 ...

数组下标越界应该是没有的,这个检查过了,我是担心编译的时候地址分配会不会有问题,我本来也是怀疑自己的代码的,用官方的例程跑了一下也会出问题

御坂美琴我老婆 发表于 2024-7-23 11:25:46

我在32F上也遇到很相似的问题,只要在代码任意一个位置,加上nop、i++、delay这种无关紧要的指令,使得code大小变化1~8,那这code大小变化的1~8中,必有一个大小的hex文件是可以稳定运行的,其他的可能会不停重启或者数据错乱,插个眼,看看后面怎么解决的{:4_167:}

hsrzq 发表于 2024-7-23 11:27:00

阳天 发表于 2024-7-23 11:00
数组下标越界应该是没有的,这个检查过了,我是担心编译的时候地址分配会不会有问题,我本来也是怀疑自己 ...

数组越界只是随便举的个例子,其它的可能性还有很多很多。

等会,官方例程也有问题?!把你的软件版本、系统版本啥的,越详细越好的信息都发出来,这个得让大佬看了,我卡拉咪就不会了~~~

soma 发表于 2024-7-23 12:01:26

还有这种奇怪的问题,是单体还是多个U都这样

阳天 发表于 2024-7-23 15:43:04

我的问题解决了,code容量超出了,比较坑的是keil连警告都没有,ISP自动烧录也不会提醒,自动把超出的分配到eeprom里面了,这个逻辑最好能改一下,我用的其他单片机代码超出直接会报错的。
页: 1 [2]
查看完整版本: 编译后代码大小为13463或13467时会死机