嵌入式软件

浅谈嵌入式软件设计

岁酱吖の 提交于 2019-12-05 05:28:54
[TOC] 浅谈嵌入式软件设计 本文在21IC的公众号文章《多年嵌入式编程工程师经验分享:换个角度来编程》基础上结合自己理解而写,部分图片以及文字说明均来自互联网。 前后台模型 模型介绍 当开发过程中不使用OS时,几乎所有的嵌入式程序归根结底都是一个由无法停止的循环为结构构成的,即常见的 while(1) 或 for(;;) ,用流程图表示就是这样: graph TD stop[结束] start[查询IO或外设状态] --> section1[执行相关业务逻辑] section1 --> conditionA{退出无限循环?} conditionA -- YES --> stop conditionA -- NO --> section1 start_sub[业务逻辑]-->subconditonA{执行业务逻辑A?} subconditonA{执行业务逻辑A?}--YES-->subsection1[子功能A] subconditonA{执行业务逻辑A?}--NO-->subconditonB{执行业务逻辑B?} subconditonB--YES-->subsection2[子功能B] subconditonB--NO-->stop_b[结束] interp[触发中断]-->baoliu[保护现场] baoliu-->interp2[执行中断服务函数] interp2--

[转]嵌入式系统

自作多情 提交于 2019-12-04 08:45:55
来源自 《嵌入式系统组成结构简介》 ,稍作整理和摘取。 嵌入式系统的组成结构 嵌入式系统由:嵌入式微处理器、外围硬件设备、嵌入式操作系统(可选)以及应用软件系统等四个部分组成。 软件是计算机系统中与硬件相互依存的另一部分,包括 程序 、相关 数据 及其 说明文档 。 程序是按照事先设计的功能和性能要求执行的指令序列,数据是程序能正常操纵信息的数据结构,文档是与程序开发维护和使用有关的各种图文资料。 嵌入式系统的硬件组成 最小硬件系统 MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。 在最普通的情况下,嵌入式微处理器包括: 片内存储器:部分嵌入式微处理器 外部存储器的控制器,外设结构(串口、并口) LCD控制器:面向终端类应用的嵌入式微处理器 中断控制器,DMA控制器,协处理器 定时器,A/D、D/A转换器 多媒体加速器:当高级图形功能需要时 总线 其他标准接口或外设 嵌入式处理器可分为: 嵌入式微控制器(MCU) 嵌入式DSP处理器(DSP) 嵌入式微处理器(MPU) 嵌入式片上系统(SoC) 从计算机角度看,单片机功能太简单,性能太差;DSP太专用,可以看成一个外设; 通用处理器 和 SoC

嵌入式开发之系统开发篇全覆盖 嵌入式开发教程

ε祈祈猫儿з 提交于 2019-12-03 07:04:38
《深入理解嵌入式开发之系统开发篇全覆盖(MC9S12单片机、CAN技术介绍)》通过摘录了嵌入式C开发国内外著名的文献书籍,结合平时的工作经验,总结了以下台阶,希望同学们可以通过不断的走上这些台阶,提升自己的功力,达到一个嵌入式开发领域合格的工程师。 课时: 第一讲:嵌入式系统开发概述1 第二讲:嵌入式系统软件架构 第三讲:嵌入式系统开发发展趋势及技巧介绍 第四讲:嵌入式开发硬件设施 第五讲:嵌入式微软处理器介绍及void使用 第六讲:嵌入式硬件基础及宏函数指针等应用 第七讲:嵌入式开发armIO介绍 第八讲:嵌入式开发总线技术介绍 第九讲:嵌入式开发之存储器介绍 第十讲:嵌入式软件开发基础 第十一讲:嵌入式软件开发内核介绍 第十二讲:ucos介绍及指针数组讲解 第十三讲:嵌入式系统开发NUC140介绍 第十四讲:MC9S12系列单片介绍 第十五讲:MC9S12启动代码介绍及链接文件分析 第十六讲:MC9S12段映射 第十七讲:内存映射实现 第十八讲:走马灯程序 第十九讲:看门狗的使用及时钟 第二十讲:RTI实现 第二十一讲:MC9S12内存映射 第二十二讲:fls驱动寄存器介绍 第二十三讲:fls跨页读操作 第二十四讲:fls擦除 第二十五讲:flash驱动深入研究 第二十六讲:指令集介绍 第二十七讲:can基础知识介绍(1) 第二十八讲:can协议介绍 第二十九讲:CAN技术延伸

嵌入式驱动程序设计的小窍门,业界大牛总结

北慕城南 提交于 2019-12-03 07:04:11
对于嵌入式来说,嵌入式应用软件都会在特定时候访问底层固件和进行硬件控制,嵌入式驱动程序的设计是满足嵌入式系统最关键的一步,学习嵌入式对嵌入式驱动程序设计是比较关键的,那么如何学嵌入式驱动程序设计成为了关键,在这里业界大牛总结了一些嵌入式驱动程序设计的小窍门,对学习嵌入式驱动程序设计还是老有用了。 点击了解更多小窍门: http://emb.hqyj.com/VideoCourse/?lbx 首先就是我们在做嵌入式驱动程序设计使用设计模式时,在这里有一个注意的点,认真看哦: 嵌入式驱动程序设计 对于设计模式来说,设计模型就是一个用来处理那些在软件中会重复出现的问题的解决方案。 开发人员可以选择浪费宝贵的时间和预算从无到有地重新发明一个解决方案,也可以从他的解决方案工具箱中选择一个最适合解决这个问题的方案。在微处理器出现之初,底层驱动已经很成熟了,那么,为什么不利用现有的成熟的解决方案呢? 在这里就有一个小技巧咯,驱动程序设计模式大致分属以下4个类别:Bit bang、轮询、中断驱动和直接存储器访问(DMA)。 Bit bang模式:当微控制器没有内外设去执行功能的时候,或者当所有的内外设都已经被使用了,而此时又有一个新的请求,那么开发者就应该选择Bit bang设计模式。Bit bang模式的解决方案很有效率,但通常需要大量的软件开销来确保其实施的能力。Bit

嵌入式判断题

五迷三道 提交于 2019-12-03 07:03:38
嵌入式判断题 问题 1.数字电视机、机顶盒、数码摄像机属于嵌入式系统在信息家电领域的应用。 对 问题 2 .嵌入式技术在我国应用最早的就是工业控制领域。 对 问题 3 .嵌入式系统中的软、硬件是固定好了的,不可裁剪。 错 问题 4 .嵌入式系统是一个纯硬件装置,不包括任何软件。 错 问题 5 .以32位RISC嵌入式处理器加嵌入式操作系统为标志的嵌入式系统为其发展的第三个阶段。 对 问题 6 .一个嵌入式系统往往是一个软硬件的综合体,而且多数软件和硬件绑定在一起出售。 对 问题 7 .产品发而是嵌入式系统开发流程中的最后一个环节。 对 问题 8 .上位机一般用于编辑、编译、链接、运行程序等工作。 错 问题 9 .通常情况下,嵌入式交叉开发环境由上位机、调试通道和下位机三部分组成。 错 问题 10 .嵌入式系统的硬件一般包括嵌入式微处理器、外围电路和嵌入式外围设备等组成。 对 问题 11 .若要称某个系统为嵌入式系统,则它必须满足三个基本的要素,即嵌入性、专用性和计算机系统。 对 问题 12 .嵌入式系统本身具备自举开发能力,用户可以直接在嵌入式设备上做开发。 错 问题 13 .嵌入式系统一般具有实时约束,有时限要求,因此,嵌入式系统一般都采用分时操作系统。 错 问题 14 .运行在智能手机或平板电脑中的Android系统是一种嵌入式操作系统。 对 问题 15

RAM嵌入式项目实战开发

不羁岁月 提交于 2019-12-03 07:03:06
对于有嵌入式技术基础的初学者来说,嵌入式项目实战是具有很大吸引力和挑战性的。同时,通过项目实践可以快速提升自己的实战技术,编程能力和项目开发能力。为了记录自己的学习历程,特写此文以回顾。 (一)arm嵌入式实战开发,从嵌入式系统的介绍开始。嵌入式系统以应用为中心、软硬件可裁剪的、适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专业计算机系统。(集软硬件于一体,软件代码小、高度自动化、响应速度快等特点,特别适合要求实时和多任务的体系)嵌入式系统由嵌入式处理器、相关软硬件、嵌入式操作系统及应用软件系统等组成。 嵌入式系统的几个重要特征: (1)系统内核小。(2)专用性强(3)系统精简(4)高实时性(5)多任务处理 嵌入式系统的体系架构从下往上,一般分为:硬件、驱动程序、操作系统、api接口、应用程序。而对于使用广泛的linux嵌入式系统而言,其软件组成主要有: (1)bootloader:u-boot;(2)linux kernel:可裁剪;(3)根文件系统:yaffs(4)系统应用程序:web server ...;(5)图形界面系统:Qt/E、MinGUI 嵌入式的发展经历了四个阶段: (1)以单片机位核心的可编程控制器形式的系统。(2)以嵌入式cpu为基础、以简单操作系统为核心的嵌入系统。(3)以嵌入式操作系统为标志的嵌入式系统。能运行于不同类型的cpu上,兼容性好

嵌入式工程师

感情迁移 提交于 2019-12-03 07:02:55
从刚接触嵌入式到现在也有四年多了,从听到嵌入式就一头雾水 到现在开发项目,真是泼感荆棘,也走了很多弯路,好多人听到嵌入式 都会想到、知道的多、懂的多,工资高好多人听到后会去培训机构培训一下,想从事这个神秘而又有诱惑力的工作,说道嵌入式工程师我更倾向于嵌入式应用工程师,或者产品开发工程师,嵌入式就是做产品的整体过程阶段的项目开发,因为一个产品需要用到的哪些制作工具,哪些开发资料,都是嵌入式工程师需要做的,包括产品研发电子器件的选型,电路设计,PCB外观尺寸,程序编写,产品人性化设计等,产品批量生产,工厂测试等等只要是产品没出来之前所有的工作都是,想必说道这大家知道为什么做嵌入式工资高了吧,而为什么有些同样是做嵌入式的工资一直上不去呢?,现在公司要求的是效率,将嵌入式分为 嵌入式硬件工程师,嵌入式软件工程师,产品测试工程师,。。。。分的很细,很多刚大学毕业的大学生或者刚培训完出来的进入公司后,就会定位某种职位,比如嵌入式软件工程师,工资5k,然后就一直从事软件的开发,也就把自己定位到软件这个职位上,如果想从事软件是可以的, /*普及一下软件工程师:初级软件工程师是根据单片机例如stm32,430,等一系列的CPU,底层的编写 。虽然说都是主控芯片,但是不进行一番的研究是吃不透的*/ 但是好多公司使只用一款芯片即使再熟练也只是这个芯片。,(芯片用熟练了其实就是复制粘贴

初识嵌入式

送分小仙女□ 提交于 2019-12-03 07:02:19
初识嵌入式 本以为stm32就是嵌入式,找一圈工作后才发现自己想的太少了,接下来介绍下嵌入式: 嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。 从应用对象上加以定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成, 嵌入式图标 嵌入式图标 嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。 ** 来源: CSDN 作者: 亚当二世 链接: https://blog.csdn.net

对于嵌入式的一些认识

岁酱吖の 提交于 2019-12-03 06:57:23
一:什么是嵌入式? 在我看来嵌入式就是 在已有的硬件平台上去移植操作系统。 二:我们为什么要用嵌入式?(即嵌入式有什么优点) 嵌入式(优点):【1】: 软件的可移植性高。 【2】: 软件开发人员不需要懂硬件 。【3】: 操作系统提供了许多开源的软件,工具,库 。 【4】: 可以实现多任务(不同时) 。【5】 提供大量的网络协议,可以实现远程控制 三:嵌入式有什么局限?(即有什么缺点) 嵌入式(缺点): 基于移植的操作系统,硬件成本可能过大 。 四:嵌入式怎么分类? 就我个人看来它分为两类: 【1】上层: 应用软件开发: Linux C, Android, ios等,只跟 操作系统打交道*****更上一步需要懂内核 【2】底层:操作系统内部 做系统软件:BSP, 驱动,内核。*****需要懂硬件 例如:做摄像头,应用软件开发要调用open,做系统软件要实现open. 也可分为硬件子系统,软件子系统 软件的平台:操作系统 硬件的平台:cpu 五:嵌入式最大的特征什么? 就我个人认为,其最大的特征就是操作系统,嵌入式的优点就是基于操作系统的存在。 六:什么是操作系统? 嵌入式操作系统 (Embedded Operating System,简称:EOS)是指用于 嵌入式系统 的 操作系统 。嵌入式操作系统是一种用途广泛的 系统软件 ,通常包括与硬件相关的底层 驱动 软件、系统 内核

嵌入式视觉技术

落花浮王杯 提交于 2019-12-03 06:57:12
随着嵌入式技术的发展,嵌入式视觉技术也越来越比较重视,多年前。人们对嵌入式视觉技术的研究还是很模糊的,而在嵌入式视觉技术高度专业化应用的今天。越来越多的新兴工业为视觉应用找到了用武之地。那么就让我们谈谈如何使用嵌入式视觉技术、采用嵌入式视觉技术的理由以及近期哪些应用最有希望采用嵌入式视觉技术。    更强处理能力   根据定义,嵌入式视觉系统实际上涵盖了执行图像信号处理算法或视觉系统控制软件的任何设备或系统。智能视觉系统中的关键部分是进行实时高清数字视频流处理的高性能计算引擎、大容量固态存储、智能摄像头或传感器以及高级分析算法。这些系统中的处理器可以执行图像采集、镜头校正、图像预处理和分割、目标分析以及各种启发式(heuristics)功能。嵌入式视觉系统设计工程师采用各种处理器,包括专为视觉应用设计的通用CPU、图象处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)和专用标准产品(ASSP)。上述处理器架构具备明显的优势和短板。在许多情况下,设计工程师将多种处理器整合到一个异构计算环境中。有时候,处理器则被集成到一个组件中。此外,一些处理器使用专用硬件来尽可能实现最高的视觉算法性能。诸如FPGA之类的可编程平台为设计工程师提供了高度并行的计算密集型应用架构以及用于I/O扩展等其他应用的资源。   在摄像头方面