Chapter0 开发工具链
1. Compiler
ARM 主流编译器(armcc、iar、gcc for arm、LLVM(clang))
2. IDE
IAR Embedded Workbench
-
gitignore
对 IAR Embedded Workbench 文件进行版本控制
$PROJ_DIR$\settings$PROJ_DIR$\Debug\*$PROJ_DIR$\Release\* -
icf文件(链接脚本)
icf主要作用就是定义FLASH存储段地址、RAM存储段地址和堆栈大小。每个芯片开发商都会针对每款芯片来编写一个.icf文件即链接文件。对于基本的应用,这个.icf文件足以满足你的工程需要。但有时也会需要改动,比如当你的项目要添加外部RAM时、修改app存放地址时。都要修改icf。
-
分析程序栈最大深度,调试查看栈占用
在IAR Embedded Workbench中分析和监控堆栈使用
1 在Project>Options>Linker>Advanced中,选中Enable stack usage analysis来使能堆栈使用分析功能
由于堆栈使用分析的结果将会包含在链接器生成的map文件中,需要在Project>Options>Linker> List选项卡中选中Generate Linker map file
2 在tools>Options>Stack选项中勾选Enable graphical stack display and stack usage tracking以启用运行时堆栈使用跟踪
调试时,可通过View>Stack打开Stack窗口,每当执行停止时,C-SPY 会在Stack窗口中更新堆栈的使用情况
-
创建多个工程配置并且切换
在IAR的Workspace窗口顶部的下拉菜单中有两个选项,Debug和Release。
名字和数量可以在菜单栏的Project->Edit Configuration中增删修改
每个选项都对应着一个工程配置(也就是项目名称右击Options里的内容),互相是独立的。
Keil MDK
-
生成bin文件
在工程目录下生成Bin文件夹并且保存bin文件:
fromelf --bin --output=Bin\@L.bin !L -
initialization file 调试文件