1. 如果你的程序中使用了C++全局变量,那么*不要*使用MicroLIB,否则Keil会说某某Symbol找不到

2. 不使用MicroLIB带来的一个问题是KEIL会使用semihosting SWI完成sys_io(例如printf的时候),我们需要一个retarget.c来禁止semihosting。KEIL提供该文件的模版(包括最小版和完全版,见下文),改改就是了

3. retarget.c也有最小版和完全版;最小版除实现fputc及辅助函数用于printf外,只实现了sys_io中的_sys_close;完全版还实现了_sys_open,_sys_read,_sys_write,等等。如果实现了sys_io中除_sys_close以外的任意一个,那么就必须同时实现其他函数。即,要么最小版,要么完全版,不存在中间版。当使用C++标准库时可能需要完全版:例如使用complex template时就必须使用完全版的retarget.c,因为complex class实现了“<<”和“>>”运算符重载,需要_sys_open等函数。当然我们一般不需要完整的函数内容,只要让编译器看到函数定义就行了。

4. 使用new和delete:参考帮助文件的Libraries and floating point support guide -> The ARM C and C++ libraries -> Stack pointer initialization and heap bounds

一般来说KEIL或厂家(如ST)提供的启动文件已包含该项支持;将汇编启动文件中的heap size项改改就好了。

5. 顺便说下如何动态控制printf的精度(同样用于snprintf,etc):使用%*控制。例如printf("%.*f ", 2, 1.234)

6. 科学记数法打印:%e

Keil for ARM与C++的更多相关文章

  1. KEIL的ARM编译器对RW和ZI段的一个处理

    按照C编译器编译的结果,一般会产生RO段,RW段,ZI段.RO是程序中的指令和常量,RW是程序中的已初始化全局变量,ZI是程序中的未初始化或初始化为零的全局变量. 那么如下的代码 int aaa; i ...

  2. 使用keil判断ARM的冷启动和热启动的方法

    微处理器:LPC2114 编译环境:Keil MDK V4.10 思路: 常把单片机系统的复位分为冷启动和热启动.所谓冷启动,也就是一般所说的上电复位,冷启动后片内外RAM的内容是随机的,通常是0x0 ...

  3. ARM 开发工具 Keil和DS-5的比较。

    http://www.eeboard.com/bbs/thread-25219-1-1.html 如今ARM体系架构的处理器在嵌入式市场上呼风唤雨,从低端的MCU应用到高端的多媒体消费电子,移动设备领 ...

  4. Keil C51 与 ARM 并存方法

    第一:先安装keil C51 V4.01(如果先安装ARM的话还没有试过,应该也是可以的)到文件夹keil C51,运行破解补丁,选择C51版本,RealView MDK Professional进行 ...

  5. Keil C51与Keil ARM共存

    转自:http://blog.chinaunix.net/uid-20734916-id-3988537.html Keil和MDK共存,按照以下步骤:1 先安装 Keil C51,安装目录改为:&q ...

  6. GCC KEIL ARM编译器

    经常用keil,也听说IAR的编译效率很高,原来C51时用proteus,最近proteus8开始支持stm32,所以在研究用keil5+HAL+proteus学习STM32F. 问题:因为prote ...

  7. 【转载】Keil中的USE MicroLib说明

    在keil建立ARM的工程时 其中有一项是选 use MicroLIB 由于对KEIL不是很熟悉,于是就查了查,得到了以下信息: microlib 是缺省 C 库的备选库. 它旨在与需要装入到极少量内 ...

  8. 在keil 4中添加stc系列芯片的方法--【sky原创】

    在keil 4中添加stc系列芯片的方法: 1.从官网下载uv3.cdb的文件网址是:http://www.stcmcu.com/ 2.下载好后把uv3.cdb文件改成STC.cdb:3. 然后将[S ...

  9. KEIL、uVision、RealView、MDK、KEIL C51区别比较

    KEIL uVision,KEIL MDK,KEIL For ARM,RealView MDK,KEIL C51,KEIL C166,KEIL C251 从接触MCS-51单片机开始,我们就知道有一个 ...

随机推荐

  1. POJ 2699 The Maximum Number of Strong Kings (最大流+枚举)

    http://poj.org/problem?id=2699 题意: 一场联赛可以表示成一个完全图,点表示参赛选手,任意两点u, v之间有且仅有一条有向边(u, v)或( v, u),表示u打败v或v ...

  2. 在 if 条件句中使用向量

    上述例子的函数中,都只输入了单一值.如果我们提供一个向量,那么这个函数将产生警告,这是因为 if 语句不能与多值向量共存.check_ _positive(c(1,-1,0))## Warning i ...

  3. 还是 js 替代 vw vh 了

    有个需求是要层叠两张图,就像你现在看到的:整个浏览器和html页面,内层图片要水平居中,等比例与源UI图适配不同设备 本来很简单的使用 vw vh了( 核心代码             top: 13 ...

  4. JavaScript之搜索框

    啧啧啧,又到月末了,时间过的真的好快啊︿( ̄︶ ̄)︿现在没课上,天天宅在寝室就这么三件事:吃饭睡觉打豆豆.真感无所事事,无聊至极!突然好怀念那些上课的日子啊!至少不像现在,生活状态全部都搅乱了:以前可 ...

  5. 雷林鹏分享:Ruby Dir 类和方法

    Ruby Dir 类和方法 Dir 是一个表示用于给出操作系统中目录中的文件名的目录流.Dir 类也拥有与目录相关的操作,比如通配符文件名匹配.改变工作目录等. 类方法 序号方法 & 描述 1 ...

  6. Getting 'The AWS Access Key Id you provided does not exist in our records' error with Amazon MWS

    I upgraded from one version of Amazon MWS (marketplace web service) version https://mws.amazonservic ...

  7. PistgreSQL9.6手册(基础摘录)

    学习目的:基础使用. 能够开发RoR就行. git: https://github.com/postgres-cn/pgdoc-cn 1.2. 架构基础 PostgreSQL使用一种客户端/服务器的模 ...

  8. UVA-11280 Flying to Fredericton (dijkstra)

    题目大意:一张有向图,n个节点,m条边,有边权.求从起点到终点在最多经过s个中间节点(不包括始末点)时的最小权和. 题目分析:因为起点和终点是固定的,只需一次dijkstra打出表dis[u][k], ...

  9. CF 274D Lovely Matrix 拓扑排序,缩点 难度:2

    http://codeforces.com/problemset/problem/274/D 这道题解题思路: 对每一行统计,以小值列作为弧尾,大值列作为弧头,(-1除外,不连弧),对得到的图做拓扑排 ...

  10. cvs的规范以及介绍(转)

    原文链接:http://blog.csdn.net/zlzlei/article/details/9236403 1. CSV的全称是叫Comma Separated Value 2. CSV的MIM ...