[开发工具] 高分拜请高手扔掉main函数?

[复制链接]
 楼主| 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 | 显示全部楼层
香主帮我看看我提的问题吧,呵呵
txcy 发表于 2010-6-3 16:17 | 显示全部楼层
为什么要扔掉MAIN,新、想不明白,毫无必要
 楼主| armhoo 发表于 2010-6-3 16:20 | 显示全部楼层
香主,可能还没明白意思,
我主要的目的,不是main
可以这么说,如果你扔掉main意味着C运行时的环境要自己建立,那就得很了解IAR编译器的初始化流程
各它所生成的一些RO RW ZI相关的符号,目前是IAR似乎无法得到加载域的RO RW ZI相关信息,只能得
到运行时的RO RW ZI相关信息。
 楼主| armhoo 发表于 2010-6-3 16:24 | 显示全部楼层
扔掉main还意味着你扔掉了semihosting(在ADS中是这样),一些和semihosting相关的函数你就得自己实现了,最经典的就是fputc.
 楼主| armhoo 发表于 2010-6-3 16:26 | 显示全部楼层
其它的还有像malloc等相关的函数
 楼主| armhoo 发表于 2010-6-3 16:29 | 显示全部楼层
问题补充:
IAR中如何实现自己完全控制初始化流程!
或者说IAR中如何得到加载域的RO RW ZI相关地址信息!
香水城 发表于 2010-6-3 16:52 | 显示全部楼层
你这是非典问题,还是直接问问IAR吧,:lol
 楼主| armhoo 发表于 2010-6-3 16:52 | 显示全部楼层
更或者说IAR中如何自己完全建立C运行时环境?而不用借助 "?main".
 楼主| armhoo 发表于 2010-6-3 17:00 | 显示全部楼层
ST版面这么火,而且这里高手云集,我想即使是非典问题也有偏方的!更关键的是我确实需要自己建立初始化环境!
 楼主| armhoo 发表于 2010-6-3 17:06 | 显示全部楼层
其时在ADS MDK中也很简单,编译器自己可以导出
|Image$$bss$$ZI$$Base|
|Image$$bss$$ZI$$Limit|
|Image$$text$$Limit|
|Image$$data$$Base|
这样的符号,然后自己做初始化就可以了,
但不知IAR怎么回找了半天也没找到可以导出映像文件中相关段的信息。
mcuisp 发表于 2010-6-3 21:18 | 显示全部楼层
IAR 442的我知道,拷贝个cstartup.s过来修改即可。
IAR5.4还不知道
gmgmgm 发表于 2010-6-4 09:40 | 显示全部楼层
楼主有点神经病,我刚入行的,可想而知,去掉了,你还不是自己再弄个等效于main的 入口,只是掩盖了这个main字眼而已;
 楼主| armhoo 发表于 2010-6-4 09:52 | 显示全部楼层
拜托,弄懂了题目再发表言论!关键不是弄不弄掉main,而是程序从开始到main的过程!!!!
icecut 发表于 2010-6-4 09:54 | 显示全部楼层
唉.真怪.当年那个谁也是不用main的.你跟他学去吧.豪杰超级解霸的作者
 楼主| armhoo 发表于 2010-6-4 09:56 | 显示全部楼层
你光会用main了,你为什么不想想你的全局变量是谁给你初始化的!!!!问题关键是IAR中如何自己初始化这些工作!!!如何从IAR中获取这些RO RW ZI的信息!!!!!
 楼主| armhoo 发表于 2010-6-4 09:59 | 显示全部楼层
拜托,弄懂了题目再发表言论!关键不是弄不弄掉main,而是程序从开始到main的过程!!!!
billtian 发表于 2010-6-4 10:02 | 显示全部楼层
不懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

61

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部