打印
[开发工具]

高分拜请高手扔掉main函数?

[复制链接]
7636|43
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
armhoo|  楼主 | 2010-6-3 15:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
main函数,我想大家都了解,只要你会C编程,你就会知道main?我想它是比你第一个
"hello world!"还早的程序。可是它的作用呢?我想不是每个会C编程的人都知道?如果
当你有一天可以对main说拜拜时,那你就算是入门了!这里高手如云,望高手们能在IAR中扔掉这个main!!!

曾经对ADS有点了解,所有初始化流程都可以自己为所欲为,包括可以不用那个我第一节课就学习的main函数,但是在IAR中,目前还没成功!望高手们赐教!

这里主要牵扯的问题有:
1、硬件初始化
2、运行时环境初始化
3、编译器特性
沙发
香水城| | 2010-6-3 16:02 | 只看该作者
扔掉main函数?有意义吗?

你想让一棵树只长树冠而没有树干?

如果只是把main函数的名字换一换,不过是偷梁换柱而已。

使用特权

评论回复
板凳
tiger84| | 2010-6-3 16:09 | 只看该作者
main只是个标记而已,没有什么意义,就跟平时使用的函数是一样的,想用什么名字都可以。
ads1.2比较好换,iar基本上不可能,它已经把main写死,打包成库了。

使用特权

评论回复
地板
tiger84| | 2010-6-3 16:11 | 只看该作者
香主帮我看看我提的问题吧,呵呵

使用特权

评论回复
5
txcy| | 2010-6-3 16:17 | 只看该作者
为什么要扔掉MAIN,新、想不明白,毫无必要

使用特权

评论回复
6
armhoo|  楼主 | 2010-6-3 16:20 | 只看该作者
香主,可能还没明白意思,
我主要的目的,不是main
可以这么说,如果你扔掉main意味着C运行时的环境要自己建立,那就得很了解IAR编译器的初始化流程
各它所生成的一些RO RW ZI相关的符号,目前是IAR似乎无法得到加载域的RO RW ZI相关信息,只能得
到运行时的RO RW ZI相关信息。

使用特权

评论回复
7
armhoo|  楼主 | 2010-6-3 16:24 | 只看该作者
扔掉main还意味着你扔掉了semihosting(在ADS中是这样),一些和semihosting相关的函数你就得自己实现了,最经典的就是fputc.

使用特权

评论回复
8
armhoo|  楼主 | 2010-6-3 16:26 | 只看该作者
其它的还有像malloc等相关的函数

使用特权

评论回复
9
armhoo|  楼主 | 2010-6-3 16:29 | 只看该作者
问题补充:
IAR中如何实现自己完全控制初始化流程!
或者说IAR中如何得到加载域的RO RW ZI相关地址信息!

使用特权

评论回复
10
香水城| | 2010-6-3 16:52 | 只看该作者
你这是非典问题,还是直接问问IAR吧,:lol

使用特权

评论回复
11
armhoo|  楼主 | 2010-6-3 16:52 | 只看该作者
更或者说IAR中如何自己完全建立C运行时环境?而不用借助 "?main".

使用特权

评论回复
12
armhoo|  楼主 | 2010-6-3 17:00 | 只看该作者
ST版面这么火,而且这里高手云集,我想即使是非典问题也有偏方的!更关键的是我确实需要自己建立初始化环境!

使用特权

评论回复
13
armhoo|  楼主 | 2010-6-3 17:06 | 只看该作者
其时在ADS MDK中也很简单,编译器自己可以导出
|Image$$bss$$ZI$$Base|
|Image$$bss$$ZI$$Limit|
|Image$$text$$Limit|
|Image$$data$$Base|
这样的符号,然后自己做初始化就可以了,
但不知IAR怎么回找了半天也没找到可以导出映像文件中相关段的信息。

使用特权

评论回复
14
mcuisp| | 2010-6-3 21:18 | 只看该作者
IAR 442的我知道,拷贝个cstartup.s过来修改即可。
IAR5.4还不知道

使用特权

评论回复
15
gmgmgm| | 2010-6-4 09:40 | 只看该作者
楼主有点神经病,我刚入行的,可想而知,去掉了,你还不是自己再弄个等效于main的 入口,只是掩盖了这个main字眼而已;

使用特权

评论回复
16
armhoo|  楼主 | 2010-6-4 09:52 | 只看该作者
拜托,弄懂了题目再发表言论!关键不是弄不弄掉main,而是程序从开始到main的过程!!!!

使用特权

评论回复
17
icecut| | 2010-6-4 09:54 | 只看该作者
唉.真怪.当年那个谁也是不用main的.你跟他学去吧.豪杰超级解霸的作者

使用特权

评论回复
18
armhoo|  楼主 | 2010-6-4 09:56 | 只看该作者
你光会用main了,你为什么不想想你的全局变量是谁给你初始化的!!!!问题关键是IAR中如何自己初始化这些工作!!!如何从IAR中获取这些RO RW ZI的信息!!!!!

使用特权

评论回复
19
armhoo|  楼主 | 2010-6-4 09:59 | 只看该作者
拜托,弄懂了题目再发表言论!关键不是弄不弄掉main,而是程序从开始到main的过程!!!!

使用特权

评论回复
20
billtian| | 2010-6-4 10:02 | 只看该作者
不懂

使用特权

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

本版积分规则

11

主题

61

帖子

0

粉丝