捣鼓STM32开发版

您所在的位置:网站首页 stm32寄存器版本 捣鼓STM32开发版

捣鼓STM32开发版

2023-07-03 00:56| 来源: 网络整理| 查看: 265

汽车电子小菜鸟,从头开始搞嵌入式 开发环境准备 资料准备和一些基本概念资料ARM 与 STM32的关系:开发环境搭建关于编译器和Keil的解释 使用DAP(Fire_Debugger)仿真器下载程序代码是如何控制硬件的寄存器是如何控制外设硬件的?寄存器,内存GPIO, 引脚,寄存器之间的关系 HAL 库Keil新建工程如何看懂开发板电路图C语言技巧

开发环境准备 资料准备和一些基本概念

开发,编译,调试环境

资料

野火资料下载中心:https://doc.embedfire.com/products/link/zh/latest/index.html

野火STM32F103霸道_V1_V2(STM32F103ZET6)开发板资料下载: https://doc.embedfire.com/products/link/zh/latest/mcu/stm32/ebf_stm32f103_badao_v1_v2/download/stm32f103_badao_v1_v2.html

F103霸道资料目录内容及底板介绍:https://doc.embedfire.com/stm32_products/must_read/zh/latest/doc/introduction_of_stm32/STM32/ebf_stm32f103_badao_v1_v2/stm32f103_badao_v1_v2.html

思路一: https://www.rt-thread.org/ : 国产的的开源操作系统,提供的是工程,一系列文件,

思路二: KEIL 下载,芯片包导入,从提供的实例工程入手;

思路三:

STM32CubeMX初始化代码生成器;

ARM 与 STM32的关系:

stm32是一种意法半导体公司生产的32位的单片机(或称微控制器),这款单片机的设计采用的就是ARM架构,除了意法半导体公司的STM32单片机,摩托罗拉公司、华为公司、苹果公司均基于ARM架构生产了自己的32位单片机。 stm32作为一种通用型的32位ARM单片机,其出货量全球第一,是最具竞争力的ARM单片机。 (2)ARM是一种芯片的设计模式,STM32是意法半导体公司基于ARM的设计模式生产出的具体的控制器件。 ARM有以下几个系列: Cortex-A:针对高性能计算。如我们目前手机SoC中常出现的Cortex-A76等。 Cortex-R:针对实时操作处理。主要是面向嵌入式实时处理器。在汽车的电子制动系统,工业控制领域等领域比较常见。 Cortex-M:专为低功耗、低成本系统设计。目前火热的IoT领域常常见到采用Cortex-M架构的处理器。

stm32是基于ARM内核的一种控制器,是包含与被包含的关系,ARM(STM32) ARM是英国的一家芯片设计公司,该公司主要提供IP核,也就是CPU的内核架构,并不是完整的处理器。然后它将这个核卖给各大半导体公司。为了对付8位机市场,推出了Cortex-M3内核,重点来了,STM32就是意大利的意法半导体基于Cortex-M3的32位嵌入式处理器。ST是意法半导体公司的简称,M是指微控制器,也就是MCU的第一个英文字母,32是指32位的MCU。STM32是采用ARM公司的内核设计的。 在这里插入图片描述ARM介绍:

总结 具有以下三种含义: ARM是一家全球半导体行业技术领先的公司,主要业务是设计RISC嵌入式处理器。 ARM是一类微处理器芯片或产品的统称,即所有采用ARM公司提供方案开发的RISC处理器。 ARM是一项技术的名称,即采用RISC的处理器体系结构。

开发环境搭建

(一)

ARMCC环境搭建——用VScode和Cube MX搭建单片机开发环境:(到需要的时候再看) https://zhuanlan.zhihu.com/p/419037933 https://blog.csdn.net/shengli001842/article/details/126374662 第1章 Window下VSCode的C语言开发环境搭建 (一),这个使用的是GCC编译器 该博主的文章都是关于C语言的干货,找时间多看看; https://wekeyuan.blog.csdn.net/article/details/126374788?spm=1001.2014.3001.5502 VSCode的C语言开发常用配置 (二) 终端设置字体大小 文件 -> 首选项 -> 设置 -> 功能 -> 终端 Integrated: Font Size(控制终端的字号(以像素为单位)) Editor: Font Size 设置 18 pix 显示终端和隐藏终端 快捷键 : ctrl + ` 按下一次显示, 再按一次就会隐藏 运行前自动保存文件 -> 文件 -> 首选项 -> 设置 -> 扩展 -> Run Code Configuertion -> Save File Before Run -> 选中 VSCode 复制粘贴一行的快捷键 可以使用ctrl + c 复制光标所在的行 接下来使用ctrl + v 可以粘贴一行

代码对齐

对齐整个文件

vscode 编辑中 -> 右击 -> 格式化文档(shift+alt+f) //可以实现整个文件的代码对齐 对齐选中的内容 先选中代码 -> 右击 -> 格式化选中的内容 // 可以实现对选中的文本对齐

直接使用keil:

Keil 安装 Keil被ARM 收购之后,叫做MDK, STM32 安装 MDK536; Keil需要安装芯片包; 使用注册机激活;

关于编译器和Keil的解释 https://blog.csdn.net/u012846795/article/details/128030614 首先来了解一下编译器,其通常分为三个部分:前端+优化器+后端。 前端:词法、语法和语义分析,将源代码转化为抽象语法树,生成中间代码 优化器:对得到的中间代码进行优化,使得代码更加高效, 后端:将优化的代码转化为针对各自平台的机器代码。

再通俗地说编译器的工作就是:源代码->预处理->编译->目标代码->链接->可执行程序。

armcc 是arm 公司开发的一款编译器,集成在KEIL以及ARM DS IDE里面,于5.06版本后停滞(AC5),不继续维护,其前端基于 Edison Design Group 。

armclang 集成于armcc,基于新的架构 clang 和LLVM,作为arm 的第六代编译器,AC6,成为今后主推的编译器。

由于STM32 是基于 ARM 内核的,而Keil被ARM 收购后,在Keil中集成了armcc 或者 armclang,所以用STM32 开发时,使用Keil是很方便的。

在使用Keil进行STM32开发时,开发人员需要下载适配于ARM Cortex-M3内核的编译器和适配于他们所使用的微控制器的Peripherals Pack。然后,通过Tools选项中的Device Database Manager向Keil添加STM32微控制器。在添加后,Keil就可以自动为你配置所需要的环境。接下来,可以打开Keil的集成开发环境,使用工具集合中的C/C++编译器、Linker和debugger等实现整个开发过程。通过Keil提供的功能,工程师可以轻松地使用STM32进行开发,并有效提高工作效率。

GCC 编译器, GreenHills 编译器,优势很明显,dmips高,code size小。

使用DAP(Fire_Debugger)仿真器下载程序

串口下载程序:不能硬件仿真和调试程序; DAP:能下载程序,能硬件仿真(单步执行)和在线调试; DAP 在Keil中的配置: 使用不需要安装驱动, 支持JTAG 和SW 模式,SWD? V-UART ? 这些是啥? 仿真协议: JTAG 接口

关注一下T32 硬件组成和JTAG 接口;为什么最终和板子相连时只剩下几根线了?

DAP标准JTAG接口: 标准JTAG接口

仿真器默认是不对外供电的;

代码是如何控制硬件的

参考文章:代码是如何控制硬件的

在这里插入图片描述在这里插入图片描述 32位的ARM或其他设备的flash,一个地址下能写入多少数据?

*( unsigned int * )0x40010C00 |= ( (1)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3