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还是很不错 ...
随机推荐
- [bzoj2806][Ctsc2012]Cheat(后缀自动机(SAM)+二分答案+单调队列优化dp)
偷懒直接把bzoj的网页内容ctrlcv过来了 2806: [Ctsc2012]Cheat Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1943 ...
- 使用requests+BeaBeautiful Soup爬取妹子图图片
1. Requests:让 HTTP 服务人类 Requests 继承了urllib2的所有特性.Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定 ...
- 用PHP写一个最简单的解释器Part4(写一个最简单的脚本语言)
好吧!我承认我想标题党了.大家对解释器的吸引,绝对没有自己动手写一个脚本语言更有吸引力.不过如果看到标题过来的,可能也是 我承认,之前收藏的减肥视频,我都是这样对待他们的. 不过我还是相信很多程序猿o ...
- IDEA 2018集成MyBatis Generator 插件 详解
1.修改maven的pom文件 只需要将如下依赖添加到pom.xml文件中即可.(注意此处是以plugin的方式,放在<plugins> </plugins>中间即可) < ...
- Mysql学习总结(43)——MySQL主从复制详细配置
环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6.26.tar.gz 主节点IP:192.168.1.205 主机名:edu-mysql ...
- javaWeb学习之 Filter过滤器----https://www.cnblogs.com/xdp-gacl/p/3948353.html
https://www.cnblogs.com/xdp-gacl/p/3948353.html
- Spark 静态内存管理
作者编辑:杜晓蝶,王玮,任泽 Spark 静态内存管理详解 一. 内容简介 spark从1.6开始引入了动态内存管理模式,即执行内存和存储内存之间可以互相抢占.spark提供两种内存分配模式,即:静态 ...
- acm 一年总结
首先是大一的一段简短历史,和其他人不太一样,刚上大一的我等于是刚刚接触电脑,开始下载程序啦,安装系统了,电脑出个小问题啦自己都不会解决,然后大一还开了一门叫做c语言的课程,顿时傻逼了,当时也不用功,大 ...
- boot简介
目录 1:bootloader介绍2:如何启动一个机器3:工具 Bootloader介绍 MTK的bootloader 主要分为Pre-loader, LK. Pre-loader: 初始化PLL,U ...
- 【IntelliJ】IntelliJ IDEA常用设置及快捷键以及自定义Live templates
IntelliJ IDEA是一款非常优秀的JAVA编辑器,初学都可会对其中的一些做法感到很别扭,刚开始用的时候我也感到很不习惯,在参考了网上一些文章后在这里把我的一些经验写出来,希望初学者能快速适应它 ...