makefile与stm32工程皮毛了解

相关概念:

  Makefile的作用:

    告诉make如何编译(compile)和链接(link)程序。编译是将源文件编译成中间代码(linux下为.o文件),链接是指将这些.o文件合成可执行文件。

 

  Makefile的典型规则语法:

  目标<target> : 先决条件<prerequisites>

  <TAB> 命令<commands>

 

Makefile主要包含五项内容:

  1. 显示规则:明确指出目标文件即其依赖文件和命令,来生成一个或多个目标文件。
  2. 隐晦规则:一些常用的默认规则,如”%o:%c”把.c文件编译成.o文件,不需要书写出来,make会自动推导。
  3. 变量的定义:表示一串文本字串,用$(XX)调用,调用$则用“$$“。
  4. 文件指示:引用其他的makefile,等。
  5. 注释 : “#”表示注释,使用#则用”\#”。

注意:

  1. 每个命令前必须有一个tab键(或者使用.RECIPEPREFIX = XX 指定)
  2. 一行命令在一个shell中执行,即不同行分别存在于不同进程中。具体操作参考<make命令编程>
  3. 目标不一定是文件,也可能只是一个标签。这时不得不提到伪目标(.PHONY), ,用于执行一些辅助命令。

    如:       .PHONY : clean   

        clean:

                       rm *.o temp

   当我们显示指明这个目标clean时才会执行。

  4.Makefile最终目标,默认为第一个目标(.DEFAULT_GOAL := XX指定一个目标。或者使用all调用多个目标)

  5.变量中还存在一些自动化变量如”$<”表示第一个依赖文件,”$@”表示当前目标,”$^”表示依赖文件的所有文件

 

以上参照<What is makefile and how dose it work>

若要深入了解建议看<跟我一起学makefile>

 

对于stm32工程:

(i)源程序

(ii).ld ”链接”:作用是链接.o文件生成elf文件。

修改是MEMORY中RAM和FLASH的配置,如

Stm32c8t6:

RAM (RWX) : ORIGIN = 0x20000000 , LENGTH = 20K

FLASH (RX) : ORIGIN = 0x08000000 , LENGTH = 63K

(iii)Makefile:

    主要是三项设置:

    1. 编译器设置CFLAGS
    2. arm-none-eabi-objcopy 将.elf文件转化成.bin文件
    3. st-flash write main.bin 0x8000000’烧录

      参考<how to compile and burn the code to stm32 chip on linux ubuntu>

        其余的便是一些优化选项,指定库文件包含路径以及生成静态库,stm32芯片型号容量设置等。

 

(iv).cfg: “openocd.cfg"

(v) .sh"bash脚本 "

 

以上参考<stm32 primer-stm32 primer lib.php>

 

转载于:https://www.cnblogs.com/ice-creamy/p/9829228.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何上传文件夹到GitHub上(配图详解)

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

cfg桩设备型号_什么是CFG桩?带您看下CFG桩施工工艺及流程,检测项目

一、CFG桩简介CFG(Cement Fly—ash Grave)桩是由水泥、粉煤灰、碎石、石屑或砂和水按一定配合比均匀搅拌形成的高粘结强度桩&#xff0c;和桩间土、褥垫层一起形成复合地基&#xff0c;既能较充分的发挥桩体材料的潜力&#xff0c;又可充分利用天然地基承载力&#xff0c;并能因…

docker与jenkins学习

docker命令&#xff1a; docker create <image-id>docker start <container-id>docker run <image-id> docker create <image-id> docker start <container-id>docker psdocker ps -adocker imagesdocker images –adocker stop <container…

django 修改日期

为什么80%的码农都做不了架构师&#xff1f;>>> http://blog.chedushi.com/archives/1389 auto_now无论是你添加还是修改对象&#xff0c;时间为你添加或者修改的时间。 auto_now_add为添加时的时间&#xff0c;更新对象时不会有变动。 转载于:https://my.oschi…

如何删除GitHub仓库里的文件夹(配图详解)

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

jquery实现截取pc图片_如何优雅的对网页截取长图

苏生不惑第115 篇原创文章&#xff0c;将本公众号设为星标&#xff0c;第一时间看最新文章。最近写文章想截个长图&#xff0c;才发现一直使用的QQ早有这个功能了&#xff0c;这里就整理几个pc上网页长截图的方案。qq滚动截图qq截图应该很多人用过&#xff0c;我平常挂qq也只是…

在Bootstrap开发框架中使用bootstrap-datepicker插件

在基于Boostrap的Web开发中&#xff0c;往往需要录入日期内容&#xff0c;基于Boostrap的插件中&#xff0c;关于日期的录入可以使用bootstrap-datepicker这个非常不错的插件&#xff0c;以替代默认的typedate这种不太友好的日期录入控件&#xff0c;本篇介绍的是我在我的Boost…

STM32 ADC转换实验

摘自&#xff1a;STM32 ADC转换实验 作者&#xff1a;追兮兮 发布时间&#xff1a; 2020-10-29 09:42:24 网址&#xff1a;https://blog.csdn.net/weixin_44234294/article/details/109333307 STM32 ADC 简介 STM32 拥有 1~3 个 ADC&#xff08;STM32F101/102 系列只有 1 个 AD…

ubuntu下搭载LNMP环境,解决 fpm监听失败

为什么80%的码农都做不了架构师&#xff1f;>>> 1.安装mysql sudo apt-get install mysql-server mysql-client 安装过程中要输入root用户的密码。 2.安装nginx sudo apt-get install nginx 2.安装php 1. sudo apt-get install php5-fpm php5-cgi php5-mysql p…

极限与连续知识点总结_高数上知识点期末复习 极限、连续、间断点(一)

点击蓝字关注我们No.1函数分值题型解析1题型解析2tips&#xff1a;为了帮助同学们更好的通过高数期末考试&#xff0c;不挂科&#xff0c;我们最近正在加紧制作《高等数学》上册的期末复习冲刺课程&#xff0c;包含讲解视频和课程讲义。课程即将上线&#xff0c;敬请期待......…

如何使用cmd命令行打开一个文件夹?

explorer D: 转载于:https://www.cnblogs.com/cheungxiongwei/p/9829762.html

数据结构:八大数据结构分类

摘自&#xff1a;数据结构&#xff1a;八大数据结构分类 作者&#xff1a;鄙人薛某 发布时间&#xff1a;2018-09-05 18:23:28 网址&#xff1a;https://blog.csdn.net/yeyazhishang/article/details/82353846 本文目录&#xff1a; 数据结构分类1、数组2、栈3、队列4、链表5、…

汇编语言 -第十一章

第十一章 标志寄存器 一、各标志位说明1、ZF标志*名称&#xff1a;零标志位*位置&#xff1a;第6位*作用&#xff1a;记录相关指令执行后&#xff0c;结果是否为0.如果结果为0&#xff0c;则zf位为1&#xff1b;反之为0.2、PF标志*名称&#xff1a;奇偶标志位*位置&#xff1a;…

三线调速风扇原理_学修电风扇~风机转速慢、调速失灵故障维修。

一、电风扇转速慢转速慢的故障原因有电源电压过低、起动电容器损坏及电动机本身性能不良或轴承润滑不良。对于微电脑控制式电风扇出现转速慢的故障现象&#xff0c;有可能是双向晶闸管驱动电路性能不良造成的。落地式电风扇、台式电风扇及鸿运扇出现此类故障时的检查方法大致相…

数据结构——链式队列解析(C语言版)

摘自&#xff1a;数据结构学习——链式队列解析&#xff08;C语言版&#xff09; 作者&#xff1a;正弦定理 发布时间&#xff1a;2020-11-26 21:07:08 网址&#xff1a;https://blog.csdn.net/chinesekobe/article/details/110203428 数据结构——链队列解析过程和简单代码实现…

ORACLE AUDIT 审计

转自 http://blog.csdn.net/dnnyyq/article/details/4525980 1、什么是审计审计&#xff08;Audit)用于监视用户所执行的数据库操作&#xff0c;并且Oracle会将审计跟踪结果存放到OS文件&#xff08;默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/&#xff09;或数据库&…

中班机器人教室设计方案_奇思妙想一起玩,机器人来了安格利亚东郡生态幼儿园亲子活动...

奇思妙想一起玩机器人总动员亲子活动课程起源有一天午休起床几个小女生正排队梳辫子&#xff0c;因为需要等待&#xff0c;孩子们比较无聊就在看教室的摆件&#xff0c;突然小朋友们就用机器人的语调开始对话&#xff0c;我听到后感觉很有意思也用机器人的语调和他们对话&#…

解决思科认证学员与高校网络及信息安全专业实验限制的解决方案

解决思科认证学员与高校网络及信息安全专业实验限制的解决方案—GNS3VMwareInternet中低端使用公布如下演示录像&#xff1a;&#xff08;于2013/9/2上传&#xff0c;待版主审核后24小时公布&#xff09;持续更新录像位置&#xff1a;http://edu.51cto.com/lecturer/user_id-76…

makefile 完美教程

简介 Makefile 是和 make 命令一起配合使用的&#xff0c;很多大型项目的编译都是通过 Makefile 来组织的,。 我建立工程的方法有以下三点&#xff1a; 1.makefile&#xff1a; 优点&#xff1a;使用非常广泛&#xff0c;通用性强&#xff0c;可跨平台。 缺点&#xff1a;语法比…

数据结构——顺序栈和链式栈的简单实现和解析(C语言版)

摘自&#xff1a;数据结构学习——顺序栈和链式栈的简单实现和解析&#xff08;C语言版&#xff09; 作者&#xff1a;正弦定理 发布时间&#xff1a;2020-11-26 21:26:49 网址&#xff1a;https://blog.csdn.net/chinesekobe/article/details/110205257 数据结构——栈的简单解…