美文网首页
基础知识

基础知识

作者: 简小黑 | 来源:发表于2019-05-30 11:16 被阅读0次

存储器

Cortex‐M3 32位处理器,可寻址空间大小为 4GB,被划分为若干区域。


Cortex-M3存储器预设.PNG
Cortex‐M3存储空间划分.PNG
stm32RCT6存储器映射.PNG

STM32的位段、位带别名区就为了实现这样的功能。只不过他是为需要操作的地址(1字节)的每一个位(共8位)起个别名,分别对应别名区的一个字(word)。也就是别名区的大小是Bit Band的32倍。这样,32MB的别名区地址的操作,就是对相应Bit Band区的位的操作。Bit Banding功能是相对于以往能够进行bit操作的单片机而言的。

片内外设

stm32系统内部结构.jpg

指令总线(ICode Bus)数据总线(DCode Bus)系统总线(System Bus,S-Bus)

异常与中断

Cortex-M3的内核编号1-15为系统异常,大于等于16的为外部中断。 异常分为不同的优先级,优先级的数值越小,优先级越高。 CM3支持中断嵌套,使得高优先级异常会抢占低优先级的异常。当系统发生异常并要响应该异常的时候,CM3要定位其服务例程的入口地址,这些入口地址就存在向量表中。缺省时,默认位于零地址,各向量占用4字节,故各表项占用4字节。有三个系统异常:复位、NMI、以及硬fault。它们优先级固定且都是负数,使得它们优先级最高。其余的异常的优先级都是可编程的。


内部中断.PNG
其他中断.PNG

编程知识(不熟悉)

  1. 位操作


    位操作.PNG
  2. extern 申明函数在外部定义

MDK5

在桌面新建一个 TEST 的文件夹,然后在 TEST 文件夹里面新建 USER 文件夹,将工程名字设为 test,保存在这个 USER 文件夹里面,选择芯片的型号(安装对应器件的pack)。根据芯片容量添加启动文件。(小容量:FLASH≤32K、中容量:64K≤FLASH≤128K、大容量:256K≤FLASH)。 STM32F103RCT6,FLASH 容量为 256KB,属于大容量产品,选择 startup_stm32f10x_hd.s 作为启动文件。
编译后,MDK5会生成一些中间文件。在 TEST 目录下新建一个新的 OBJ 文件夹来存放这些中间文件。
把系统代码 COPY 过来(该文件夹由 ALIENTEK 提供),添加文件到IDE。设置输出路径(生成HEX文件)


加入头文件路径.PNG

图中 1 处,我们必须根据所用 STM32F1 型号的容量,来输入相关宏定义,对于 STM32F103 系列芯片,设置原则如下:
16KB≤FLASH≤32KB 选择:STM32F10X_LD
64KB≤FLASH≤128KB 选择:STM32F10X_MD
256KB≤FLASH≤512KB 选择:STM32F10X_HD
因为 MniSTM32 使用的是 STM32F103RCT6,FLASH 容量为 256KB,所以,这个设为:STM32F10X_HD。
图中 2 处是编译器优化选项,有-O0~-O3 四种选择(default 则是-O2),值越大,优化效果越强,但是仿真调试效果越差。这里我们选择-O0 优化,以得到最好的调试效果,方便开发代码,在代码调试结束后,大家可以选择-O2 之类的优化,得到更好的性能和更少的代码占用量。
图中 3 处,One ELF Section per Function 主要是用来对冗余函数的优化。通过这个选项,可以在最后生成的二进制文件中将冗余函数排除掉,以便最大程度地优化最后生成的二进制代码,所以,我们一般勾选上这个,这样可以减少整个程序的代码量。然后在 Include Paths 处(4 处),点击 5 处的按钮。在弹出的对话框中加入 SYSTEM 文件夹下的 3 个文件夹名字,把这几个路径都加进去(此操作即加入编译器的头文件包含路径,后面会经常用到)。

仿真设置

Debug选项.PNG Target选项.PNG

Dialog DLL 分别为:DARMSTM.DLL 和
TARMSTM.DLL,Parameter 均为:-pSTM32F103RC,用于设置支持 STM32F103RC 的软硬件
仿真(即可以通过 Peripherals 选择对应外设的对话框观察仿真结果)。最后点击 OK,完成设置

下载设置

STM32F103 的程序下载有多种方法:USB、串口、JTAG、SWD 等,这几种方式,都可以用来给 STM32F103 下载代码。不过,最简单也是最经济的,就是通过串口给 STM32F103 下载代码。


FlyMcu设置.PNG

编程前重装文件,该选项也比较有用,当选中该选项之后,flymcu 会在每次编程之前,将hex 文件重新装载一遍,这对于代码调试的时候是比较有用的。选择的 DTR , 的低电平复位,RTS 高电平进BootLoader,这个选择项选中,flymcu会通过 DTR 和 RTS 信号来控制板载的一键下载功能电路,以实现一键下载功能。如果不选择,则无法实现一键下载功能。这个是必要的选项(在 BOOT0 接 GND 的条件下)。

在线调试

串口只能下载代码,并不能实时跟踪调试,而利用调试工具,比如 JLINK、ULINK、STLINK等就可以实时跟踪程序,从而找到程序中的 bug。


Debug设置.PNG
settings设置.PNG
Flash编程器选择.PNG
flash算法设置.PNG

相关文章

  • 音频基础知识02

     音频基础知识 01  音频基础知识 02  音频基础知识 03  音频基础知识 04 人类收集声音的历史   为...

  • PHP全栈学习笔记18

    php基础知识,JavaScript,jQuery,ajax基础知识 linux基础知识,mysql数据库的基础与...

  • PHP全栈学习笔记18

    php基础知识,JavaScript,jQuery,ajax基础知识 linux基础知识,mysql数据库的基础与...

  • C语言回顾

    基础知识 控制流 基础知识补充 其他主题

  • PHP面试知识脉络(更新中)

    PHP基础知识Javascript、jQuery、ajax基础知识Linux基础知识MySQL数据库的基础与优化程...

  • p2p理财基础知识

    p2p理财基础知识 p2p理财基础知识 p2p理财基础知识

  • 学习Vue框架之前,要有JavaScript的知识储备

    前端三剑客知识储备(有关前端的专题) ☑ HTML基础知识 ☑ CSS基础知识 ☑ JavaScript5基础知识...

  • angular笔记

    第一部分、基础知识--------------------------基础知识------------------...

  • 【学习】其他框架

    Zookeeper Zookeeper基础知识Zookeeper综合知识 HDFS HDFS基础知识 NoSQl ...

  • Python3基础知识

    Python3基础知识 | 基础语法 Python3基础知识 | 编程第一步 Python3基础知识 | 基本数据...

网友评论

      本文标题:基础知识

      本文链接:https://www.haomeiwen.com/subject/yudytctx.html