历史上的今天
今天是:2025年05月29日(星期四)
2018年05月29日 | KeilMDK配置项中Use MicroLIB是干什么的
2018-05-29 来源:eefocus
在Keil MDK建立STM32的工程时,其中有一项是选 use MicroLIB
由于对KEIL不是很熟悉,于是就查了查,得到了以下信息:
microlib 是缺省 C 库的备选库。 它旨在与需要装入到极少量内存中的深层嵌入式应用程序配合使用。 这些应用程序不在操作系统中运行。
microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,例如,memcpy()。
与缺省 C 库之间的差异
microlib 与缺省 C 库之间的主要差异是:
microlib 不符合 ISO C 库标准。 不支持某些 ISO 特性,并且其他特性具有的功能也较少。
microlib 不符合 IEEE 754 二进制浮点算法标准。
microlib 进行了高度优化以使代码变得很小。
无法对区域设置进行配置。 缺省 C 区域设置是唯一可用的区域设置。
不能将 main() 声明为使用参数,并且不能返回内容。
不支持 stdio,但未缓冲的 stdin、stdout 和 stderr 除外。
microlib 对 C99 函数提供有限的支持。
microlib 不支持操作系统函数。
microlib 不支持与位置无关的代码。
microlib 不提供互斥锁来防止非线程安全的代码。
microlib 不支持宽字符或多字节字符串。
与 stdlib 不同,microlib 不支持可选择的单或双区内存模型。 microlib 只提供双区内存模型,即单独的堆栈和堆区。
可以合理地将 microlib 与 --fpmode=std 或 --fpmode=fast 配合使用。
microlib 中的函数负责:
创建一个可在其中执行 C 程序的环境。 这包括:
创建一个堆栈
创建一个堆(如果需要)
初始化程序所用的库的部分组成内容。
调用 main() 以开始执行程序。
要使用 microlib 构建程序,必须使用命令行选项 ??library_type=microlib。 根据需要,编译器、汇编程序或链接器可使用此选项处理不同的文件。 将此选项与链接器配合使用时,将覆盖所有其他选项。
史海拾趣
|
wince5.0的hpc下试过: 1. int hotKeyID = GlobalAddAtom(L\"myHotKey\"); ret = RegisterHotKey(hwnd, hotKeyID, (UINT)NULL, VK_XXKey); 2. ret = RegisterHotKey(hwnd, 1801 ...… 查看全部问答> |
|
1.这个9325屏用的挺好.但是在RTX中调用初始化,会停在汇编.下面这个位置 void LCD_Clear(u16 Color) { u32 index = 0; // LCD_SetCursor(0x00, 0x013F); LCD_SetCursor(0x00, 0x00);   ...… 查看全部问答> |
|
#include \"io430.h\" void Key_init(void) { // P1REN |= BIT3; //打开上拉,电路板上没有上拉电阻,触发边沿是从高电平到低电平 P1IES |= BIT3; //选择触发边沿,下降沿触发 P1IE |= BIT3; //打开P1.3的中断 &n ...… 查看全部问答> |
|
EEWORLD大学堂----解析Atmel 8位AVR的关键优势 解析Atmel 8位AVR的关键优势:https://training.eeworld.com.cn/course/36主要优势有:易用性、CPU性能、应用性能、8位MCU的静态功耗更佳。?从易用性、低功耗和高度集成的角度来看,Atmel?AVR?8位和32位微控制器作为对Atmel?ARM微控制器和微处理器 ...… 查看全部问答> |
|
raw_queue_create 为什么没有队列中元素的大小?我现在在做USB转CAN。 打算开一个链表,。链表元素是一个我自己定的结构体,结构体长度为12字节。 打算这个列表容纳元素个数是1000个元素、 另外,STM32CUBEMX的USB协议栈中断协议栈,在 ...… 查看全部问答> |




