新人求助 SAMC21用户程序未被编译
第一次用microchip,芯片是ATSAMC21G17A。按提示使用mplab 生成了工程,使用jlink调试,可以正常烧录,但是debug时发现自己写的测试代码没有运行。单步调试,发现只运行了自动生成的初始化代码,执行完初始化代码后pc指针再也不加了。为了验证,我又复制了很多遍测试代码,发现编译后的hex文件大小一点没变,也验证了上述猜想。请问是哪里设置有问题吗?导致用户编写的程序没有正常编译链接?求助,谢谢。 怀疑和你写的代码结构有关系。
你所谓的“自动生成的初始化代码”是用harmony3还是用START产生的代码?正常产生的代码,会在main函数中调用系统初始化函数,但是没有用户APP代码。初始化函数之后,应该有个while(1)的循环。
你还可以试试软仿真,或者找个示例项目试试。 ynwa 发表于 2022-10-27 16:25
怀疑和你写的代码结构有关系。
你所谓的“自动生成的初始化代码”是用harmony3还是用START产生的代码?正常 ...
初始化代码是使用harmony3生成的。确实只生成了这个初始化函数,然后有个while(1),里面是空的,我在循环里面加上一句赋值语句。软件仿真,单步运行发现程序运行不到这个循环里面,因为循环里面的赋值语句未被执行。 ynwa 发表于 2022-10-27 16:25
怀疑和你写的代码结构有关系。
你所谓的“自动生成的初始化代码”是用harmony3还是用START产生的代码?正常 ...
程序就这样,新建了一个项目,然后想测试一下能否正常运行。单步仿真,发现这样运行不到循环中,但是去掉循环后可以运行到return语句。很奇怪,怀疑是不是我哪个地方设置有问题还是新建工程的方式有问题?
变量一直没被使用,是不是被优化了。 关闭编译器优化再试试看。 mintspring 发表于 2022-10-27 21:48
关闭编译器优化再试试看。
谢谢,刚刚试过了,默认优化等级是1,把等级都改成0后正常了。谢谢。
页:
[1]