嵌入式软件

嵌入式设计应用资料汇总,不定时更新中……

一笑奈何 提交于 2020-02-08 04:14:37
以下资料为本人搜集整理,与大家分享,如若侵害您的权利,请您速与本人联系,及时删除 视频传输研究及在嵌入式监控系统中的应用caj 嵌入式智能用电家居系统的研究与设计.nh 嵌入式智能家庭网关的软件设计.pdf 嵌入式远程视频采集系统的设计与实现.pdf 嵌入式语音合成系统的研究与实现.kdh 嵌入式无线家庭网关的设计与应用.pdf 嵌入式无线家庭网关的设计与应用.nh 嵌入式无线家庭网关的设计与实现.pdf 嵌入式视频监控服务器技术研究.caj 嵌入式实时视频传输系统的设计与实现.caj 嵌入式家庭网关及其安全机制的研究与设计.caj 嵌入式动态图像监测系统设计与实现.pdf 物联网系统中嵌入式BOA的移植与应用.pdf 嵌入式Web服务器Boa的移植及其应用.pdf 嵌入式Internet与家庭网关技术.pdf 基于微处理器的嵌入式Internet系统研究与实现.pdf 基于数字机顶盒的嵌入式数据库SQLite3的应用与研究.caj 基于嵌入式系统的智能家庭网关研究.nh 基于嵌入式无线传输文件系统的研究与设计.caj 基于嵌入式平台的语音合成技术的研究与实现.nh 基于嵌入式的家电关键词语音识别系统的研究与设计.caj 基于嵌入式Web的校园视频监控系统的设计与实现.pdf 基于嵌入式Linux视频监控系统毕业论文.doc 基于嵌入式Linux软件平台技术的研究.caj

数据结构与算法对嵌入式的影响与使用:Studying Route

倾然丶 夕夏残阳落幕 提交于 2020-01-19 02:19:04
未来软件的发展趋势来讲,数据结构与算法会越来越普适: 程序 = 数据结构 + 算法 一方面是因为硬件的不断升级,使得很多嵌入式系统现在已经与桌面系统的区别越来越小,可以跑更多的软件平台,使得数据结构与算法可以有更宽阔的应用场景。 另一方面,即使是嵌入式设备,其软件功能需求也在不断的升级,很多嵌入式平台应用了越来越多的视觉算法、数据库等等,有些需求的背后也是需要数据结构与算法做支撑的。 对于计算机类的特定算法(复杂度较高、运行资源需要多),比如搜索类的、地图求最短、最优路径之类的,在一般的嵌入式里面不太可能用得到,这些可以作为拓展思考用;但是图、红黑树、二叉树、字符匹配、查找、堆等等都是真真正正能够用得到的东西,需要慢慢渗透掌握。 学习路径: 1. 大O(复杂度分析)和迭代器 (最基本的理论) 2. 动态数组vector (理论推导和设计原理) 3. 双链表list (跟STL的双链表list相似) 4. 栈和队列(stack、queue) 5. 优先队列 (堆排序的思想+动态数组vector) 6. 常用算法 (检索,排序,仿函数等设计原理) 7. 轻量级关联容器(用动态排序数组代替红黑树做轻量级关联容器。适合很少的插入和删除、大量的检索,内存紧张的场合。) 8. 内存管理器基础 (边界标记、位图、自由列表、引用计数) 9. 哈希表 (不同数据类型的哈希算法、三个哈希表的原理)

嵌入式到底该怎么学

孤街醉人 提交于 2020-01-18 00:27:43
前言  其实一直有人问我嵌入式怎么学,今天跟大家讲讲我的理解。因为嵌入式是一个泛的概念,可能很多人认为嵌入式就是嵌入式Linux。但是其实并不仅仅只有Linux, 像STM32,51单片机也属于这个范畴之内的,它们有的也可以跑协议栈,跑ucos等系统。所以其实嵌入式是有很多方向的,选择一个方向,做好,做精,都是有前途的。接下来,跟大家探讨一下嵌入式的一些方向,和如何去学习。我以前也是摸索着过来的,没人告诉我如何学习,也没有学习线路,所以走了很多弯路。所以希望这篇文章可以帮助到一些正在学习的人,当然这些内容可能有主观的东西,欢迎大家一起探讨吧。如下仅讨论软件方面 _ 。 以下内容对牛人不适用。 嵌入式方向 - 单片机开发  单片机开发在这个市场上的需求还是很大,因为制造业公司还是很多,单片机更多用在工业控制,机械控制等上面,当然也会涉及物联网。单片机有8位,16位,32位的,一般8位用得比较多的就是51单片机和STM8,32位用得比较多的就是STM32,还有NXP的芯片,比如K60,K22等。一般学完51和STM32之后,找个单片机的工作应该是没什么问题了。单片机的门槛其实并不高,但是做好也不容易就是了,可能因为门槛问题,导致薪资上面并不会特别高(能力牛逼者例外)。 - Linux应用开发  以前很多人问我“ Linux应用到底在做什么? ”。其实应用就是在做功能,在操作系统中

嵌入式软件自动化测试的趋势

左心房为你撑大大i 提交于 2020-01-15 03:28:00
现在软件市场越来越推崇敏捷开发和持续交付,要在这样的环境下取得竞争优势,各个企业必须得开发出稳健的应用程序,为用户提供无可比拟的直观体验。而且,这些应用程序还要能够达到组织机构的业务目标。 自动化测试的重要意义 在这个竞争日益激烈的软件市场,能否抢占市场先机对于软件产品能否取得成功可能起着决定性的作用。为了缩短产品的交付时间,企业必须进行严格的自动化测 试。也就是说,软件开发阶段(从创建到部署)的所有步骤都要实现自动化。因为利用自动测试,不仅能够开发出更优质的软件产品,还能够让产品尽快投放市场。 自动化测试能够及时给出反馈,使得开发运营人员能够尽快想办法提高产品的质量。发现问题这一阶段所花费的时间越长,团队付出代价就越高。所以能够尽早发现问题具有十分重大意义,因为只有这样,才能够有足够的时间来修复问题。 要实现自动化测试的效率最大化,企业必须着眼于一些基本要素,尤其是敏捷宣言中的首要原则:“我们的最高宗旨就是通过尽快、持续交付高质量的软件产品,来满足客户的需求。”顾客是上帝,所以企业一定要用更好、更快的服务保证上帝高兴。 自动化测试的关键要素 如今,自动化测试已经成为软件开发生命周期的一个重要组成部分,测试经理和开发团队也越来越依赖于自动化测试。但是,与此同时,他们也面临着一个很现实的 问题:他们不仅要管理很多的测试,还要解读很多的测试结果。所以

ARM嵌入式开发——基础概念

自作多情 提交于 2020-01-11 01:19:54
文章目录 嵌入式Linux系统组成 嵌入式Linux系统的启动流程 uboot制作 uboot特点 uboot三大功能 硬件初始化功能 引导加载内核 为内核传递启动参数 uboot源码操作 嵌入式Linux系统组成 嵌入式Linux系统软件由三部分组成: BootLoader(uboot)裸板软件,初始化硬件+从闪存加载内核到内存并且启动内核+给内核传递启动参数,告诉内核根文件系统rootfs在什么地方。(上电运行,内核启动后结束) Linux内核(kernel):Linux系统7大功能,管理进程、管理内存、文件系统、设备控制、网络管理。掉电结束。 根文件系统(rootfs): bin:各种命令。 sbin:各种超级用户的命令。 lib:标准系统库。 etc:各种服务的配置(tftpd-hpa,nfs) dev:存放设备文件 sys:存放虚拟文件系统sysfs相关内容 proc:存放虚拟文件系统procfs相关内容 usr:存放其他命令 嵌入式Linux系统的启动流程 上电CPU运行uboot uboot根据bootcmd加载启动内核并且通过bootargs给系统传递参数。 内核启动,完成7大功能。 内核最后根据uboot传递的bootargs到某个地方找到根文件系统rootfs 一旦找到根文件系统rootfs,控制权交给根文件系统。 内核会运行第一号进程/sbin/init

mqtt协议系统设计参考

蓝咒 提交于 2020-01-07 15:52:39
作者:极寒 链接:https://zhuanlan.zhihu.com/p/28525517 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 回顾自己的工作经历最遗憾的是没有用代码实现设计好的系统就匆匆离职了!写这篇文章主要目的是分享一下实现通信服务的思路,方便大家设计自己的通信服务,也希望通过分享实践知道设计中的不足。工作的公司是做电动汽车充电的可以说是一个很伟大的物联网项目,一个EVCS系统(Electric vehicle charging system)包括APP、云平台、充电桩、电动汽车等部分。在云平台众多的服务中通信服务是一个负责接入嵌入式网关和与后端业务服务相协调的中间件。今天主要根据自己的经历分享一下通信服务的实现细节,其中包括具体实践的也有针对系统缺陷做的一些思考。本文内容不局限于电动汽车充电系统只是以电动汽车充电系统为例,也可以作为基于mqtt协议系统的设计参考。 术语说明 嵌入式网关:它一般由嵌入式微处理器、外围硬件设备、嵌入 式操作系统以及用户的应用程序等四个部分组成。在本系统中负责继电器的开关以及与服务器的网络通信。 充电设备(充电桩):给电动汽车充电的设备通过充电枪与车连接,里面包含了一个嵌入式网关。 comm:一个需要我们实现的broker扩展程序,communication 的简称。 通信服务

[嵌入式操作系统] 嵌入式操作系统复习

好久不见. 提交于 2020-01-04 09:38:44
嵌入式系统的定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适用应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统的特点: 系统资源受限的系统-面向特定应用的 大多要求低功耗 要求较高的可靠性和稳定性 有实时约束 需要专用工具和特殊方法 开发工具和方法: 资源有限,不具备自主开发能力,产品发布后用户也不能对软件进行修改,必须有一套专门的开发环境。 专门的开发环境包括专门的开发工具(设计、编译、调试、测试等工具),采用交叉开发的方式进行。 嵌入式操作系统的重要指标: 实时性(中断响应时间、任务切换时间等) 尺寸(可剪裁性) 可扩展性(内核、中间件) 微处理器结构: 嵌入式操作系统体系结构:体系结构是操作系统的基础,它定义了硬件与软件的界限、内核与操作系统其他组件的组织关系、系统与应用的接口。 体系结构是确保系统的性能、可靠性、灵活性、可移植性、可扩展性的关键。 目前操作系统的体系结构可分为: 单块结构 层次结构:硬件无关层、硬件抽象层、硬件相关层 微内核结构 ucos:一种专门为嵌入式设备设计的,基于优先级的可抢占式的硬实时EOS内核 实时系统的要求: 计算的逻辑正确性 产生结果的时间 硬实时:系统要确保最坏情况下的服务时间,对于事件的响应时间的截止期限无论如何都必须得到满足。 软实时:从统计的角度来说,一个任务能够得到有确保的处理时间

当前火爆的嵌入式领域,为什么选择C语言作为开发语言?了解一下!

廉价感情. 提交于 2019-12-28 09:05:33
C语言和嵌入式C编程有什么区别?其区别在于嵌入式的C语言是跑在嵌入式的开发板上的,CPU和电脑不一样,所以编译器也是不一样的,生成的可执行程序也是不一样的。选择嵌入式开发语言归结于嵌入式系统开发的特点上。 1、嵌入式系统不是PC系统,是另一种独立操作系统 它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程,有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。 2、嵌入式微处理器是嵌入式系统控制核心 嵌入式微处理器主要功能有四大点: a、对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。 b、嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统,如需要功耗只有mW甚至μW级。 c、具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已经模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。 d、可扩展的处理器结构,以便能最迅速地开发出满足应用的最高性能的嵌入式微处理器。 3、嵌入式系统有别于其他操作系统有很大不同 最大的核心竞争力有六大特点:

【linux】嵌入式 Linux 启动时间优化

久未见 提交于 2019-12-24 12:56:50
1 简介 本章包含的话题有启动时间的测量、分析、人因工程(human factors)、初始化技术和优化技巧等。 产品花在启动方面的时间直接影响终端用户对该产品的第一印象。 一个消费电子设备不管如何引人注目或者设计得怎么好,设备从关机状态到可交互的使用状态所需的时间对于获得正面的用户体验尤为关键。案例 #1 就是在关机状态从头启动一个设备的例子。 启动一个设备涉及到许多步骤和一系列的事件。为了使用前后一致的术语,消费电子 Linux 论坛(CE Linux Forum)的启动时间优化工作组起草了一个术语词汇表,该表包括了相关术语在该领域内通用的定义。该词汇表如下: 启动时间相关的词汇表 2 技术/项目主页 下面主要介绍与减少 Linux 启动时间有关的各种技术。 有一部分描述了 eLinux.org 上可以下载的本地补丁,而其余部分则介绍了在其他地方维护的项目或者补丁。 2.1 测量启动时间 Printk Times – 用于显示每个 printk 的执行时间 内核函数跟踪(Ftrace) – 用于报告内核中每个函数的调用时间 Linux 跟踪工具箱(LTT) – 用于报告确切的内核和进程事件的时间数据 Oprofile(译注:最新替代品是 perf) – 通用的 Linux 分析器(Profile) Bootchart – 用于 Linux 启动过程的性能分析和数据展示

嵌入式学习路线

你说的曾经没有我的故事 提交于 2019-12-24 03:03:43
1、打好嵌入式软件编程的基础 这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。 特别是C语言中对指针的理解和应用。这一阶段的主要目的是 学习编程语言 、开发环境、和培养自己的编程思维,为进一步学习嵌入式开发打下良好的基础。 这一阶段推荐的嵌入式学习书籍如下:《C程序设计语言》,《C语言核心技术》,《数据结构与算法分析--C语言描述》,《C和指针》,《C陷阱与缺陷》,《C++ Primer》 ,作为嵌入式软件工程师还要有一定的数字电路及模拟电路基础 2、学习ARM体系结构编程 这一阶段才是真正的嵌入式编程,首先我们要选择一款嵌入式CPU和一款嵌入式开发平台,目前ARM 嵌入式CPU应用最广泛, 这一阶段重点是学习嵌入式CPU的裸机编程,熟悉中断、定时器、串口、NAND FLASH、网络控制器、LCD屏、触摸屏等常用嵌入式外围设备的硬件工作原理 , 以及如何使用C语言来编程、控制这些硬件 。这一阶段除了要学习对硬件编程之外,还需要学习嵌入式硬件的知识,但是 对于嵌入式软件工程师来讲,重点是学习硬件的工作原理 ,在掌握硬件工作原理的基础上,对硬件进行编程控制。这和硬件工程师学习的侧重点有所不同。 这一阶段对应的学校的课程主要包括模拟电路、数字电路、微机原理和单片机 。 这一阶段重点是要看CPU的芯片手册