Keil和IAR——使用笔记
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——使用笔记的更多相关文章
- 使用powershell批量添加Keil和IAR的头文件路径
在Keil和IAR的工程中,为了使文件结构清晰,通常会设置很多的子文件夹,然后将头文件和源文件放在不同的子文件夹中,这样就需要手动添加这些头文件夹的路径.当工程结构非常复杂时,文件夹的数量就非常多,特 ...
- ARM 编译工具keil 和 IAR 命令行编译和下载
目的 不管是Keil还是IAR对代码补全,高亮等编辑功能支持的不是很好,虽然现在的Keil 5.25对界面的支持好了很多,但是很多人还是青睐于第三方的编辑器,命令行的编译方式可以让我们在使用第三方编辑 ...
- STCubeMX软件新建Keil和IAR工程使用步骤:
STCubeMX软件新建Keil和IAR工程使用步骤:首先是软件下载(也可在我们的百度云下载):1.STCubeMX下载地址: http://www.stmicroelectronics.co ...
- strtok在keil中使用小笔记及字符串转换为多个浮点数的方法
在pc上面使用这个字符串函数,是没有问题的,但是我在keil中结合rtos来处理字符串的时候,比如char *s = "1.01313;17.2609;17.4875";那么就只能 ...
- 使用printf函数实现串口信息打印——设置IAR和Keil的Options
在Keil和IAR中都可以使用printf函数,但两者设置的方法不一样.以下分别是IAR和Keil的设置. 下面是Keil的设置. 选中Options--->Target--->Code ...
- 用Eclipse替代Keil&IAR来开发ARM应用(升级版)
Eclipse GNU ARM Plugin 2014/7/16 作者 kiya 几个月前写了一篇<),想自己丰衣足食的参考我的上一篇文章,以及GNU ARM的官网. 用Eclipse替代Kei ...
- 嵌入式学习笔记(综合提高篇 第一章) -- 利用串口点亮/关闭LED灯
1 前言 从踏入嵌入式行业到现在已经过去了4年多,参与开发过的产品不少,有交换机.光端机以及光纤收发器,停车场出入缴费系统,二维码扫码枪,智能指纹锁以及数字IC芯片开发等; 涉及产品中中既有 ...
- 韦东山yy公开课笔记(1)--各种杂的问题
1,第四期的智能猫眼会有打电话和发短信的功能吗? 答:会有打电话功能,硬件上支持打电话就会支持发短信,只是软件上是否实现发短信现在未定.因为短信延迟太严重,不是可靠的. 2,请问关于makefil ...
- IAR FOR ARM 各版本,需要的大家可以收藏了
原创,原帖地址是在阿莫论坛:http://www.amobbs.com/thread-5400051-1-1.html,这里也在博客贴上来供大家参考. 用过Keil和IAR,个人感觉是IAR还是很不错 ...
随机推荐
- cssrefresh.js-CSS文件自动刷新
一.如何使用cssrefresh.js 使用很简单,类似下面的代码: <head> <link rel="stylesheet" type="text/ ...
- js 实现弹力球效果
1.html代码: <div id='imgid'> <img src="img/5.png"> </div> 2.js代码: imgobj=d ...
- Linux网络配置出现的问题
网络连接 : 选择桥接模式进入字符界面后,管理员登入后 ifconfig显示eth0和ol,但是不显示静态IP地址,即无inet.地址.广播.掩码 解决方案: 1.使用sudo dhclient e ...
- Centos7配置ThinkPHP5.0完整过程(一)
在Centos中配置PHP服务器环境,首先要安装Apache的http服务,然后安装php解析环境,最后再配置ThinkPHP5.0. 首先安装HTTP sudo yum install httpd ...
- VIM命令大全(图+文)
在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...
- django-3 admin开启后台配置并展示表内容
设置了superuser 之后,可以在run server 后, 通过浏览器访问后台,进行界面配置. 1. python manage.py creatersuperuser 此命令在manage.p ...
- python模糊匹配之fuzzywuzzy
fuzzywyzzy 是python下一个模糊匹配的模块.首先要安装fuzzywuzzy 示例: from fuzzywuzzy import fuzz from fuzzywuzzy import ...
- 九度oj 题目1055:数组逆置
题目1055:数组逆置 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8225 解决:3932 题目描述: 输入一个字符串,长度小于等于200,然后将数组逆置输出. 输入: 测试数据有多组 ...
- Light oj-1002 - Country Roads,迪杰斯特拉变形,不错不错~~
1002 - Co ...
- CodeForces - 425E Sereja and Sets 题解
题目大意: 我们有一个集合 S,其中包含了 m 个不完全相同的区间[l1,r1],[l2,r2]…[lm,rm] (1≤li≤ri≤n,li,ri 都为整数). 定义 f(S)=k,表示集合 S 中能 ...