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

C语言软件分层的方法,单片机程序分层设计思想

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

如今C语言已经成为单片机程序设计公认的语言。我用C语言进行单片机程序设计也有两年多的时间了,C语言程序的特点使我对单片机开发更加感兴趣。让我从一个了解单片机的彷徨者到今天能用单片机开发一些产品,这期间我深有感触。 众所周知,单片机实际上就是一个典型的微型计算机系统。作为一款单片机,无论大小,都集成了计算机最基本的五大部件,运算器、控制器、存储器、输入输出。但单片机在用途上是与通用微处理器不同的。单片机是面向特殊用途的,常作为某一个设备的控制单元,所以单片机又常称为微控制器,英文缩写MCU。 最初的单片机开发语言是汇编语言,但汇编语言会随着单片机种类的不同而不同。程序设计起来难度较大。后来人们改用C语言作为单片机程序设计的通用语言。这种不依赖于机器硬件的语言,可以方便的在各类单片机系统中移植,极大的加快了单片机程序开发的时间。 我们知道,从总的方向来讲,指令是按顺序被执行的,除非遇到中断。但作为单片机软件系统,我们不能用指令流的思想去构建一个单片机软件系统。通常我们会借助PC软件系统的思想,对单片机软件系统在宏观上进行分层。 首先,我们要通过单片机系统的硬件资源,明确要对哪些硬件资源进行软件封装或者软件抽象,这一步我们称为硬件驱动程序设计。对应的软件层,我们称为驱动层。这一层的程序设计是纯粹面向硬件设计的。要求程序设计人员必须对器件时序、内部可编程寄存器相当熟悉,而且还要熟悉常用的芯片级总线,如I2C、SPI等。有时,我们也将外部总线(通信接口),如RS232协议、RS485协议、CAN总线等,也归到这一层。 其次,是监控程序层,或者,我们冠之以操作系统层。这一层最主要的任务是管理。主要管理应用程序与应用程序之间、驱动程序与应用程序之间的关系。从某种意义上讲,也是一种通信关系。这一层基本上决定了程序的框架。比如常用的状态机思想、消息存取思想等。 最后一层是应用层。这一层是体现系统功能的。应用程序通常也称为任务,是直接面向使用者的。与驱动层相比,这一层的程序设计是面向逻辑的,面向数据处理的。 不论一个单片机软件系统规模有多大,它都体现了这三层架构。这也是我们程序设计最基本的思路。按照这种思路,我相信,设计出来的软件更有条理,更有层次感 ,便于分工,同时也加快了程序开发的时间。


http://www.taodudu.cc/news/show-4811323.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • 第十三届蓝桥杯单片机完整程序
  • 基于matlab的低通滤波器,基于Matlab Guide的低通滤波器设计
  • 03、滤波器设计——阶跃阻抗低通滤波器
  • Sallen-Key低通滤波器设计
  • 一阶数字低通滤波器设计matlab
  • 什么是音源?
  • java实现钢琴颜色改变_Android 拨号盘按键音修改为钢琴音效果实现
  • 立式大钢琴-Native Instruments The Giant v1.2.0 Kontakt
  • 象牙大钢琴II克隆版-Synthogy Ivory Grand Pianos II Kontakt
  • 雅马哈CFX钢琴-Garritan Abbey Road Studios CFX Concert Grand
  • FL Studio(水果)里PC键盘如何弹奏音源?
  • 数千名学者唾弃Nature的新付费访问机器学习期刊
  • 署名用by还是from_【这个太有创意了】中国学者把自己名字PS到《Nature》杂志论文第一作者前面,放到自己简历里...
  • 《通信原理》多径衰落信道仿真2
  • 瑞利、莱斯与Nakagami-m信道衰落模型
  • win11音频无声音排查解决方案
  • 【最新免费】CCNA中文注释题库精选模拟题
  • 视频教程-基于深度学习的计算机视觉:原理与实践(上部)-计算机视觉
  • YOLOv5原理分析及部署教程
  • 计算机组成原理的基本知识
  • 视频教程-2021考研专业课《计算机操作系统原理》精讲视频课程-操作系统
  • 串口公头(九针)母头(九孔)对应接口(转)
  • 关于点云数据的包围盒的方法总结
  • 包围盒算法基本知识(一)
  • w ndows7显示不全面怎么办,windows7系统下cad文字显示不全怎么解决
  • SDRAM控制器说明/altera/northwest logic
  • 学习FPGA有必要写SDRAM控制器吗?
  • 无法启动 IIS express
  • gettime 函数 java,Java ZipEntry getTime()用法及代码示例
  • 在线画图工具--process