微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32笔记之十四:基本问题,来讨论一下软件架构

STM32笔记之十四:基本问题,来讨论一下软件架构

时间:11-26 来源:互联网 点击:
网上大家都在讨论和学习,但是对于架构这个基本问题却没几个人讨论。个人认为有个好的架构是写好代码的基础,可以使后期的调式工作事半功倍!!

1、架构组成:我的程序代码分为四种结构

a)顺序执行代码

定义:按照顺序逐行执行的代码

优点:是思路简单,代码可靠不易被干扰。

缺点:占用资源

用途:只用来各种变量、函数的定义,硬件的初始化程序

位置:main.c的开始一直到main函数的while函数之前

b)空闲执行代码

定义:在CPU空闲的时候才执行的代码

优点:不占用资源

缺点:执行的实时性不能保证

用途:非实时任务,调试信息输出,不重要的状态指示

位置:main.c的main函数的while函数内部

c)中断执行代码

定义:由软硬件事件打断整个程序而执行的代码

优点:可以保证实时性,各种中断可以安排优先顺序

缺点:关系相对复杂,互相之间容易干扰

用途:触发性的代码,比如接收数据,响应外部设备,按钮的相应

位置:stm32f10x_it.c内部

d)循环执行代码

定义:按照时间周期执行的代码

优点:定期自动执行

缺点:实时性不好

用途:需要周期执行的任务,状态检查及相关信息输出,数据记录

位置:stm32f10x_it.c的SysTickHandler内部

e)DMA自动代码

定义:不需要主程序干预,外设自动执行

优点:自动刷新数据,不占用CPU资源

缺点:不能控制

用途:数据通信存储,AD转换

位置:不需要

2、架构执行顺序图

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top