打印

运行到main()之前,keil都做了些什么?

[复制链接]
4913|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
soeni|  楼主 | 2007-4-23 09:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前一直用汇编,程序从上电到整个运行过程清清楚楚的,现在用了KEIL C51,一直没有弄懂程序怎么会跳到main()中来,在跳到main()之前,keil c51都做了那些工作?
有人给点提示吗?

相关下载

相关帖子

沙发
mcuatmel| | 2007-4-23 09:56 | 只看该作者

看一下反汇编就知道了

使用特权

评论回复
板凳
soeni|  楼主 | 2007-4-23 10:13 | 只看该作者

谢谢楼上朋友的提示

还有startup.s文件有什么作用,好像把删除了影响也不大啊!照样能编译通过

使用特权

评论回复
地板
turmary| | 2007-4-23 11:22 | 只看该作者

startup.s删除就使用默认的库启动代码.

并不是没有了启动代码.
启动代码可以看startup.a51在C51LIB下.

使用特权

评论回复
5
soeni|  楼主 | 2007-4-23 11:24 | 只看该作者

我的理解

是不是建立工程的时候,加入startup.s,程序复位后先运行该文件初始化
如果建立工程的时候不加入startup.s文件,程序复位的时候不对startup.s进行处理?

使用特权

评论回复
6
soeni|  楼主 | 2007-4-23 11:35 | 只看该作者

to:turmary

你的意思也就是说:工程不添加startup.s文件,程序默认它还是执行的?

使用特权

评论回复
7
turmary| | 2007-4-23 11:47 | 只看该作者

不是啊,加入的startup.s是针对该程序的特定启动代码,调用main()

把它删除,会连接库中的启动代码调用main().

使用特权

评论回复
8
xwj| | 2007-4-23 12:14 | 只看该作者

添加了就是自己的,不添加就会自动链接LIB目录下的startup.a51

反正不管怎样都得又启动的代码,
不然程序怎么能自己跑到C文件的main()里去呢?

有疑问多看看编译器帮助啊,讲的很详细的

使用特权

评论回复
9
drq1997| | 2007-4-23 12:20 | 只看该作者

占个位

使用特权

评论回复
10
turmary| | 2007-4-23 12:27 | 只看该作者

还是大侠xwj讲的通俗一点儿!!!

使用特权

评论回复
11
soeni|  楼主 | 2007-4-23 15:40 | 只看该作者

呵呵,谢谢大家的讲解

看来还的多学习
不过有时候看帮助真的看的满头雾水的,只怪我辈学识尚浅。
还有现在出来了个KEIL UV3,说是用来开发ARM 的,不知道是不是也和KEIL UV2一样的过程!

使用特权

评论回复
12
joy晴天| | 2007-4-23 21:05 | 只看该作者

arm里的启动代码,看了arm也有助于理解这个

使用特权

评论回复
13
xuxyl2| | 2007-4-24 08:06 | 只看该作者

startup主要是把片内RAM清零,设定堆栈指针到变量区以外,

然后跳转到main。如果不加startup,则在main()执行之前只设堆栈指针。

使用特权

评论回复
14
soeni|  楼主 | 2007-4-24 14:32 | 只看该作者

个位解释的都很清楚!

其实有时间真的还是要去看看ADS 或KEIL UV3/UV2的帮助文档
在这里问出来主要对我们这些初学者来说指明个方向而已,谢谢!

使用特权

评论回复
15
Swd21ic| | 2007-4-24 18:00 | 只看该作者

~~~

以前不明白startup.现在搞了AT91..还不是懂startup...
哈哈

使用特权

评论回复
16
soeni|  楼主 | 2007-4-24 19:20 | 只看该作者

呵呵

确实比较难懂的东西,我现在看了2天了,还是没有弄懂在ADS  里面怎么弄这个启动代码

使用特权

评论回复
17
jshmlly| | 2007-4-25 20:55 | 只看该作者

两天时间不长耐心点阿

学习ARM不象学习51 。
要多看书,打持久战。

使用特权

评论回复
18
pigjiang| | 2007-4-25 21:32 | 只看该作者

ADS里面的启动代码.s文件是自己写的 。

使用特权

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

本版积分规则

3

主题

10

帖子

0

粉丝