阅读:1163回复:2
菜鸟请教为什么在franklin C51中编译出来的文件不能运行?
各们大侠,我想请教一下,franklin C51和KEIL C51有什么区别,为什么把周立功的源码在franklin C51中编译后生成的.hex文件烧到片子上不能运行,我在仿真器中跟踪发现,在主循环中,一旦进入Set_Mode()就出不来了,同样源代码用KEIL C51编译就没有任何问题。
希望得到大侠的指教。谢谢! [编辑 - 9/27/04 by cupneedles] |
|
沙发#
发布于:2004-09-28 23:55
在早期,franklin和Keil使用同样的内核(编译器和连接器),但后来,两者分道扬镳了。
franklin高版本支持堆栈式临时变量,而Keil似乎不支持。 franklin允许在指定变量地址的同时付初值,而Keil不支持。 但Keil拥有更友好的界面和较稳定的内核,更好用一些。 你的问题,更多应该检查MCU的设置等问题。 |
|
|
板凳#
发布于:2004-09-29 08:25
再次请问热心的大侠:
1、我用的KEIL是V6.12的,franklin是V6.02的,不知道两者是不是高版本的。 2、两者生成的.hex文件烧进的是同一种片子,一个文件能用,一个文件不能用,这会是哪方面的MCU设置问题。(用的是at89c52) 3、KEIL里在建立项目时,会要求选择MCU的型号,自动加入该片子的头文件,而franklin中没有这一步,是不是有这方面的原因?但我后来把89C52的头文件手动的拷到franklin的项目中,也改了include,再重新编译,还是没用。 注:我是新手,不知怎么给分,请明示。 |
|