OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6319|回复: 7

FW: Keil Mdk5.22 _ C++工程——加载std::map 仿真出现卡死在:BEAB BKPT 0xab

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-12-18
在线时间
1 小时
发表于 2016-12-18 17:14:25 | 显示全部楼层 |阅读模式
2金钱
各位大神,看看有没有解决的办法:
  问题描述:
    在使用keil mdk 5.22, 单片机是 : stm32f217VG. 仿真器:st-link v2.
     调试C++ 工程 代码时候,如果调用std 的map库,在进行map类型 变量定义后,
     编译和烧录都没有问题。
     但是仿真时候就会卡在 “BEAB  BKPT 0xab” (好像是所谓的semihost ),直接烧录也跑不起来。



附上源代码: 请参考,估计大家用407的应该也会出现。
到底 keil mdk 能否使用 std:: map 呢?  是否为 std::map 分配堆栈时候出现问题呢,不太明白std 的细节了。
我在ubuntu 下测试这个 std::map是可以的。

   


1.png

zapplication_cppMain_std_mapNG.zip

682.96 KB, 下载次数: 227

完整工程mdk

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-12-18
在线时间
1 小时
 楼主| 发表于 2016-12-18 17:17:54 | 显示全部楼层
std::map<int,int> stdmap_std;   
如果注释掉这一行就没有问题,LED灯可以交替闪烁,表示程序运行,仿真也OK。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-12-18
在线时间
1 小时
 楼主| 发表于 2016-12-18 23:38:42 | 显示全部楼层
自己顶一下,刚兴趣的可以一起研究一下,现在是不是,st单片机大家用c++开发的比较少  
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2016-12-19 09:47:54 | 显示全部楼层
单片机并不能支持C++那些强大的库,只能支持到很小的一部分,很可能是不支持,或者说不够资源来跑
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-12-18
在线时间
1 小时
 楼主| 发表于 2016-12-19 11:12:01 | 显示全部楼层
在keil 5的 example 里面有 c++的例子,有一个是有 使用std::map 功能的,由于里面的串口使用 PA8,PA9和我的 板子配PB6,PB7的不一样,改了一下,
发现是可以跑的,能够正确的打印 串口发送信息。
里面有个retarget.c ,可能是来解决这个 std库调用底层的问题。 后面研究了在发上来。
/*----------------------------------------------------------------------------
* Name:    Retarget.c
* Purpose: 'Retarget' layer for target-dependent low level functions
* Note(s):
*----------------------------------------------------------------------------
* This file is part of the uVision/ARM development tools.
* This software may only be used under the terms of a valid, current,
* end user licence from KEIL for a compatible version of KEIL software
* development tools. Nothing else gives you the right to use this software.
*
* This software is supplied "AS IS" without warranties of any kind.
*
* Copyright (c) 2012 Keil - An ARM Company. All rights reserved.
*----------------------------------------------------------------------------*/
回复

使用道具 举报

头像被屏蔽

8

主题

95

帖子

0

精华

禁止发言

积分
349
金钱
349
注册时间
2016-12-8
在线时间
88 小时
发表于 2016-12-19 11:26:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2012-11-6
在线时间
32 小时
发表于 2016-12-22 17:03:36 | 显示全部楼层
修改启动文件中堆大小,Heap_Size       EQU     0x00010000,默认值太小,map会用到Heap。
回复

使用道具 举报

16

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
368
金钱
368
注册时间
2019-10-24
在线时间
153 小时
发表于 2022-2-22 11:29:46 | 显示全部楼层
请问楼主,这个关于std:: map冲突问题解决了吗
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 02:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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