当前位置: 首页 > wzjs >正文

杭州高瑞网站建设seo网站优化流程

杭州高瑞网站建设,seo网站优化流程,东阳市城建设局网站,呼市网站设计vscode cmake ninja gcc 搭建MCU开发环境 文章目录 vscode cmake ninja gcc 搭建MCU开发环境1. 前言2. 工具安装及介绍2.1 gcc2.1.1 gcc 介绍2.1.2 gcc 下载及安装 2.2 ninja2.2.1 ninja 介绍2.2 ninja 安装 2.3 cmake2.3.1 cmake 介绍2.3.2 cmake 安装 2.4 VScode 3. 上手…

vscode + cmake + ninja+ gcc 搭建MCU开发环境

文章目录

  • vscode + cmake + ninja+ gcc 搭建MCU开发环境
    • 1. 前言
    • 2. 工具安装及介绍
      • 2.1 gcc
        • 2.1.1 gcc 介绍
        • 2.1.2 gcc 下载及安装
      • 2.2 ninja
        • 2.2.1 ninja 介绍
        • 2.2 ninja 安装
      • 2.3 cmake
        • 2.3.1 cmake 介绍
        • 2.3.2 cmake 安装
      • 2.4 VScode
    • 3. 上手体验
    • 4. 总结

1. 前言

接触过 MCU 开发的同学基本上对于 Keil、IAR 这一类的集成IDE 软件并不陌生。

使用这类软件好处当然显而易见:快速上手,一键编译,一键下载,一键仿真运行等等,大家只需将注意力焦注于如何编写好用且优雅的功能代码即可,至于代码是如何编译,如何生成bin文件完全不用关系。

那么使用这类软件有什么坏处吗?为什么需要去研究另外一些编译方式呢?直接用不香吗?这样做肯定是有原因的!使用上述IDE存在如下问题:

  1. 正版需要License!尽管网上破解教程一大把,破解也很简单,甚至清楚的人都知道,这个破解软件大概率还是官方提供的~,因此个人使用没有问题,但是如果你是公司使用,公司小规模的时候没人管你,等你业务做大了,公司体量做大了,就开始有人来查水表了,毕竟这个时候由于项目周期、进度等等一系列因素,临时换炮肯定来不及,那购买License的概率就大幅提高了

  2. 不具备跨平台属性,此类 IDE 基本都是只有 windows 版本,但是作为嵌入式开发的,又有几个人能避免 linux 这个开发环境的? 类似 CI 这种通常部署在 linux 环境上,不可避免代码要在 linux 上能编起来,甚至能在 linux 上直接开发

  3. “效率较低",当然这需要打一个双引号,因为这是相对的,开发软件发展至今,传统的这种 IDE 相对于近几年发展出来的主力,类似于VScode 这类开发软件,传统IDE界面过于朴素,复杂代码跳转等都不是很方便,且Vscode 支持大量插件,甚至AI辅助编码,开发的时候该选哪个不用多说了

那么本文将详细描述如何采用 vscode + cmake + ninja + gcc 搭建 MCU 的开发环境,学习一下另外一种开发 MCU 的新方式!

2. 工具安装及介绍

2.1 gcc

2.1.1 gcc 介绍

准确来说应该是 gcc-arm-none-eabi

使用 keil 的时候,keilarm 公司开发的一款集成上位机图形化编辑软件,点击某些按钮之后,其底下也就是执行对应的指令,调用相关编译器进行编译罢了,而 keil 调用的编译器叫做 armcc,这是 arm 自家开发的,不开源,因此需要征收 license 费用。gccarmcc 一样是一种编译器,干同样的是,但是 gcc 开源,因此可以免费使用。

gcc 是一种编译器,主要用来编译,比如 linux 系统也是使用 gcc 进行编译。gcc 会根据不同的处理器架构有不同的 gcc 版本,我们需要根据可执行程序执行所在的cpu架构平台选择对应版本的 gcc

举个例子:在 linux 上编译出用于在 linux 上执行的可执行程序使用 gcc 版本 与 在 linux 上编译出用于在 mcu 上执行的可执行程序的 gcc 版本就不一样,不同的 gcc 版本对应可执行程序所运行的 cpu 处理器架构的不同。

上述讲到的是,我们需要根据可执行程序(即编译产物)执行所在的cpu平台架构选择对应版本的 gcc,但是在 我们的电脑上可以下载每一个版本的 gcc ,并进行编译,只是编译出来的产物需要放到对应的cpu架构平台才能执行而已!【补充:当然需要根据电脑的系统(Windows or Linux or MAC)选择下载对应系统版本的】

同样的,对于 mcu 这类处理器不具备运行 gcc 进行编译的能力,因此需要借助电脑先对源码执行编译,生产可以在 mcu 平台执行的可执行程序,也即 bin 文件,之后再将此 bin 文件下载传输到 mcu 内运行。因此对应可以编译出在mcu平台运行的可执行程序的编译器叫做 交叉编译器此编译器在windows 或 Linux 或 Mac 上运行,进行代码编译,产物在 mcu 上运行。

2.1.2 gcc 下载及安装

gcc 可从官网上直接下载:gcc-arm-none-eabi-10.3-2021.10-win32.zip

在这里插入图片描述选择自己对应的系统版本的 gcc 即可,像windows 如果下载的是可执行程序,直接安装就行,如果下载的是 zip,解压后将解压之后的 bin 文件夹目录下的路径【注意是arm-none-eabi-gcc所在的路径】 添加到系统环境变量,linux、mac同理,关于如何添加环境变量可自行上网查阅。

安装成功之后,重新打开一个命令行窗口或 bash,执行 arm-none-eabi-gcc --version 可以查看到对应版本则说明安装成功。

在这里插入图片描述

⚠️ 不同 gcc 版本编译出来的bin文件大小和内容会有些许差异,因此多人协同开发时,建议采用同一版本!⚠️

2.2 ninja

2.2.1 ninja 介绍

ninja 是 google 公司开发的一款构建系统,一款小巧的专注于编译速度而生从构建系统!
在这里插入图片描述
为什么 Google 要开发这么个东西呢?因为 make 太慢了!

对于小型系统体验不到,当工程比较大的时候,你执行下 make 指令,重新构建+编译等个半小时,你能受得了?因此 Google 的大佬开发了 ninja,它功能和 make 一样,但是比 make 快,它的优点就是:快!

2.2 ninja 安装

ninja 在 github 上直接开源,下载地址:ninja-github
在这里插入图片描述
根据自己的电脑系统选择对应的平台的压缩包即可。

下载完成之后解压到某个目录,之后将对应目录添加到环境变量,同样怎么添加环境变量自行上网查阅。

在这里插入图片描述

环境变量添加好之后,重新打开一个新的命令行终端或者bash,执行 ninja --version 查看是否安装成功。

在这里插入图片描述

2.3 cmake

2.3.1 cmake 介绍

make 工具需要依赖 makefile 文件进行构建,而 ninja 同样也依赖 build.ninja 文件。

makefile 的语法已经比较晦涩了,感兴趣可以看我之前写过的一篇博文 《Makefile入门到精通》,虽然晦涩难懂,但是多啃啃还是能啃下去,而 ninja 语法那就是天书,人家设计的时候可能也本没想着让大家去自行书写吧,反正我是没写过~

在这里插入图片描述

聪明的大佬们总会想办法给自己偷懒减负,因此写个软件直接生成这复杂的 build.ninja 描述文件不就好了,语法再弄的简单点,容易学一点,剩下的就剩解bug了~,因此就是 cmake 的主场了。

cmake 依赖于 CMakeLists.txt 文件,简单的功能比较好懂的,它不仅能直接生成 makefile,之后调用make进行编译;也能生成 build.ninja 之后调用 ninja 进行编译。且 cmake 工具同样具备跨平台属性!

具体cmake的语法在这就不多叙述了,感兴趣可以自行上网查阅,嗯,你必须感兴趣的…

2.3.2 cmake 安装

直接去官网下载最新版即可:cmake

在这里插入图片描述
同样根据自己系统进行选择,下载源文件和或者安装镜像都行,同样的,下载安装镜像的时候勾选自动添加到环境变量下载源文件,解压之后记得添加对应目录到环境变量!

安装好之后,重新打开一个命令行窗口或bash窗口,执行 cmake --version 确认是否ok
在这里插入图片描述

2.4 VScode

这个太有名气了吧,自行上网安装就好了!新手的话记得上网搜下 Vscode 推荐的插件,没有插件的 vscode 就是毛胚房,有了插件你可以是豪宅~

3. 上手体验

至此,工具都装好了,怎么也得来试试好不好用感受下吧!那么直接上手一种最为快速的体验感受感受吧!

最为快速的那还的是 stm32 搭配 cubemx 了,过气的 stm32 依然是最佳的选择,下载安装 stm32 CubeMX,根据电脑系统自行选择了!

毕竟 cubemx 可以直接生成 cmake 版本工程,暂时可以免去写 cmake 文件了!

在这里插入图片描述
tips:最新版本强制登陆了,有点离谱~

安装好之后,随便选择一款 MCU,简单配个时钟,配个SWD调试口就差不多了,当然手上有开发板那就根据开发板的来了!

在这里插入图片描述
在这里插入图片描述

生成工程的时候选择使用 cmake!!!

在这里插入图片描述

之后使用 vscode 打开生成好的工程文件夹,如下图所示:
在这里插入图片描述

在 vscode 内打开终端,推荐 git bash 终端,linux风格比较好用!

  1. 执行 cmake -B out -GNinja 调用 cmake 生成 ninja 构建系统

    • -B:指定生成目录为当前目录下的 out 目录
    • -GNinja:指定生成 ninja 版本构建系统
      在这里插入图片描述
  2. 执行 ninja -C out 进行编译

    • -C: 指定编译执行目录
      在这里插入图片描述
  3. 对于最新版本的 CubeMx 生成的 cmake 版本工程,使用老版本 gcc 编译的时候会报错:non constant or forward reference address expression for section .ARM.extab

    • 这是由于 gcc 版本太老了,cubemx匹配的 gcc 太新了导致,修改下 ld 链接脚本文件,去掉所有的 (READONLY) 字段即可
      在这里插入图片描述
  4. 编译完成之后,在 out 目录下可以看到 test.elf 文件,此文件即为编译产物,如果生成文件需要 .bin 或者 .hex 文件,需要修改下 CMakeLists.txt,以后再补充吧,axf文件也可以使用 ozone 这类软件下载了,或者调用 arm-none-eabi-gcc 自行生成一下也可以,命令自行AI~
    在这里插入图片描述

4. 总结

以上便是使用 vscode + cmake + ninja + gcc 搭建完整的 mcu 开发环境的全部步骤了,体验完应该可以开始淘汰传统的 IDE 了,当然对于如何完善cmake,以及生成的 bin 文件后续怎么烧录,怎么仿真这些本文还未涉及,后续再补充啦,关注专栏后续不断更新!

http://www.dtcms.com/wzjs/305513.html

相关文章:

  • 网站的图片要会员才能下载怎么做seo网站优化助理
  • 娱乐公司网站建设价格nba实力榜最新排名
  • 免费建站的广州市疫情最新
  • 绍兴做网站建设公司宁波seo网络推广渠道介绍
  • 做网站哪个部分公司seo
  • 个人可以做网站么搜索引擎优化服务
  • 网站建设的几大要素优化关键词首页排行榜
  • ice 网站开发seo的基本步骤是什么
  • 哪个网站可以做高像素动图seo职位招聘
  • 有些网站做不了seo搜索引擎优化方法与技巧
  • 班级网站源代码快速排名优化怎么样
  • 做视频链接的网站吗韩国电视剧
  • 先做它个天猫网站个人如何优化网站有哪些方法
  • 网站的建设是什么seo关键词排名公司
  • it在线学习网站开发alexa排名
  • 网站页面设计需要遵循的六大原则百度信息流
  • 爱情动做网站推荐安卓优化大师下载安装到手机
  • 深圳罗湖企业网站建设报价怎么做百度推广的代理
  • 无锡网站优化广州百度seo排名
  • 网站怎么做解析如何给自己的公司建网站
  • 营销型网站建设jm3q网站网络排名优化方法
  • 湖州市交通建设管理局网站网络营销的特点有哪些特点
  • 想找人做网站 要怎么选择苏州网站优化排名推广
  • 北京做网站制作公司中央广播电视总台
  • 任丘网站建设使用网站模板快速建站
  • 网站内页如何做排名seo新手快速入门
  • 简单企业网站模板湖南做网站的公司
  • 寺庙网站建设google关键词规划师
  • 国内常见的博客网站入门seo技术教程
  • 大连网站建设制作成都网站建设方案服务