IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32程序开发要考虑的几个问题 -> 正文阅读

[嵌入式]STM32程序开发要考虑的几个问题

# STM32程序开发要考虑的几个问题

关于STM32或其它MCU的程序开发,什么样的选择才是最好的。也许每个人/每个项目都有不同的选择。
或许我们没有精力和时间对以下选择都尝试,这将花费太多的时间和精力。但是,当我们花时间认真的比较下以
列出的不同选择,会给我们带来更深入的理解,帮助我们构建更好的MCU程序,提升我们的发展空间。

* 裸机开发,库开发还是操作系统?
* 用什么编程语言,汇编,C语言还是C++语言
* 用什么编译器,ARMCC,GCC还是其它?
* 究竟J-lINK还是ST-Link?
* 用什么软件(IDE),Keil MDK5/IAR/STM32Cube IDE或者其它?
* 开发主机用Windows还是Linux或者其它?
??
对于上面列出的几个选择,我都不能确定什么是最好的,答案是你自己的,我只是试图分享都有哪些可能,为什么要这样选择,容易实现吗?

## 裸机开发,库开发和操作系统

对于电池供电或要求低功耗,以及性能要求非常高的场合,应采用裸机开发;然而,我个人认为,要求实时性,高速高性能的场合,更好的选择
是专用芯片或FPGA,也就是更换硬件方案;对于8位MCU采用裸机开发,能上操作系统的都用操作系统,厂商提供库的决不用裸机开发。

## 用什么编程语言,汇编,C语言还是C++语言

据我了解,STM32的启动文件是有汇编代码的,大部分代码是用C语言写的,操作系统是C和C++结合的。ARMCC V5是不支持C++的。要升级到ARMCC V6版。
我建议的选择顺序是:优先用C++,然后是C。最好是用C++来开发,从长期来看,STM32 MPU和其他厂商推出的结合Cortex A和Cortex M处理器的芯片。
从单纯MCU程序开发过渡到嵌入式Linux开发,只是时间问题。对于大型项目的开发,C==也更有优势。

## 用什么编译器,ARMCC,GCC还是其它?

如上面所说,基于和嵌入式Linux的结合,我更加偏向于采用GCC编译器。有的项目MCU的结构体和部分代码,也是可以和上位机(ARM或X86上位机)更好的共用。
基于共用代码的考虑,还有更广泛的跨平台考虑。我的建议是采用GCC编译器。ARMCC和GCC编译器还是有细微的差别。

## 究竟J-lINK还是ST-Link?

这个我是强烈建议J-Link的,毕竟ST-Link只支持STM32的芯片,作为专业长期从业者来说,这部分费用是不能省的。

## 用什么软件(IDE),Keil MDK5/IAR/STM32Cube IDE或者其它?

一开始我是使用keil MDK开发的,后来觉得MDK写代码不习惯,MDK里配置了VSCODE编辑器,编写代码时可以一键切换到VSCODE。后来发现有个VSCODE插件,这个名叫
Keil Assistant的VSCODE插件,可以不打开MDK而利用MDK的编译环境,执行MDK的三个命令:编译,下载和重构。然而,更好的选择是STM32CUBE ide,这是官方推出的免费开发工具,基于eclipse。德州仪器(TI)的CCS(ti Code Composer Studio)从版本4开始,Code Composer Studio也是基于Eclipse开源软件框架。
对于STM32建议采用STM32Cube IDE。中文界面,跨平台(Windows,Linux MacOS),还有许多eclipse插件可以下载使用。在线下载STM32库的速度也比MDK快。
还有使用Arduino IDE进行STM32开发的,使用Visual Studio 2019 + VS2019插件VisualGDB的。这二种开发环境也是值得尝试的选择。虽然,我目前使用的是STM32Cube IDE,我相信更好的选择是用CMake组织项目,CMake项目可以跨平台(Windows,Linux,MacOS)和许多不同IDE的支持。

## 开发主机用Windows还是Linux或者其它?

如上面说的,很多IDE是跨平台的,还有就是向嵌入式Linux的过滤,采用linux操作系统作为开发主机,也可以更好的熟悉linux。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-18 11:20:34  更:2021-11-18 11:21:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:42:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码