【转载】Keil中的USE MicroLib说明

在keil建立ARM的工程时

其中有一项是选 use MicroLIB

由于对KEIL不是很熟悉,于是就查了查,得到了以下信息:

microlib 是缺省 C 库的备选库。 它旨在与需要装入到极少量内存中的深层嵌入式应用程序配合使用。 这些应用程序不在操作系统中运行。

microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,例如,memcpy()

与缺省 C 库之间的差异

microlib 与缺省 C 库之间的主要差异是:

  • microlib 不符合 ISO C 库标准。 不支持某些 ISO 特性,并且其他特性具有的功能也较少。

  • microlib 不符合 IEEE 754 二进制浮点算法标准。
  • microlib 进行了高度优化以使代码变得很小。
  • 无法对区域设置进行配置。 缺省 C 区域设置是唯一可用的区域设置。
  • 不能将 main() 声明为使用参数,并且不能返回内容。
  • 不支持 stdio,但未缓冲的 stdinstdoutstderr 除外。
  • microlib 对 C99 函数提供有限的支持。
  • microlib 不支持操作系统函数。
  • microlib 不支持与位置无关的代码。
  • microlib 不提供互斥锁来防止非线程安全的代码。
  • microlib 不支持宽字符或多字节字符串。
  • 与 stdlib 不同,microlib 不支持可选择的单或双区内存模型。 microlib 只提供双区内存模型,即单独的堆栈和堆区。
  • 可以合理地将 microlib 与 --fpmode=std--fpmode=fast 配合使用。

microlib 中的函数负责:

  • 创建一个可在其中执行 C 程序的环境。 这包括:

    • 创建一个堆栈

    • 创建一个堆(如果需要)
    • 初始化程序所用的库的部分组成内容。
  • 调用 main() 以开始执行程序。

要使用 microlib 构建程序,必须使用命令行选项 :library_type=microlib。 根据需要,编译器、汇编程序或链接器可使用此选项处理不同的文件。 将此选项与链接器配合使用时,将覆盖所有其他选项。

转自:http://blog.sina.com.cn/s/blog_7142d7da01013gub.html

时间: 2024-11-17 22:36:36

【转载】Keil中的USE MicroLib说明的相关文章

keil中的串口调试:

keil中串口的虚拟调试信息在通过View-serial windows-#usart1/2/3/4/debug(printf)可以看到.当然也可以通过虚拟串口VSPD+串口调试助手在外部实现,方法如下: 虚拟 串口使用:步骤 1 下载虚拟串口软件,虚拟2个连接的串口COMA/COMB,这两个串口与PC机的真实物理串口没关系.两边的设置相同 2 打开串口通讯助手,将A分配给串口通讯助手,则B就分配给下面的COMx 2 在MDK中输入命令行或者将下面的做成debug.ini文件加载 MODE CO

KEIL中启动文件详解(汇编语言)

原文在此:http://www.cnblogs.com/mddblog/p/4920063.html 概述 在嵌入式系统中,启动文件是整个系统非常关键的部分,它会进行一些底层的初始化,构建程序运行必要的环境,比如堆栈初始化,变量初始化等.如果启动文件出现错误,则整个系统就跑不起来,因此研究启动文件非常必要. 在keil中,启动文件由汇编代码编写,一般命名为startup_xxx.s,xxx为支持的某种芯片,比如可以是lpc15xx(NXP的LPC15xx系列).MK60D10(飞思卡尔).stm

keil 中的一些设置

option for target 'target 1' 中: 第3选项output: select folder for objects :此选项是选择编译时产生的以希望文件,点击选择路径,不然这些文件就会生成并保存在和项目文件.prov 同个文件下,导致项目文件不好找. 第4选项listing:也是同第3选项同样原理. 第6选项c/c++:在include paths 设置h文件路径,不然编译时会出错找不到h文件. 第9选项 Debug:1:勾选 右边的use  然后选择 要使用的系统 (我

Keil 中 Program Size: Code RO-data RW-data ZI-data 所代表的意思

在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息: Program Size: Code=6320 RO-data=4864 RW-data=44 ZI-data=1636 代表的意思:Code :是程序中代码所占字节大小RO-data :程序中所定义的指令和常量大小 (个人理解 :Read Only)RW-data :程序中已初始化的变量大小 (个人理解”:Read/Write)ZI-Data :程序中未初始化的变量大小 (个人理解 :Zero Initi

[转载]Java中异常的捕获顺序(多个catch)

http://blog.sina.com.cn/s/blog_6b022bc60101cdbv.html [转载]Java中异常的捕获顺序(多个catch) (2012-11-05 09:47:28) 转载▼ 标签: 转载 分类: 转载 原文地址:Java中异常的捕获顺序(多个catch)作者:leesa Java代码 import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething(

转载http中302与301的区别

http://blog.csdn.net/qmhball/article/details/7838989 一.官方说法301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently Moved).302 redirect: 302 代表暂时性转移(Temporarily Moved ). 这是很官方的说法,那么它们的区别到底是什么呢? 二.现实中的差异2.1.对于用户301,302对用户来说没有区别

RW RO ZI ROM keil中的含义

编译的一个ARM的程序,会得到这样的信息: ============================================================================== Code (inc. data) RO Data RW Data ZI Data Debug 2730 194 250 8 96 16068 Grand Totals 2730 194 250 8 96 16068 ELF Image Totals 2730 194 250 8 0 0 ROM T

keil中使用Astyle格式化你的代码的方法2篇合

关于Astyle Astyle 的全称是Artistic Style的简称,是一个开源的源代码格式化工具,可以对C,C++,C#以及Java等编程语言的源代码进行缩进.格式化.美化.Home Page: http://astyle.sourceforge.net/Project Page: http://sourceforge.net/projects/astyle/ 在Keil μVision中集成Astyle(以Keil μVison4为例) ①下载Astyle,解压到任意位置(Astyle

Keil中Memory Model和Code Rom Size说明

源:Keil中Memory Model和Code Rom Size说明 C51中定义变量时如果省略存储器类型,Keil C51编译系统则会按编译模式SMALL.COMPACT和LARGE所规定的默认存储器类型去指定变量的存储区域,无论什么存储模式都可以声明变量在任何的8051存储区范围i,但是把最常用的命令如循环计数器和队列索引放在内部数据区可以显著地提高系统性能.以下介绍一下Keil编译选项Target中的Memory Model和Code Rom Size的设置. Memory Model(