_奶咖君_ 发表于 2023-12-27 11:21:54

zhangzhonghua 发表于 2023-12-27 11:11
加了NOOVERLAY,居然有链接错误,说无效的命令行语法。这怎么回事?

你怎么打成空格了,,,,

_奶咖君_ 发表于 2023-12-27 11:23:52

zhangzhonghua 发表于 2023-12-27 11:19
怎么改成可重入函数?

可重入的话需要开启模拟栈, 再函数后面加上reentrant 。。emmm 据说还会损失一点儿性能。

zhangzhonghua 发表于 2023-12-27 11:46:42

_奶咖君_ 发表于 2023-12-27 11:16
发个截图?是不是逗号用成中文了


奇怪了。
1、REMOVEUNUSED要求Overlay使能的,NOOVERLAY则把Overlay关掉了,我以为是它们之间冲突了,导致错误。
2、然后我保留NOOVERLAY,把REMOVEUNUSED去掉,结果还是同样报错。
3、但是原先有REMOVEUNUSED、无NOOVERLAY,是可以的。

_奶咖君_ 发表于 2023-12-27 12:05:35

......哥写错位了

_奶咖君_ 发表于 2023-12-27 12:06:22


_奶咖君_ 发表于 2023-12-27 12:07:37

注意 启用这个NOOVERLAY之后REMOVEUNUSED 功能就失效了,,Flash占用会变大。。只能手动裁减函数

_奶咖君_ 发表于 2023-12-27 12:09:34

中间用英文逗号分隔,,,
也不知道你百度了点啥,,哪个贴子教你这个东西要填在上面的,,,,直接喷那个作者去

zxcv1973 发表于 2023-12-27 12:24:28

_奶咖君_ 发表于 2023-12-27 11:23
可重入的话需要开启模拟栈, 再函数后面加上reentrant 。。emmm 据说还会损失一点儿性能。 ...

他用的是STC32吧,不用模拟栈,性能损失可忽略。这种函数指针动态调用函数,想治本就得用可重入函数

_奶咖君_ 发表于 2023-12-27 12:27:10

zxcv1973 发表于 2023-12-27 12:24
他用的是STC32吧,不用模拟栈,性能损失可忽略。这种函数指针动态调用函数,想治本就得用可重入函数 ...

你看看它的截图抱歉我没有用过STC32这个也是用的LX51 链接器么?

_奶咖君_ 发表于 2023-12-27 12:28:32

zxcv1973 发表于 2023-12-27 12:24
他用的是STC32吧,不用模拟栈,性能损失可忽略。这种函数指针动态调用函数,想治本就得用可重入函数 ...

啊 人用的C51 编译器 你是从那里看出来他用的STC32 ?
页: 1 2 [3] 4 5 6 7 8 9 10
查看完整版本: 遇到局部变量被意外修改的问题,发现是编译器给2个局部变量分配了相同的地址?