求助:如何取消KEIL中的_main函数!

2020-02-19 21:18发布

本帖最后由 wangpengcheng 于 2014-9-3 16:57 编辑

Keil中在初始化之前有个_main函数,是做内存以及堆栈初始化用的,我目前做的工程不想要它,因为他会占用一些空间跟启动时间!可是我不知道如何才能把它去掉?有没有办法?

keil.jpg (466.36 KB, 下载次数: 0) 下载附件 2014-9-3 16:57 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
wangpengcheng
1楼-- · 2020-02-21 02:52
jiaowoxiaolu 发表于 2014-9-3 16:49
肯定行,不信你仿真进汇编单步走

呵呵,就是仿真的结果!我才来问的!
tohell
2楼-- · 2020-02-21 04:24
wangpengcheng 发表于 2014-9-3 16:47
试过了,他还是存在于程序当中,从我的代码一开始的地方就有!我还是不确定我程序从哪开始运行! ...

你是从哪里发现它还在的
wangpengcheng
3楼-- · 2020-02-21 06:13
tohell 发表于 2014-9-3 16:51
你是从哪里发现它还在的

我是将程序放在RAM中运行的,程序下载完后直接跳到我的RAM的初地址那里,它就存在!
dr2001
4楼-- · 2020-02-21 08:15
是不是用到了C库的一些东西?那些函数有的会间接引用C运行库的一些异常代码,进而包含初始化代码的。(代码包含是基于Section的,不是基于函数的。)

另外,主函数的名字不要用main, _main这些个,用Main或者其它的任何名字都行。
程序入口main只是C标准的一个约定,但不是必须的,特别是嵌入式环境里,编译器/链接器根本不管是否存在main。

注意,屏蔽了C运行库还是用C库函数的话,可能产生不良后果,要有所预计。
McuPlayer
5楼-- · 2020-02-21 09:32
 精彩回答 2  元偷偷看……
jiaowoxiaolu
6楼-- · 2020-02-21 13:57
都说行了你还不信,好像骗你一样!

444444.jpg (315.17 KB, 下载次数: 0)

下载附件

2014-9-3 16:55 上传




注意红框,main是我的主函数,__main是库函数 单步进汇编看scatterloader就是__mian干的活

一周热门 更多>