解决办法:
在OPTION下修改优化等级
IAR默认的是最高优化等级。如果程序不大建议不优化。如果优化等级高,那么一些非汇编的延时函数可能无法执行,一些局部变量的值可能在使用过后,即便没有离开自己的作用
果在A行设置的断点,单步调试的时候却只能到达A后边的某几行,可能的一个原因就是代码优化的等级太高了,导致编译器实际上没有在A行停顿。解决办法:
在OPTION下修改优化等级
IAR默认的是最高优化等级。如果程序不大建议不优化。如果优化等级高,那么一些非汇编的延时函数可能无法执行,一些局部变量的值可能在使用过后,即便没有离开自己的作用
不用把所有的函数声明在一个文件中。你用到什么函数(另外文件中的),就把那个文件的头文件inlcude 一下就可以了。\r\n\r\n比如你写了main.c function.h functio.c 三个文件,然后,你要在main.c里调用fun()函数,只要在main.c里include \\“function.h” 就行了\r\n\r\n\\/\\/function.h\r\nextern void fun()\r\n\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\r\n\\/\\/functio.c\r\nvoid fun()\r\n{\r\n\\/\\/code\r\n}\r\n\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\r\n\\/\\/main.c\r\ninclude "function.h"\r\nint main()\r\n{\r\n fun()\r\n}欢迎分享,转载请注明来源:内存溢出
评论列表(0条)