嵌入式系统

嵌入式学习路线

你说的曾经没有我的故事 提交于 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的芯片手册

嵌入式操作系统进入临界区是否影响中断的接受?

空扰寡人 提交于 2019-12-21 05:52:15
在ucos,Freertos中常常会有进入临界区,以保证当前的操作不可被打断,确保操作关键代码的安全。 进入临界区 关键代码操作 假设发生A类型中断 退出临界区 那么A中断还能够接受到吗? 进入临界区,关闭中断,中断发生,打开中断,这个过程中会发生什么呢? 显然,关闭中断期间,CPU不可能去响应中断,再次打开中断的时候,如果在关闭中断期间,发生了中断,发生的中断被记录下来,开启中断时候,中断控制器会再次响应这些被记录的中断。 STM32在使用时有时需要禁用全局中断,比如MCU在升级过程中需禁用外部中断,防止升级过程中外部中断触发导致升级失败。 ARM MDK中提供了如下两个接口来禁用和开启总中断: __disable_irq(); // 关闭总中断 __enable_irq(); // 开启总中断 但测试发现这样一个问题,在关闭总中断后,如果有中断触发,虽然此时不会引发中断,但在调用__enable_irq()开启总中断后,MCU会立即处理之前触发的中断。这说明__disable_irq()只是禁止CPU去响应中断,没有真正的去屏蔽中断的触发,中断发生后,相应的寄存器会将中断标志置位,在__enable_irq()开启中断后,由于相应的中断标志没有清空,因而还会触发中断。所以要想禁止所有中断,必须对逐个模块的中断进行Disable操作,由于每个模块中断源有很多

计算机三级嵌入式学习笔记

江枫思渺然 提交于 2019-12-10 00:18:39
嵌入式学习笔记(之一) 前言 ​ 笔者在大一下学期一时冲动,直接跳过计算机二级报名考计算机三级嵌入式。没错,我觉得我冲动了,当时想着接触一下嵌入式,学点皮毛也好,考个证下来就更好了,结果,看书做题,发现,我高估自己了喔。 ​ 八十块钱报名费极大可能打水漂,但看完书还是认认真真的把题库刷一遍吧,前面八十分基本全是概念啊,全是啊,我滴天,孩子最不擅长的就是背这些balabala的,哭了,孩子快哭了啊!!!太难啦!!! ​ 做过题记一下笔记吧,加深些印象也好,呜呜呜~ 大致提纲 一、嵌入式系统概论 ​ (1)嵌入式系统介绍及其特性: ​ 专用性;隐蔽性;资源受限;高可靠性;实时性;软件固化。 ​ (2)嵌入式系统的应用 ​ (3)嵌入式系统的逻辑组成: ​ 软硬件两部分:硬件主体是中央处理器和存储器,它们通过输入/输出(I/O)接口和输入/输出设备与外部世界联系,并借助总线相互连接,这些硬件连同嵌入式软件一同构成完整的嵌入式系统。 ​ (4)嵌入式处理芯片: ​ 嵌入式系统的CPU一般具有四个特点:支持实时处理;低功耗;结构可扩展;集成了测试电路。 ​ (5)目前嵌入式处理芯片类型: ​ 微处理器(MCU);数字信号处理器(DSP);微控制器(单片机);片上系统(SoC)。 ​ (6)嵌入式系统的多种分类方法 ​ 可以按用途分类;按实时性分类;按产品形态分类;按系统的复杂程度分类。 ​

vxworks简介

*爱你&永不变心* 提交于 2019-12-06 12:42:54
本文转自百度百科 VxWorks 是 美国 Wind River System 公司( 以下简称风河 公司 ,即 WRS 公司)推出的一个 实时操作系统 。 Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、仿真环境和工具。 VxWorks的概述 VxWorks操作系统是美国温瑞尔(WindRiver)公司于1983年设计开发的一种 嵌入式实时操作系统(RTOS) , 是嵌入式开发环境的关键组成部分。 良好的持续发展能力、高性能的内核以及友好的用户开发环境, 在嵌入式实时操作系统领域占据一席之地 。 VxWorks支持几乎所有现代市场上的嵌入式CPU, 包括x86系列、MIPS、 PowerPC、Freescale ColdFire、Intel i960、SPARC、SH-4、ARM, StrongARM以及xScaleCPU。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、F/A-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年7月在火星表面登陆的火星探测器,2008年5月在火星表面上登陆的凤凰号火星探测器上也都使用到了VxWorks。 VxWorks 的组成  

请问什么机制导致vxworks比linux的实时性要强

余生颓废 提交于 2019-12-06 12:41:04
过去很多嵌入式系统不是一个操作系统,或者是提供商的专有核心,或者是DOS操作系统的 扩展。显然这些方法并不能适应今天嵌入式系统开发的要求!现有的一些商业实时操作系统 ,尽管提供了很小的核心和多任务开发环境,但性能并不理想,也不符合现在实时嵌入式市 场的需求。 因此,人们把目光投向了通用操作系统(例如Windows、Solaris、linux),希望把它们“ 改造”为实时操作系统。通常这些操作系统功能强大,结构复杂,易于软件的二次开发,实 用性强,并且提供编程人员熟悉的标准API。此外,这些操作系统也提供了一些对实时软件 开发的支持。然而,这些操作系统用于嵌入式系统的开发还存在不足。嵌入式系统要求具备高可靠性,满足应 用需求的可剪裁性,以及比通用操作系统要求更高的实时性。 做为嵌入式系统开发的解决方案,linux在众多通用操作系统中具有独一无二的优势。 首先,Windows和Solaris等专有商业操作系统的剪裁受到商家的严格控制。这大大限制了开 发者的剪裁深度。而linux遵循GPL协议,开放所有系统源代码,非常易于剪裁。 其次,同其它开放源码的通用操作系统(如FreeBSD)相比,linux在多种处理器、开发板支 持和软件开发工具支持上有很强的优势。 linux最初也是作为通用操作系统而设计开发的,但提供了一些实时处理的支持。这包括支 持大部分POSIX标准中的实时功能

vxworks入门

你离开我真会死。 提交于 2019-12-06 12:38:39
书籍 我的嵌入式知识也不是很精通,中文版只看了三本: 1.Tonardo/VxWorks入门与提高,现在早就不出版了,我看的也是影印版的。书里的内容比较基础,也基本覆盖了各个知识点,作为一本入门的书籍已经是很好的了。介绍的是5.5的开发和它的集成开发环境Tornado2.2。 2.VxWorks下设备驱动程序及BSP开发指南,我看的时候基本是扫着过的,感觉内容也比较一般。 3.VxWorks设备驱动开发详解,前几章简单讲了VxWorks的操作系统,如果以前对操作系统有深入的了解,看起来一定会事半功倍,不了解的话也还好,它讲的并不是很深,并且由于vxWorks不是开源的,很多地方也都是点到为止。后面主要讲解设备驱动,即使不做驱动的话也很有必要把中间两篇的驱动基础知识掌握好一点,最后的设备驱动主要给开发人员的参考吧,我也主要是做应用,所以了解并不是很多。 做嵌入式软件时间并不长,对很多东西了解不多,VxWorks方面主要看过这三本,mark一下,方便自己,也希望能帮助他人。 实时操作系统:保证在一定时间限制下完成特定功能,对外部的异步事件作出响应 微内核:提供最基本的服务,如进程调度、进程间通信、存储管理、I/O,其他服务如文件管理、网络支持等通过接口连接到微内核 任务 任务状态 状态转移 任务调度 优先级抢占 时间片轮转 任务调度的时机:从内核态退出(系统调用,中断) 任务操作 创建

VxWorks实时操作系统特点介绍

痴心易碎 提交于 2019-12-06 12:37:35
VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似MicrosoftVisual C,但是提供了更丰富的调试、仿真环境和工具。 VxWorks的特点 1、VXWORKS既是一个操作系统、又是一个可以运行的最小基本程序 2、VXWORKS有BSP(可以认为是一种低层驱动),可以减小驱动程序的编写过程 3、VXWORKS具有强大的调试能力,可以在没有仿真器的情况下,通过串口调试。 4、VXWORKS具有软件DEBUG功能,可以对软件部分进行模拟调试。 5、VXWORKS具有丰富的函数库。 6、同时VXWORKS自带TCP/IP协议栈。 最大可能的减小开发者系统软硬件开发的难度,缩小开发周期,提高开发效率。 可以部分的保证软硬件开发的同步进行。 一个好的操作系统的几大特点: ● 多任务和可抢占的 ● 任务具有优先级 ● 操作系统具备支持可预测的任务同步机制 ● 支持多任务间的通信 ● 操作系统具备消除优先级转置的机制 ● 存储器优化管理 ● 操作系统的(中断延迟、任务切换、驱动程序延迟等)行为是可知的和可预测的。 ● 实时时钟服务 ● 中断管理服务 可靠性 操作系统的用户希望在一个工作稳定,可以信赖的环境中工作

与vxWorks相比,Linux究竟有那些优势?

不想你离开。 提交于 2019-12-06 12:36:56
2001 年IBM大张旗鼓的宣布支持Linux,并投入10亿美金用于Linux相关开发。 【陈怀临注:是的,没有IBM Linux Research Center的R&D投入,Linux在服务器市场方面的发展绝无今日之局面】 最近的Cisco抛弃了其专有的IOS核心,在 ASR1000的控制平面软件上采用了Linux为基础平台。【 陈怀临注:思科在OS方面目前比较乱了。是的,IOS确实没有能力支持其将来的发展。有兴趣的读者也可参阅弯曲评论相关文章,如“ 思科的OS战略是用三个OS逐步取代IOS。IOS XR用于核心路由器(Core Router),IOS XE用于边缘路由器,NX-OS用于数据中心的网络交换机。三个都是模块化的OS,IOS XE和NX-OS基于Linux内核(目前Linux的代码质量已经全面超过BSD,JUNOS 1996年起步时Linux还不成熟,如果Juniper现在起步,大概也会选择Linux),IOS XR基于一个兼容POSIX的微内核(Microkernel), 名叫QNX。IOS的各个功能模块被移植到这些新的OS,作为单独的进程运行于内核之上。”—《 思科和Juniper的操作系统之争:一个还是多个? 》 】据传Huawei、H3C等厂商的软件平台也纷纷转向以Linux为基础,而以前他们都采用 vxWorks作为基础。【 陈怀临注

目前适合去学的行业,绝对适合你!

狂风中的少年 提交于 2019-12-06 10:22:15
------------恢复内容开始------------ 目前,想要提高职业职能的人都有这几个疑问: · 想要转IT,但我年龄比较大了怎么办? · IT行业男生偏多,是不是不适合女生呢? · 代码逻辑差,适合学什么呢? · 想要挣钱,但不想加班太多咋办? 信盈达学院小编 想说有这样一个岗位特别适合你: 这个岗位不怕你年龄大,反而越老越吃香。 这个岗位不在乎你是 20岁,还是40岁,多大年龄都能极快上手。 这个就是嵌入式 IT行业! 下面一份详细的嵌入式学习规划,送给你,让你少走弯路。 1、打好嵌入式软件编程的基础 这一阶段重点打好嵌入式软件编程的基础,包括常用的数据结构,特别是 C语言中对指针的理解和应用。这一阶段的主要目的是学习编程语言、开发环境、和培养自己的编程思维,为进一步学习嵌入式开发打下良好的基础。 2、学习ARM体系结构编程 这一阶段才是真正的嵌入式编程,首先我们要选择一款嵌入式 CPU和一款嵌入式开发平台,目前ARM 嵌入式CPU应用最广泛,这一阶段重点是学习嵌入式CPU的裸机编程: * 熟悉中断 * 定时器 * 串口 * NAND FLASH * 网络控制器 * LCD屏、触摸屏 * I2C 设备 * SPI 设备 常用嵌入式外围设备的硬件工作原理,以及如何使用 C语言来编程、控制这些硬件。这一阶段除了要学习对硬件编程之外,还需要学习嵌入式硬件的知识

VxWin--KUKA Robot操作系统

南笙酒味 提交于 2019-12-05 06:45:20
VxWin是KUKA Robot 操作系统 由Vxworks和Win95 或WinXP构成,采用TCP/IP通讯 其中 VxWorks是一种嵌入式的实时操作系统,所谓嵌入式系统就是用户自己开发设计板子,板子上通常有一颗CPU,VxWorks支持32位的 CPU,包括Intel公司的x86、Motorola公司的68k和PowerPC、MIPS、ARM、Intel公司的i960、Hitachi公司 的SH。我们设计的这块板子通常没有软件的自开发能力,所以我们需要一台通用机来辅助开发,这台通用机可以是PC或工作站,我们称辅助我们软件开发的通用 机为宿主机(Host),用户自己开发的板子为目标机(Target)。宿主机上要有一个集成开发环境(IDE)来辅助我们的软件开发,这套集成开发环境 可以运行在Windows95/NT或 UNIX下,包括交叉编译器(Cross Compiler)和交叉调试器(Cross Debugger),所谓交叉编译器就是在宿主机上编译生成可以在目标机上运行的代码IMAGE,交叉调试器就是通过宿主机和目标机之间的某种耦合方式实 现前后台调试。我们称宿主机上的这套集成开发环境为Tornado,编译生成的目标机上的可执行代码IMAGE为VxWorks。在系统安装的时候,集成 调试环境和VxWorks的原材料(一些obj文件)都安装到宿主机上