keil中micro lib
memcpy()
。
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
。 根据需要,编译器、汇编程序或链接器可使用此选项处理不同的文件。 将此选项与链接器配合使用时,将覆盖所有其他选项。
加入下列代码,再勾选USE_MIcro LIB,使用printf
/* Private function prototypes -----------------------------------------------*/
#ifdef __GNUC__
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
/* Private functions ---------------------------------------------------------*/
/**
* @brief Retargets the C library printf function to the USART.
* @param None
* @retval None
*/
PUTCHAR_PROTOTYPE
{
/* Place your implementation of fputc here */
/* e.g. write a character to the USART */
USART_SendData(EVAL_COM1, (uint8_t) ch);
/* Loop until the end of transmission */
while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)
{
}
return ch;
}
//
//
加入下列代码,不用勾选USEmicrolib,使用printf
#if 1
#pragma import(__use_no_semihosting)
struct __FILE
{
int handle;
};
FILE __stdout;
_sys_exit(int x)
{
x = x;
}
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//Ñ»··¢ËÍ,Ö±µ½·¢ËÍÍê±Ï
USART1->DR = (u8) ch;
return ch;
}
#endif
keil中micro lib相关推荐
- keil中创建lib库,使用lib库
在keil5 MDK 中,为一段代码封装LIB库 首先,创建一个工程,该工程选的芯片型号和原先的工程保持一致. 然后,导入源码,导入的源码不需要添加main.c 或者main()函数入口 lib库的名 ...
- keil C对lib封装库反汇编成C语言,Keil软件“C语言”及“汇编”混编 —— 相关知识整理.doc...
Keil软件"C语言"与"汇编"混编 相关知识整理 用Keil在C中嵌入汇编1 在Keil中嵌入汇编2 介绍直接嵌入汇编代码的方法4 采用汇编可能会有的好处5 ...
- 辅助开发: Keil中使用Aystyle 快速格式化所有代码
辅助开发: Keil中使用Aystyle 快速格式化所有代码 开始 添加菜单到KEIL 我使用的参数 部分参数定义参考 官方参数参考 Usage: Options: Option Files: Dis ...
- KEIL中STM32F4系列使能FPU
操作步骤 1.在KEIL使能FPU,参考下图 2.在KEIL添加FPU的宏定义 3.一些配置宏说明 __TARGET_FPU_VFP // FPU的条件编译配置宏(开和关) -> 配 ...
- 【LVGL】学习笔记--(1)Keil中嵌入式系统移植LVGL
一 LVGL简介 最近emwin用的比较烦躁,同时被LVGL酷炫的界面吸引到了,所以准备换用LVGL试试水. LVGL(轻量级和通用图形库)是一个免费和开源的图形库,它提供了创建嵌入式GUI所需的一切 ...
- 转载:keil中使用Astyle格式化你的代码的方法2篇合
转自:https://blog.csdn.net/STM32F4/article/details/46649353 关于Astyle Astyle 的全称是Artistic Style的简称,是一个开 ...
- Keil中找不到芯片,往Keil中添加不存在的芯片,Keil安装pack文件
Keil中如果找不到自己要使用的芯片,可以使用Keil的"Pack installer"找到目标芯片进行下载安装,但是会很慢,因为有些芯片的Pack本来就很大,可以到几百MB. 所 ...
- Keil C 里面Lib库文件的生成与调用
附件里是制作方法介绍,还有LCD1602的例子,有视频教程,呵呵,自己做的. Keil C里面 lib文件生成方法 包含关系 LCD1602.C里面包含LCD1602.H LCD1602.H的文件格式 ...
- VS2010中添加lib库引用
一.VS2010中添加lib库引用: 1 菜单 项目---> 属性--->配置属性-->链接器---->输入---附加依赖项, 加入库名,如: my_API.lib; ...
最新文章
- Hibernatediscriminator-value用法
- idea springboot热部署无效问题
- android小程序下线,关闭小程序
- jsp内置对象的提交方式
- OpenStack Keystone架构
- Windows 10 Creators Update隐私策略变动一览
- iOS 使用脚本自动化复制target
- java j2se下载_安装JDK(J2SE)
- CVE-2019-11477漏洞详解详玩
- c语言鸽笼原理,技巧丨弄懂抽屉原理
- Vue路由导航报错:NavigationDuplicated: Avoided redundant navigation to current location解决方法
- 抢先入驻皮皮虾APP社区 红利初期第一批操作者绝对有肉吃
- 电大形考作业c语言答案,题目精编国家开放大学电大《管理信息系统》形考网络课作业1-4试题及答案...
- 腾讯云API接口鉴权v3 鉴权失败问题 AuthFailure.SignatureFailure
- 项目经理培训后的一点感概
- 基于FPGA的ASCII码日期转时间戳算法实现
- 【人脸识别】LPP人脸特征提取【含GUI Matlab源码 1491期】
- gazebo的bumper使用
- 设计模式 工厂模式 从卖肉夹馍说起
- 向公司爱康宣传栏投稿:回顾过去,展望未来