技术
嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。
嵌入式操作系统(Embedded Operation System,EOS)是指用于嵌入式系统的操作系统。嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。
<strong>嵌入式LINUX</strong>
<strong>1、IIC---SDA、SCL</strong>
IIC协议 发明者 Philips公司 通过IIC芯片收取版权税
近距离通信
标准模式 100KBIT/s
快速模式 400K 常用 S3C2440使用
高速模式 3.4M
上拉电阻 10K 如果速度越快,上拉电阻越小,增加驱动能力
<strong>2、IIC读写过程</strong>
IIC读过程:
1)开始
2)写芯片地址
3)写芯片内部地址
4)将写变成读
5)读数据
6)结束
IIC写过程
1)开始
在上一次文档中,我们阐述了如何使用printf函数在串口终端上打印输出,这种调试方法能在一定程度上满足我们的调试要求。但是有的时候串口资源已经被占用或为了节约开发时间不使用串口,这时我们就需要一个不依赖于MCU外设的调试方法。今天就向大家介绍一个非常经典的调试工具-半主机(semihosting)。
半主机是在调试ARM设备时,主机电脑可以与设备进行输入输出通信的一个机构。这个机构可以直接调用C语言库中类似printf和scanf的函数。这个机构的好处在于允许用户使用主机电脑的输入输出设备,方便了工程师们的软件开发过程。Semihosting 是通过设置软件中断(SWI)来实现的。调用了适当的软件中断和易于操作的软件中断的向量。关于半主机的实现原理,感兴趣的读者可以自行查阅资料,本篇文章重点介绍如何将半主机模式应用到实际的软件开发过程中。
微控制器(MCU)广泛应用在各行各业,如各式家电、工业自动化,实时控制、资料采集等领域,为因应工控所需的实时(Realtime)控制、快速回应等需求,因此MCU大多搭载RTOS(实时操作系统)运行。随著物联网的兴起,软件业也为RTOS加入物联网的成分,以提早卡位物联网的核心软件市场…
<strong>各种处理器专用之OS</strong>
在一般功能(General-purpose)的处理器市场分类中,若以功能与执行速度来说,大致分为CPU > MPU > MCU。CPU的功能最强,主要应用在计算机产品;MPU功能次之,其应用多元,主要应用在嵌入式系统与精简型计算机等多种;而MCU则是以单一应用为主,应用在各式家电、电子产品、嵌入式产品、穿戴式装置、物联网(IoT)应用产品等控制应用。
作为一名嵌入式软件系统工程师,掌握住高效快捷的调试方法,往往会在实际的项目开发中达到事半功倍的效果。今天就跟大家讲一讲我们在项目开发过程中,那些被我们忽视的调试法宝吧。
通过串口打印实时打印出MCU的运行状态,想必大家都有用过,可你是不是仍然停留在串口打印字符函数(比如说函数名是StringUartSend)都需要自己写的时代。纵然我承认你C语言功底很深厚,但是其实你已经OUT了。现在是讲究效率的时代,时间就是金钱,如果我们能够充分的利用C语言函数库,会让很多代码的编写变的很简单。
嵌入式领域的发展日新月异。你也许还没有注意到,但是如果你停下来想一想微控制器系统十年前的样子并与当今的微控制器系统比较一下,你会发现PCB设计、元件封装、集成度、时钟速度和内存大小已经经历了好几代的变化。在这方面最热门的话题之一是仍在使用8位微控制器的用户何时才能摆脱传统架构并转向使用现32位处理器架构,如基于ARM Cor tex-M的微控制器系列。在过去几年里,嵌入式开发者向32位微控制器的迁移一直呈现强劲势头。本文将讨论加速这种迁移的一些因素。
切换的原因? 在本文的第一部分,我们将总结为什么嵌入式开发者应该考虑向32位微控制器迁移。
<strong>ARM常用编程软件</strong>
1) IAR For ARM
支持芯片多,代码优化也不错,操作方便
2) KEIL MDK4.12
keil公司2005年已经被ARM公司收购(现在常用)
3) ADS1.2
支持芯片到ARM11(不升级了,现在较少用,2005年ARM公司停止对它的更新),由KEIL公司为其做编译器
4) RVDS
功能最强,价格很高,使用较复杂
<strong>keil for ARM的一些设置要注意</strong>
keil里面镜像组成部分
RW:存放已初始化的全局变量
在单片机应用开发中,代码的使用效率、单片机抗干扰性和可靠性等问题仍困扰着很多工程师。现归纳出单片机开发中应掌握的几个基本技巧,供大家参考。
<strong>1、如何减少程序中的bug</strong>
对于如何减少程序的bug,应该先考虑系统运行中应考虑的超范围管理参数。物理参数:这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。资源参数:这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。应用参数:这些应用参数常表现为一些单片机、功能单元的应用条件。过程参数:指系统运行中的有序变化的参数。
<strong>2、如何提高C语言编程代码的效率</strong>
微控制器(MCU)深入人们应用生活,几乎大小设备都看得到MCU踪影,在MCU导入DSP数位讯号处理器、FPU浮点运算单元功能后,MCU更大幅扩展 元件可适用范围,这几年来,在众多MCU大厂纷纷针对旗下商品推出多样整合方案,不管是产品策略还是市场区隔,也让MCU市场更加丰富多元。
MCU(Microcontroller Unit)深入生活应用是不容易质疑的趋势,尤其是MCU在功能优化或市场区隔目的下,进行DSP(digital signal processor)数位讯号处理器或FPU(Floating Point Unit)浮点运算单元功能整合,使得MCU的可应用场域大幅扩展。
选择一款最适合您自己应用的超低功耗mcu并非易事,并不像对比数据表前面的数据那么简单。我们必须详细对比 mcu 功能,包括:断电模式、 定时系统、 事件驱动功能、 片上外设、 掉电检测与保护、 漏电流、 处理效率。还可以关闭外设时钟,注意I/O口的电平状态等措施来降低功耗。
循序渐进式的功耗优化已经不再是超低功耗mcu的游戏规则,而是“突飞猛进”模式,与功耗相关的很多指标都不断刷新记录。我们在选择合适的超低功耗mcu时要掌握必要的技巧,在应用时还需要一些设计方向与思路才能够更好的应用。
<strong>一、超低功耗mcu-的选择方法</strong>
WiFi物联网小车设计方案,采用电脑上位机软件通过无线WiFi 控制小车的运动,采集小车的信息。与传统的“智能小车”相比,主要特点在于使用32 位高性能单片机控制、互联网通信机制和电脑上位机软件控制。此方案融合了电脑软件、网络通信、图像处理、图形显示、运动控制、速度采集和温度采集等技术,具有“物联网”的相关特点。传统的小车控制大多使用红外通信,使用遥控器进行控制,不但受到距离的限制,而且远没有电脑软件直观美观。互联网通信使小车具备远程控制的能力,这是红外通信望尘莫及的。此外,本方案小车控制芯片采用Cortex-M3单片机,该单片机具有极丰富的外设,这给小车以后功能升级和扩展奠定了基础。
<strong>1、总体设计方案</strong>
最近做一个项目,要求写一个脚本文件来编译单片机源文件。当时就纳闷了,编写单片机源程序的Keil平台不是已经够强大了,为什么还要单独写一个bat脚本来对源程序进行编译???经过向大神请教,原来大神编写了智能家居的控制程序,调试时对于不同的家电都需要修改不同的宏定义(对于任何家电的控制都用一个宏定义来表示),这样每次调试时都得进Keil编译器,很浪费时间,再说由于有时候改动并不一定在已打开IED的情况,也不想每次都必须打开Keil来编译。于是就需要编写一个脚本文件来实现对源程序的编译,并且根据输入的不同能选择不同的宏定义来编译,这样就不需要每次都运行Keil了。
作者:张仕宗
LED数码管在单片机系统中应用非常普遍,是由发光二极管构成的。数码管由7个发光二极管组成的一个“日”字形,如果需要显示小数点,那么就再加上一个点,就是8段数码管。
数码管显示亮度高,相应速度快,分共阴极和共阳极两种形式,常用的有单个的和4联的,还有两联的和专门用来显示时间的。
本文将详细分析单片机、ARM、FPGA嵌入式几者之间的特点及区别。
<strong>单片机的特点:</strong>
(1)受集成度限制,片内存储器容量较小,一般内ROM:8KB以下;
(2)内RAM:256KB以内。
(3)可靠性高
(4)易扩展
(5)控制功能强
(6)易于开发
<strong>ARM的特点:</strong>
(1) 自带廉价的程序存储器(FLASH)和非易失的数据存储器(EEPROM)。这些存储器可多次电擦写,使程序开发实验更加方便,工作更可靠。
MCU和DSP最近在制作电子类产品方面都应用广泛,DSP在数字信号处理、通信领域应用较多,MCU在自动控制、智能信号上应用广泛。
处理器通常可以分为三大类,就是数字信号处理器-DSP、微控制器-MCU,还有中央处理器-CPU。为便于大家理解它们在应用中的差异,我们不妨作这样的比喻:DSP好比是一次方程式赛车的引擎,追求的是高速高效;MCU好比是摩托车引擎,追求的是灵巧便捷;CPU则好比是豪华家用车的引擎,追求的是面面俱到。当然DSP与MCU的融合将相应成辉,可以满足更多更广的应用需求。
MCU的特点:
适合实时控制和操作任务
可预测的执行周期
擅长中断处理,特别是外部异步事件
比较多的I/O功能,
程序较大
丰富的片上外设
DSP的特点:
<strong>1、引言</strong>
随着集成电路集成度的提高,越来越多的元件集成到芯片上,电路功能变得复杂,工作电压也在降低。当一个或多个电路里产生的信号或噪声与同一个芯片内另一个电路的运行彼此干扰时,就产生了芯片内的EMC问题,最为常见的就是SSN(Simultaneous Switch Noise,同时开关噪声)和Crosstalk(串音),它们都会给芯片正常工作带来影响。由于集成电路通过高速脉冲数字信号进行工作,工作频率越高产生的电磁干扰频谱越宽,越容易引起对外辐射的电磁兼容方面问题。基于以上情况,集成电路本身的电磁干扰(EMI)与抗扰度(EMS)问题已成为集成电路设计与制造关注的课题。
学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。过去习惯于传统电子领域的工程师、技术员正面临着全新的挑战,如不能在较短时间内学会单片机,势必会被时代所遗弃,只有勇敢地面对现实,挑战自我,加强学习,争取在较短的时间内将单片机技术融会贯通,才能跟上时代的步伐。
但是,许多的学习者(包括在校学生),他们总不得要领,从一开始学习时的热情高涨,到最后的沮丧放弃,使得大家对单片机产生了既爱又怕的感觉。
其实关于Flash调试和RAM调试的概念,我也是从调试Kinetis的时候才开始接触,最初只是随便用用,没有深究,之后用的多了才开始深入研究两者之间的区别,发现里面大有文章可作,这也是我为什么后来又把本文的前缀改成【原创精品】的缘故,翻看了网上的一些资料,大多是授人以鱼的文章,所以觉着有必要在这里谈谈自己的一点看法,做个笔记。
win常用的分区格式有三种,分别是FAT16、FAT32、NTFS格式。在Linux操作系统里有Ext2、Ext3、Linux swap和VFAT四种格式。
<strong>FAT16:</strong>
作为一种文件名称,FAT(File Allocation Table,文件分配表)自1981年问世以来,已经成为一个计算机术语。由于时代的原因,包括Windows、MacOS以及多种Unix版本在内的大多数操作系统均对FAT提供支持。
名称:IIC协议 EEPROM24c02 通过串口通信存数读取数据
内容:此程序用于检测EEPROM性能,测试方法如下:写入24c02一个数据,然后在内存中改变这些数据, 掉电后主内存将失去这些信息,然后从24c02中调入这些数据。看是否与写入的相同。
电脑通过串口发送一个十六进制的数据到单片机,存储进24c02,要求断电重启后在数码管上显示上一次发送的数据。
(本例是1us机器周期,即晶振频率要小于12MHZ)
[cpp] view plain copy
#include <reg52.h> //头文件的包含
#include <intrins.h>