您的位置 首页 开关

处理STM32调试,无法进入main函数的问题

昨天调试STM32程序,以前使用的是MDK340的版本,把版本升了下级,升到了MDK410,装好后,一运行,哈哈,新版本给人的感觉就是不一样啊,很爽,较之

昨日调试STM32程序,曾经运用的是MDK3.40的版别,把版别升了下级,升到了MDK4.10,装好后,一运转,哈哈,新版别给人的感觉便是不一样啊,很爽,较之前有许多改善,把自己曾经的程序翻开,编译运转发现程序调试时无法进入Main函数,弄了好久,很是抑郁啊,最终仍是在ourdev的坛子里,找到了相同问题的处理方法,多谢ourdev,以下是坛子里边的帖子,我把他贴出来了.

sdc666 :
请问高手,我在调试我的STM32F101c8t6时,遇到一个问题,由于我要调试串口,我在main.c中增加了#include,编译能够经过,可是当我用jlink硬件调试时,一开始就停在了0x08001460BEABBKPT0xAB”;而且无法向下运转.请问高手,这个问题的原因是什么?怎样处理?谢谢!
_sys_open:
0x08001450B50EPUSH{r1-r3,lr}
0x08001452E9CD0100STRDr0,r1,[sp,#0]
0x08001456F000FAF9BL.Wstrlen(0x08001A4C)
0x0800145A9002STRr0,[sp,#0x08]
0x0800145C4669MOVr1,sp
0x0800145E2001MOVSr0,#0x01
0x08001460BEABBKPT0xAB
0x08001462BD0EPOP{r1-r3,pc}
pldjn :
应该是项目设置的问题,检查一下你的设置.
sdc666:
pldjn你好,能具体点拨以下么?应该怎样设置?这个程序是我该的,本来是没有#include,我增加串口后由于需求规范库函数,所以才加上的.是不是还要设置编译环境?谢谢.
pldjn :
你用J-Flash翻开你的HEX文件看看编译的是否是对的.不必主动下载运用J-flash烧进去调一下试试.
dragonwww:
我也遇到相同问题,我是调用printf时呈现的这个过错,我现已把putchar重定位了,不知道为何仍是犯错,求解,THX!
yugen:
那是由于你运用了printf之类的库函数,需求编写_sys_exit()之类底层函数。照你的提示看,也许是_sys_open()没写。_sys_xxx之类的的只需写个空函数就行了。
dragonwww:
toyugen:
能否说的再细心些,假如自己编写个空函数应该放在哪里?函数界说格局是什么样的呢?
疑惑的是曾经也用过printf,没呈现这个提示啊。
PZLPDY:
5楼的应该不是这样吧?
应该是你没有选中微库形成的。这个问题昨日我遇到过。在工程的设置选项里把微库勾上就OK了
dragonwww:
toPZLPDY:
苍天啊,公然如你所说,把微库勾上就OK了,奇怪了为什么曾经用的的时分没报错呢?曾经也没选微库啊!
yugen:
因printf()之类的函数,运用了半主机形式。运用微库的话,不会运用半主机形式,所以就没有问题。
增加下面代码,就能够运用规范库了:
#pragmaimport(__use_no_semihosting)
_sys_exit(intx)
{
x=x;
}
struct__FILE
{
inthandle;



};

FILE__stdout;
dragonwww:
yugen是高手啊,再讨教一下:
1.何为“半主机形式”?与非半主机形式有何差异?
2.你的这段代码需求放在那个文件里?自己的main函数地点的文件吗?
3.看到代码完成了_sys_exit,那我提示过错的_sys_open()不必完成吗?
请指导,多谢!
yugen:
你说的问题都能够在”RealView?编译东西库和浮点支撑攻略”书中找到,网上有下,我就不仿制了。书有中文的。realview编译器有好几本书,都有中文。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/259773.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部