概念解释—工具链是什么

  • 工具链的字面意思
  • CMSIS支持的工具链

本文搬运自博客:https://www.cnblogs.com/lvdongjie/p/6835048.html

工具链的字面意思

程序在进行编译的时候,会经历一系列环节,最终变成存放在内存中的可以被执行的程序。工具就是用来完成每一环节的任务。而工具链,首先代表一系列的工具,更进一步,这一系列工具的使用依赖特定顺序的,比如binutils的使用一定是在gcc编译器之后的。

以GCC为例,代码编译会经历四个环节:
预处理–编译–汇编–链接
1.预处理:处理头文件、宏定义、条件编译等
2.编译:代码检查,将源代码转换成汇编.s文件
3.汇编:将汇编文件转换成可以重定位的().o目标文件
4.链接:将所有目标文件和数据组合到单个文件中,这个文件可以被加载到内存中执行。

完成这一系列的环节,需要一系列的工具,其中最核心的编译器gcc和链接器ld。为了简化繁琐的操作,GNU推出了一个binutils,即二进制工具包,集成了所有操作二进制文件的工具。

CMSIS支持的工具链

CMSIS支持目前嵌入式开发的三大主流工具链,即ARM ReakView(arm-cc)、IAR EWARM(iccarm)及GNU工具链(gcc)。

概念解释--工具链是什么?相关推荐

  1. 【嵌入式系统开发】学习笔记四:嵌入式开发的基本概念与工具链

    提示:本文内容参考慕课课程:<ARM微控制器与嵌入式系统> 嵌入式开发的基本概念与工具链 前言 一.电路板 1.开发板:EVB(Evaluation board) 2.最小系统板 二.开发 ...

  2. 《我学区块链》—— 二、一些概念和工具

    二.一些概念和工具 1.一些概念 区块链 区块链是目前大火的比特币的一种底层技术,是利用块链式数据结构来验证与存储数据.利用分布式节点共识算法来生成和更新数据.利用密码学的方式保证数据传输和访问的安全 ...

  3. 《Linux From Scratch》第二部分:准备构建 第五章:构建临时文件系统- 5.2 工具链技术备注...

    本节解释总体构建方法之中的某些基本原理和技术细节.并不需要立即理解本节中的所有问题.在进行实际构建的过程中,绝大部分的信息将会变得愈加清晰.在该过程中可随时查阅本小节的内容. 第五章的总体目标是生成一 ...

  4. python函数解读_通过7个Python函数来解释区块链

    我想对于那里的很多人来说,区块链就是这种现象,很难不让你头脑发热.我开始观看视频和阅读文章,但对我个人而言,直到我编写自己的简单区块链,我才真正理解它是什么以及它的潜在应用价值. 我对区块链的看法是它 ...

  5. ARM-LINUX-GCC交叉编译工具链必知必会

    一.一些需要知道的概念 在正式谈论交叉编译工具ARM-LINUX-GCC前,我想有必要明确两个非常基本的概念. 1.什么是交叉编译,什么是交叉编译工具链:https://www.crifan.com/ ...

  6. 交叉编译知识解析(一) —— 交叉编译和交叉工具链

    一.交叉编译简介 1.什么是交叉编译 1.1 本地编译 解释什么是交叉编译之前,先要明白一个概念:本地编译 我们之前常见的软件开发,都是属于本地编译:在当前的PC下,x86的CPU下,直接编译出来程序 ...

  7. 必备的DevOps工具链大盘点

    来源 | https://www.aisoutu.com/a/25434 本篇文章中将介绍一些能够帮助你实现 DevOps 目标的核心技术类别和具体技术. 1 关于 DevOps 及其工具 关于 De ...

  8. linux mipi驱动分析_寒武纪社招内推数字IC设计、DSI驱动、软件架构、产品经理、芯片架构、工具链开发、深度学习、FAE工程师...

    点击上方蓝字关注我吧! 为什么内推更靠谱?内推是基于人脉关系链的推荐,其背后有一定的信用背书,靠谱的人推荐的人相对也会比较靠谱,所以企业一般职位都是从内部开始分享的,相较于自己海投简历,内推的效率和成 ...

  9. 函数计算工具链新成员 —— Fun Local 发布啦

    刚刚,我们发布了函数计算工具链的新成员,Fun Local.欢迎大家使用! 如果你还不了解 Fun 是什么,我们来简单解释下. Fun 是什么 Fun 是 have Fun with Serverle ...

最新文章

  1. element的多级选中_element-ui(Vue.js) 我在做二级select联动时选中值是循环的value怎么解?...
  2. LeetCode Add Two Numbers II(栈)
  3. wxWidgets:wxKeyEvent类用法
  4. nginx开启core dump文件
  5. P6620 [省选联考 2020 A 卷] 组合数问题(斯特林数、下降幂)
  6. 【转】Microsoft Azure存储服务:存储账户****
  7. mysql_unbuffered_query pdo_php中mysql操作的buffer知识
  8. 从现在开始,争取记录每天所学到的、所感受到的、所遇见到的点点滴滴!
  9. opencv-python 无法显示图片
  10. 通过图像的指针读取图像
  11. Ubuntu16.04中好用的软件(持续更新)
  12. SAP 中英文转换-英转中
  13. html背景图片被白色覆盖,html – CSS背景图片淡出白色
  14. java中的set_java中的set是什么意思
  15. 有没有免费压缩视频的软件?压缩视频其实很简单
  16. 结构化数据,半结构化数据,非结构化数据非区别和示例
  17. APS生产排单软件模拟排程功能
  18. 股票、期货、期权的差异
  19. vb 和vb.net的区别
  20. eclipse的使用简介

热门文章

  1. 开发过程中 勘误表errata注意事项
  2. PDF有权限密码怎么办?
  3. mgetnx redis_Redis几乎所有命令都在这了,还说你不会?
  4. 洛谷P1638 逛画展
  5. 开源动物园一日游!技术圈的这些“飞禽走兽”你认识多少?
  6. 按键精灵大漠插件使用基础练习入门代码
  7. 计算机网络——计算机网络体系结构-计算机网络概述(课程笔记)
  8. 真核生物 18S rRNA
  9. c# 刻度:毫米 英寸 像素转换
  10. 狂神学习系列11:SpringBoot