打印
[ZLG-ARM]

请教周公,关于程序编译下载的问题

[复制链接]
1438|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dog0138|  楼主 | 2007-11-8 23:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前在用smartarm开发板
软件用ADS1.2
程序中设置一些全局变量

如果在MAIN函数中 对有些全局变量进行写操作的话 程序就跑飞了比如:

uint8 r;
uint8 j;
main()
{
……
j=0;
r=0;
……
}

我在主程序中对j变量进行写操作不会跑飞,但是只要对r变量进行写操作就会跑飞

后来在网上查说是在MIAN函数中要对该变量用VOLATILE进行声明
更改后的函数变成了这样
uint8 r;
uint8 j;
main()
{
……
volatile uint8 r;
r=0;
j=0;
……
}
这样改后程序就运行正常了

但是新的问题也同样出现了
如果我对j在程序中也用volatile 进行声明 如下所示
uint8 r;
uint8 j;
main()
{
……
volatile uint8 r;
volatile uint8 j;
r=0;
j=0;
……
}

程序照样会跑飞

请教周公是什么原因。

另外  我在程序中只对r进行声明的时候(代码如下所示)用JTAG方式跑不会跑飞,但是编译成.bin文件用H-JTAG附带的FLASHER下载或者是编译.hex文件用ISP下载,程序都不能正常执行(编译时候ADS的ARM Linker设置保证不会有错)。
uint8 r;
uint8 j
main()
{
……
volatile uint8 r;
r=0;
j=0;
……
}
不知道是什么原因 希望周公给与解答

相关帖子

沙发
armecos| | 2007-11-9 00:33 | 只看该作者

《ecos增值包》能够解决这个问题

原因不是你说的这些,不必胡乱猜测了,www.armecos.com免费下载提供多个bin文件演示for smartarm均能正确运行,不信可以试试,这说明我们能解决此类问题。
还有几百位网友和你有同样的困惑,下面是部分技术支持记录:

不能脱机运行问题的记录

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

14

帖子

1

粉丝