嵌入式硬件构件与底层驱动构件基本规范
嵌入式硬件构件与底层驱动构件基本规范
- 构件化设计
- 嵌入式硬件构件
- 核心构件
- 中间构件
- 描述需求接口
- 描述供给接口
- 终端构件
- 嵌入式底层驱动构件
- 底层驱动构件的规范
- 底层驱动构件的封装规范
- 构件设计的基本思想
- 硬件构件及底层软件构件的重用与移植方法
- 重用
- 移植
构件化设计
构件是核心和基础。
复用为必要的手段。
提高软硬件设计可重用性与可移植性。
嵌入式硬件构件
指将一个或多个硬件功能模块,支撑电路及其功能描述封装成一个可重用的硬件实体,并提供一系列规范的输入/输出接口。
核心构件
只有供给接口,没有需求接口。即它只为其他硬件构件提供服务,而不接受服务。
在以单MCU为核心的嵌入式系统中,MCU的硬件最小系统是典型的核心构件。
核心构件为某种型号MCU的硬件最小系统。
使用该MCU进行硬件系统设计时,核心构件可以直接组装到系统中,无需改动。
设计核心构件的接口是为其他构件提供服务的,因此接口标识均为接口,接口设计时,所以可能用到的引脚标注上接口网标,若引脚复用,以第一功能选项命名。
中间构件
不仅有需求接口还有供给接口,即不仅能够接受其他构件提供的服务,也可以为其他构件提供服务。
描述需求接口
采用接口注释(虚线框内)
描述供给接口
采用接口网标(虚线框外)
终端构件
只有需求接口,只接受其他构件提供的服务。
对于核心构件,在应用到具体的系统时,不必做任何改动。
对于中间构件和终端构件,在应用于具体的系统中时,仅需为需求接口添加接口网标,在不同的系统中,接口网标名称不同,但构件实体内部完全相同。
嵌入式底层驱动构件
提高软件设计可重用性与可移植性,必须充分理解和应用软件构件技术。
提高代码质量和生产力的唯一最佳方法就是复用好的代码,软件构件技术是软件复用实现的重要方法。
嵌入式底层驱动构件/驱动构件/硬件驱动构件
直接面向硬件操作的程序代码及使用说明。
底层驱动构件的规范
由头文件(.好)及源程序文件(.从)文件构成,头文件应该是底层驱动构件简明且完备的使用说明,无须查看源程序文件情况下,就可以完全使用该构件进行程序开发。
底层驱动构件的封装规范
提高底层驱动构件的可移植性和可复用性。
构件设计的基本思想
当一个底层构件应用到不同系统中时,只需修改构件的头文件,对于构件的源程序文件则不用修改或改动很小。
良好的底层驱动应具备:封装性 描述性 可移植性 可复用性
则应遵循原则为:层次化 易用性 鲁棒性 内存的可靠使用
所以底层驱动构件都包含对构件公共要素的引用。放在工程文件夹中\Common文件夹中的common.h。
common.h包含芯片寄存器映射文件,一位操作宏函数,重定义基本数据类型等。
严格禁止使用全局变量
若在底层驱动构件中使用全局变量,其他程序即使不通过构件提供的接口也可以访问到构件内部,对构件的正常工作带来隐患。
从软件工程理论中对封装特性的要求看,也不利于构件设计高内聚、低耦合的要求。
用户与构件交互只能通过服务接口进行,即所以到数据传递都通过函数的形参来接收,而不是使用全局变量。
硬件构件及底层软件构件的重用与移植方法
重用
在一个系统中,同一构件可被重复使用多次
移植
将一个系统中使用到的构件应用到另外一个系统中。
嵌入式技术基础与实践(第4版)
嵌入式硬件构件与底层驱动构件基本规范相关推荐
- 慕课嵌入式开发及应用(第二章.嵌入式硬件构件与底层驱动构件基本规范)
慕课苏州大学.嵌入式开发及应用.第二章.入门与软件框架.嵌入式硬件构件与底层驱动构件基本规范 0 目录 2 入门与软件框架 2.1 嵌入式硬件构件与底层驱动构件基本规范 2.1.1 课堂重点 2.1. ...
- 嵌入式入门学习笔记4:[转]什么是嵌入式底层驱动开发和嵌入式底层软件开发...
我们知道嵌入式操作系统(Embedded System)是指以应用为中心.以计算机技术为基础,软件硬件可裁剪.适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统.嵌入式开发分两种,一 ...
- 嵌入式行业里面的应用驱动硬件工程师对比
我觉得对这个问题主要是对"程序"这个分歧上. 一个嵌入式硬件工程师真的是只是画板子那么简单吗?--如果不懂一些驱动访问方法,怎么调试硬件?怎么画出符合要求的电路图?如果这些不会的话 ...
- 搞嵌入式Linux,做底层还是应用?底层要掌握哪些技能?
关注.星标公众号,直达精彩内容 ID:技术让梦想更伟大 整理:李肖遥 很多学习嵌入式的新人.工程师,在学习到半途中,总会感觉到迷茫,不知道自己从哪方面入手.进阶,也不知道自己目前处于学习的哪个层次,不 ...
- 基于Linux操作系统的底层驱动技术
5.3 基于Linux操作系统的底层驱动技术 这里的底层驱动是指Linux下的底层设备驱动,这些驱动通常都是加载在内核态的,可以提供给上层用户态的应用程序访问底层设备的能力.也就是说,上层应用程序通过 ...
- 可复用的基于ARM的W5100底层驱动设计
摘要: 为了缩短基于ARM的网络化嵌入式应用开发周期.降低开发成本和提高产品质量,提出一种有别于传统利用操作系统开发嵌入式应用的模式.在该模式的框架下,对W5100网络芯片底层驱动进行编写.封装和测试 ...
- 嵌入式硬件通信接口协议-UART(四)设计起止式的应用层协议
文章首发于同名微信公众号:DigCore 欢迎关注同名微信公众号:DigCore,及时获取最新技术博文. 原文链接:https://mp.weixin.qq.com/s/amO7rGkqFJtCzuy ...
- 学习嵌入式Linux,做底层还是应用?底层要掌握哪些技能?
关注.星标公众号,直达精彩内容 ID:技术让梦想更伟大 整理:李肖遥 很多学习嵌入式的新人.工程师,在学习到半途中,总会感觉到迷茫,不知道自己从哪方面入手.进阶,也不知道自己目前处于学习的哪个层次,不 ...
- 嵌入式软件工程师和嵌入式硬件工程师有什么区别
什么是嵌入式硬件工程师 随着嵌入式技术的普及,硬件工程师的性质也有所改变.嵌入式硬件工程师与我们平常所说的硬件工程师不同.嵌入式硬件工程不但要求具备硬件工程师的基本技能,还必须完成部分软件工程师的工作 ...
最新文章
- 这个Spring循环依赖的坑,90%以上的人都不知道
- 无脑单细胞竟会走迷宫、规划交通路线,这种难以归类的生物重定义了智能
- JSP在动态网页上输出 三角形和菱形
- 如何优雅地辞退互联网企业的老员工?
- 比特飞-建站100天感悟
- C语言---初识递归///看了这么久的递归,终于会用了~~
- androidStudio导入库文件
- C# 概念 委托和事件
- linux下把进程注册成服务,用service 调用
- 【Unity3D】GUI控件
- 自学c语言难,c语言难学吗?
- win11配置mysql环境变量保姆级教程
- Sniffer Pro 4.7.530 SP5下载地址
- 服装尺寸 html,服装尺寸S、M、L、XL、XXL分别表示的型号大小和释义(完整版)...
- veu+cesium跨域问题
- 迅速把庸才变将才的七大步
- Dart 实现字符串 进行 gbk编码的 urlencode
- 【java】我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
- QQ也出网页版的了- WebQQ公测中
- Linux下GPT分区,gdisk修复损坏的分区表
热门文章
- java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
- vscode切换中英文
- [产品经理]产品管理职位的级别
- 【更新】MindFusion.WinForms Pack v2019.R1发布,改进Visio2013Exporter
- SecureCRT标签显示IP地址
- 极速办公(PPT)如何设置幻灯片大小
- $.each()和$().each
- [问题已处理]-mac安装cobra失败
- 前端开发实习面试题(JavaScript篇)
- 体系结构 | 五段流水线 | 流水线技术