1. 几个宏的定义

Keil和IAR均用到以下三种宏定义,分别是:
USE_STDPERIPH_DRIVER——表示使用ST提供的标准外设固件库;
STM32F40_41xxx——作为芯片的判断;
VECT_TAB_SRAM——中断向量表定位在CPU内部RAM;

2.批处理文件*.bat的使用
CopyHex_Flash.bat内容为:copy Flash\Obj\output.hex ..\out(mdk).hex
工程文件project.uvproj或者project.eww所在的路径是批处理文件中路径的依据。

3.调试模式
STM32仅支持SWD模式;

4.printf打印函数的使用
Keil中,在Options的Target页面,选中"Use MicroLIB";
IAR中,在Options\General Options\Library Configuation的Library里,选择"Full";
原因是:
我又从手册上找到了以下描述:
“在IAR中所有的输入/输出函数仅调用一个小型初等函数,一个函数集完成一个规定的任务。例如,__open函数用于打开文件,__write函数用于字符输出等。
注意:仅当运行库配置为full时才能支持文件输入\输出功能,即只有允许了配置符号__DLIB_FILE_DESCRIPTOR时运行库才支持文件输入\输出功能操作,否则不能使用带有“FILE *”参数的函数。
如果连接库时采用XLINK选项With I/O emulation modules,将自动链接C-SPY调试器中底层I/O函数以便实现交互调试。”
链接:http://www.amobbs.com/archiver/tid-3215678.html

5.IAR中"Use CMSIS"选项
选中"Use CMSIS"表示包含DSP_Lib所涉及的头文件,其路径为\Libraries\CMSIS\Include;
而在Options\C_C++ Compiler\Preprocessor页面内,已经填写了$PROJ_DIR$\..\..\Libraries\CMSIS\Include;
因此为避免重复,这里就不需要再选中“Use CMSIS";

6. 生成Map文件
Options\Linker\List页面的"Generate linker mpa file";表示生成map文件,方便查看
ROM,RAM占用大小;函数和变量定位位置,函数大小等信息;

7. 在IAR的Options中修改堆和栈大小
project---options---Linker---Config---Edit,修改CSTACK/HEAP的值;

8. Error[Li006]: duplicate definitions for "PendSV_Handler"

这个函数在多个地方定义了。
解决方法:
屏蔽其中一个地方即可;

9. 在A.c中定义的变量,若想在B.c中使用;

步骤一:
在A.c中定义该变量,可赋初始值;
u8 flag1ms = 0;
u8 flag4ms = 0;
u8 error = 0;
步骤二:
extern u8 flag1ms;
extern u8 flag4ms;
extern u8 error;

10. warning: #1035-D: single-precision operand implicitly converted to double-precision

此警告来源于没有在浮点数后加f,例如应使用0.123f,而不是0.123。

11. #define Conn(x,y) x##y

x##y表示x连接y,举例说明:
int n = Conn(123,456); 结果就是n = 123456;
char* str = Conn("abc","def"); 结果就是 str = "abcdef";

#define ToString(x) #x
#x就是给x加上双引号,举例说明:
char* str = ToString(1234); 结果是 str = "1234";

12. 的

Keil和IAR——使用笔记的更多相关文章

  1. 使用powershell批量添加Keil和IAR的头文件路径

    在Keil和IAR的工程中,为了使文件结构清晰,通常会设置很多的子文件夹,然后将头文件和源文件放在不同的子文件夹中,这样就需要手动添加这些头文件夹的路径.当工程结构非常复杂时,文件夹的数量就非常多,特 ...

  2. ARM 编译工具keil 和 IAR 命令行编译和下载

    目的 不管是Keil还是IAR对代码补全,高亮等编辑功能支持的不是很好,虽然现在的Keil 5.25对界面的支持好了很多,但是很多人还是青睐于第三方的编辑器,命令行的编译方式可以让我们在使用第三方编辑 ...

  3. STCubeMX软件新建Keil和IAR工程使用步骤:

    STCubeMX软件新建Keil和IAR工程使用步骤:首先是软件下载(也可在我们的百度云下载):1.STCubeMX下载地址:    http://www.stmicroelectronics.co ...

  4. strtok在keil中使用小笔记及字符串转换为多个浮点数的方法

    在pc上面使用这个字符串函数,是没有问题的,但是我在keil中结合rtos来处理字符串的时候,比如char *s = "1.01313;17.2609;17.4875";那么就只能 ...

  5. 使用printf函数实现串口信息打印——设置IAR和Keil的Options

    在Keil和IAR中都可以使用printf函数,但两者设置的方法不一样.以下分别是IAR和Keil的设置. 下面是Keil的设置. 选中Options--->Target--->Code ...

  6. 用Eclipse替代Keil&IAR来开发ARM应用(升级版)

    Eclipse GNU ARM Plugin 2014/7/16 作者 kiya 几个月前写了一篇<),想自己丰衣足食的参考我的上一篇文章,以及GNU ARM的官网. 用Eclipse替代Kei ...

  7. 嵌入式学习笔记(综合提高篇 第一章) -- 利用串口点亮/关闭LED灯

    1      前言 从踏入嵌入式行业到现在已经过去了4年多,参与开发过的产品不少,有交换机.光端机以及光纤收发器,停车场出入缴费系统,二维码扫码枪,智能指纹锁以及数字IC芯片开发等; 涉及产品中中既有 ...

  8. 韦东山yy公开课笔记(1)--各种杂的问题

    1,第四期的智能猫眼会有打电话和发短信的功能吗?   答:会有打电话功能,硬件上支持打电话就会支持发短信,只是软件上是否实现发短信现在未定.因为短信延迟太严重,不是可靠的. 2,请问关于makefil ...

  9. IAR FOR ARM 各版本,需要的大家可以收藏了

    原创,原帖地址是在阿莫论坛:http://www.amobbs.com/thread-5400051-1-1.html,这里也在博客贴上来供大家参考. 用过Keil和IAR,个人感觉是IAR还是很不错 ...

随机推荐

  1. 笔试算法题(35):最长递增子序列 & 判定一个字符串是否可由另一个字符串旋转得到

    出题:求数组中最长递增子序列的长度(递增子序列的元素可以不相连): 分析: 解法1:应用DP之前需要确定当前问题是否具有无后效性,也就是每个状态都是对之前状态的一个总结,之后的状态仅会受到前一个状态的 ...

  2. MapReduce实例——查询缺失扑克牌

    问题: 解决: 首先分为两个过程,Map过程将<=10的牌去掉,然后只针对于>10的牌进行分类,Reduce过程,将Map传过来的键值对进行统计,然后计算出少于3张牌的的花色 1.代码 1 ...

  3. Python 迭代器-生成器-面向过程编程

    上节课复习:1. 函数的递归调用 在调用一个函数的过程中又直接或者间接地调用了函数本身称之为函数的递归 函数的递归调用有两个明确的阶段: 1. 回溯 一层一层地调用本身 注意: 1.每一次调用问题的规 ...

  4. assert.throws()函数详解

    assert.throws(block[, error][, message]) Node.js FS模块方法速查 期望 block 函数抛出一个错误. 如果指定 error,它可以是一个构造函数.正 ...

  5. Numpy第一课

    import numpy as np a = np.array([1,2,3]) print(a) # [1 2 3] a2 = np.array([[1, 2], [3, 4]]) print('a ...

  6. [luoguP2957] [USACO09OCT]谷仓里的回声Barn Echoes(Hash)

    传送门 团队里的hash水题,数据小的不用hash都能过.. 也就是前缀hash,后缀hash,再比较一下就行. ——代码 #include <cstdio> #include <c ...

  7. noip模拟赛 集合

    分析:感觉像是贪心,再看数据范围这么大,肯定是贪心没错.但是要怎么贪呢?主要的思想是让每次往上加的数尽量多,肯定要先把0分裂,如果能正好一起跳到最终状态就好.举个例子:5,3,2,1,最大值比次大值大 ...

  8. [NOIP2007] 提高组 洛谷P1098 字符串的展开

    题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母获数 ...

  9. Linux下汇编语言学习笔记24 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  10. Toast自定义

    Toast toast=new Toast(MainActivity.this); toast.setView(getLayoutInflater().inflate(R.layout.toast,n ...