当前位置:   article > 正文

STM32之不使用MicroLIB

STM32之不使用MicroLIB

一、microlib介绍

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

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

二、不使用microlib的原因

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

三、不使用microlib的问题

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

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

四、什么是Semihosting机制

Semihosting是用于ARM目标的一种机制,可将来自应用程序代码的输入/输出请求传送至运行调试器的主机。 例如,使用此机制可以启用 C 库中的函数,如 printf() 和 scanf(),来使用主机的屏幕和键盘,而不是在目标系统上配备屏幕和键盘。这种机制很有用,因为开发时使用的硬件通常没有最终系统的所有输入和输出设备。 半主机可让主机来提供这些设备。

当目标开发板上电运行之后,执行到请求访问输入/输出设备指令时,产生特定中断号的软件中断SWI, 与开发板相连的调试器会先截获目标板SWI请求,由于开发板程序中也可能存在用户自定义软件中断, 为了区分二者&#x

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/457341
推荐阅读
相关标签
  

闽ICP备14008679号