野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4998|回复: 3

小白求助: 用keil编译S3C2410的程序时出现‘__main未定义’

[复制链接]
发表于 2022-9-8 18:50:53 | 显示全部楼层 |阅读模式
8火花
小白求助:


打开keil,新建工程,选择了一款ARM9内核的芯片S3C2410,然后开始编写一个简单的程序,打算试用一下keil的Debug功能。



编写了一个简单的程序:
野火论坛202209081838025573..png


编译,出现下面错误:

野火论坛202209081839041265..png


回忆起【野火F103霸道/指南者视频教程入门篇】的第七个视频——“新建工程模板(寄存器版)”中,也类似地出现过这个问题,于是照葫芦画瓢,自己编写了两个空函数以骗过寄存器,这次确实没有出现错误:

野火论坛202209081846454758..png


然后进入Debug,发现永远都在执行汇编程序,进入不了main函数中。


我认为就是因为我所编写的__main函数是空的,所以无法使程序由汇编进入main.c当中。但是如果不自己编一个__main函数,编译器又会报错。

请问各位大佬,这种情况该怎么处理?要怎么使编译器不报错,同时又能使程序由汇编进入main.c呢?







回复

使用道具 举报

发表于 2022-9-9 10:42:24 | 显示全部楼层
可能是s3c2410,s文件的问题,换一个试试
回复

使用道具 举报

发表于 2022-9-9 16:41:46 | 显示全部楼层
本帖最后由 a7597 于 2022-9-9 16:42 编辑

它这个一般是先进入“__main”函数,然后再在“__main”函数里干点事,最后再从“__main”函数里面进入到主函数“main”,所以你只写一个空的“__main”函数是不行的。不过.s结尾的是系统的启动文件,应该是你的启动文件写的有问题。这个启动文件不用自己写,全是汇编,自己一写就错,你找找官方给的启动文件试试
回复

使用道具 举报

 楼主| 发表于 2022-9-11 10:23:49 | 显示全部楼层
a7597 发表于 2022-9-9 16:41
它这个一般是先进入“__main”函数,然后再在“__main”函数里干点事,最后再从“__main”函数里面进入到主 ...

嗯,谢谢回复!

我的工程里用到的.s启动文件也不是我自己编写的,在keil里新建工程的时候会让我选择芯片类型,我选了我用的S3C2410芯片之后,keil就自动帮我引入了这个.s启动文件。

请问如果想找官方的启动文件的话,应该去哪里找呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-3 05:05 , Processed in 0.048700 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表