STM32之不使用MicroLIB

151 篇文章 5 订阅 ¥299.90 ¥399.90
本文探讨了在STM32开发中不使用microlib的原因,主要因为其不支持C++。不使用microlib会导致在线调试时遇到问题,因为标准库转向使用Semihosting。Semihosting是一种让目标系统IO请求通过调试器由主机处理的机制,但仅适用于调试阶段。为了解决这个问题,可以通过Keil的Retarget.c文件实现输入输出重定向,避免对Semihosting的依赖。
摘要由CSDN通过智能技术生成

一、microlib介绍

microlib 是缺省 C 库的备选库,功能上不具备某些 ISO C 特性。

microlib 进行了高度优化以使代码变得很小,功能比缺省 C 库少,用于必须在极少量内存环境下运行的深层嵌入式应用程序。

二、不使用microlib的原因

由于microlib不支持C++开发,因此在使用C++开发应用程序时,必须不使用microlib。

三、不使用microlib的问题

但是,当我们取消勾选microlib后,在线调试程序将一直停在中断处。

因为使用微库不会使用Semihosting。取消microlib后,标准库使用Semihosting,则会出现该问题。

四、什么是Semihosting机制

Semihosting是用于ARM目标的一种机制,可将来自应用程序代码的输入/输出请求传送至运行调试器的主机。 例如,使用此机制可以启用 C 库中的函数,如 printf() 和 scanf(),来使用主机的屏幕和键盘,而不是在目标系统上配备屏幕和键盘。这种机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值