
Embedded Technology
文章平均质量分 80
kmajian
在我的字典里没有"失败"这个词,只有暂时停止成功.
展开
-
C语言嵌入式系统编程修炼之一:背景篇
不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,C语言--一种"高级的低级"语言,则成为嵌入式系统开发的最佳选择。笔者在嵌入式系统项目的开发过程中,一次又一次感受到C语言的精妙,沉醉于C语言给嵌入式开发带来的便利。 图1给转载 2006-03-13 16:11:00 · 1094 阅读 · 0 评论 -
基于ARM的嵌入式MPEG-4远程网络监控系统的设计与实现
基于ARM的嵌入式MPEG-4远程网络监控系统的设计与实现摘 要:本文详细介绍了基于ARM的嵌入式MPEG-4远程网络监控系统的视频采集、压缩、传输和系统控制等方面的设计,提供了基于TCP/IP协议的C/S软件结构和多线程通信的设计与实现方法。在远程监控系统的应用中,往往要求监控中心的主机可以同时接收一路或多路监控数据,并且可以同时发送一路或多路的控制指令。因此,如何在有限带宽的前提转载 2006-03-09 09:44:00 · 2039 阅读 · 0 评论 -
使用ADS1.2进行嵌入式软件开发(上)
概述 嵌入式应用程序通常都是在样机环境下调试与开发的,这种环境与最终产品之间并不完全相同。因此,在系统调试阶段就考虑应用程序在最终目标硬件中的运行情况是非常重要的。 本文旨在讨论如何将一个开发/调试环境下的嵌入式应用程序转移到最终独立运行的目标系统中去,并提到了ARM ADS1.2开发工具包的一些功能特性及其在这个过程中所起到的作用。 使用ADS开发转载 2006-03-30 17:14:00 · 3468 阅读 · 0 评论 -
使用ADS1.2进行嵌入式软件开发(下)
放置堆栈和heapScatterloading机制提供了一种指定代码和静态数据布局的方法。下面介绍如何放置应用程序的堆栈和heap。* _user_initial_stackheap重定向应用程序的堆栈和heap是在C库函数初始化过程中建立起来的。可以通过重定向对应的子程序来改变堆栈和heap的位置,在ADS的库函数中,即_user_initial_stackheap()函数。_user_init转载 2006-03-30 17:15:00 · 2804 阅读 · 0 评论 -
在Linux下为嵌入式Linux内核编译busybox
笔者所用的是一块ARM9 Atmel 9200的开发板,Linux内核为2.4.27, 交叉编译器为2.95.3,编译环境为RedHat9 Linux下。1、从http://www.busybox.net/downloads下载到busybox,笔者下载的为busybox1.1.3,下载后解压到一个目录下,如 /tmp 目录下;2、进入解压后的目录,输入make menuconfig 进原创 2006-09-15 15:23:00 · 8714 阅读 · 0 评论 -
构建嵌入式Linux的Ramdisk
1,进入工作目录,建立需要的目录$mkdir rdmnt // 新ramdisk挂载的目录$mkdir rdimg // 产生的镜像文件的目录$mkdir rdold // ramdisk旧文件目录$mkdir rdold/tmp // 挂载旧ramdi原创 2006-09-15 15:53:00 · 2695 阅读 · 0 评论 -
Philips P89LPC917单片机对温度芯片DS1820的取温度笔记
硬件环境: P89LPC917, DS1820温度芯片, VDD=3.3V, 调试串口;软件环境: Keil uVision2, 串口通讯控制器(用来接收串口数据)过程: 看了资料, 其有着许多C51单片机操作DS1820的实例,但是其晶振频率都是参照标准的51芯片的,为11.059MHz. 而P89LPC917的晶振是7372800Hz.由于单总线对时序十分的严谨,而且十分的短暂,所原创 2006-06-19 13:11:00 · 1945 阅读 · 1 评论 -
MISRA-C :2004 规则常用要点
规则2.1 强制 汇编语言应该被封装并隔离。在需要使用汇编指令的地方建议以如下方式封装并隔离这些指令(a) 汇编函数(b) C 函数(c) 宏出于效率的考虑有时必须要嵌入一些简单的汇编指令如开关中断如果不管出于什么原因需要这样做那么最好使用宏来完成#define NOP asm (“ NOP”);规则2.2 强制 源代码应该使用 /*…*/ 类型的注释 。规则2.4 建议 代码段不应被注释掉(co转载 2006-12-05 09:54:00 · 4746 阅读 · 0 评论 -
使用Philips ARM7 LPC2119 通过SPI与炬力ATT7022B电力DSP芯片的通讯
一、炬力ATT7022B ATT7022B是一款具有高可靠性、高精度、高稳定性的三相基波/谐波电能计量芯片,在1000:1的动态范围内功率测量精度优于0.1%,电流和电压的有效值测量精度优于0.5%。ATT7022B可以单独计量基波电能,消除谐波对电能计量的负面影响,为电力部门公平计费提供参考依据。其内部集成7通道的16位高精度ADC和24位高速DSP,第七路ADC可用于防窃电,片原创 2006-08-08 11:31:00 · 4482 阅读 · 1 评论 -
ARM处理器中断处理的编程实现
ARM编程特别是系统初始化代码的编写中通常需要实现中断的响应、解析跳转和返回等操作,以便支持上层应用程序的开发,而这往往是困扰初学者的一个难题。中断处理的编程实现需要深入了解ARM内核和处理器本身的中断特征,从而设计一种快速简便的中断处理机制。需要说明的是,具体的上层高级语言编写的中断服务函数不在本文的讨论范围之内。 ARM处理器异常中断处理概述 当异常中断发生时,系统执行转载 2006-03-30 17:12:00 · 3477 阅读 · 0 评论 -
如何为嵌入式开发建立交叉编译环境
如何为嵌入式开发建立交叉编译环境 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。在裁减和定制Linux,运用于你的嵌入式系统之前,由于一般嵌入式开发系统存储大小有限,通常你都要在你的强大的pc机上建立一个用于目标机的交叉编译环境。这是一个由编译器、连接器和解释器组成的综合开发环境。交叉编译工具主要由 b转载 2006-02-27 13:52:00 · 1882 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之六:性能优化
使用宏定义 在C语言中,宏是产生内嵌代码的唯一方法。对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法。 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个: 错误做法: #define MIN(A,B) ( A 正确做法:转载 2006-03-13 17:18:00 · 1048 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之二:软件架构篇
模块划分 模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了>相对论),C语言模块化程序设计需理解如下概念: (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明; (2) 某模块转载 2006-03-13 16:27:00 · 1093 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之三:内存操作
数据指针 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况: (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址; (2) 两个CPU之间以双端转载 2006-03-13 17:04:00 · 1190 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之四:屏幕操作
汉字处理 现在要解决的问题是,嵌入式系统中经常要使用的并非是完整的汉字库,往往只是需要提供数量有限的汉字供必要的显示功能。例如,一个微波炉的LCD上没有必要提供显示"电子邮件"的功能;一个提供汉字显示功能的空调的LCD上不需要显示一条"短消息",诸如此类。但是一部手机、小灵通则通常需要包括较完整的汉字库。 如果包括的汉字库较完整,那么,由内码计算出汉字字模在库中的偏移是十分简单的:汉字库是按照转载 2006-03-13 17:15:00 · 1173 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之五:键盘操作
处理功能键 功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。例如,主画面如图1: 图1 主画面 当用户在设置XX上按下Enter键之后,画面就切换到了设置XX的界面,如图2:转载 2006-03-13 17:17:00 · 1022 阅读 · 0 评论 -
嵌入式词汇(一)
ASIC(专用集成电路) Application-Specific Integrated Circuit. A piece of custom-designed hardware in a chip. 专用集成电路。一个在一个芯片上定制设计的硬件。address bus (地址总线) A set of electrical lines connected to the processor an转载 2006-03-16 17:53:00 · 1180 阅读 · 0 评论 -
嵌入式词汇(二)
flash memory (闪存) A RAM-ROM hybrid that can be erased and rewritten under software control. Such devices are divided into blocks, called sectors, that are individually-erasable. Flash memory is commo转载 2006-03-23 10:07:00 · 1190 阅读 · 0 评论 -
模拟I2C总线多主通信研究与软件设计
模拟I2C总线多主通信研究与软件设计作 者:■ 西安电子科技大学 郑旭阳 李兵兵 黄新平摘要:介绍模拟I2C总线的多主节点通信原理,并提出一种新的实现方法。这种采用延时接收比较来实现仲裁的方法,可使不具有I2C接口的普通微控制器(MCU)能够实现模拟I2C总线的多主通信,同时对I2C总线的推广起到了积极作用。关键词:模拟I2C总线 仲裁 多主通信 I2C总线(Inter IC BUS)是转载 2006-02-24 14:05:00 · 1652 阅读 · 0 评论 -
嵌入式软件测试的十大秘诀
在嵌入式软件开发过程中,一般来说,花在测试和花在编码的时间比为3:1(实际上可能更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。很多年前,一位开发人员为了在对嵌入式有更深层次的理解,向Oracle询问了这样的一个问题:我怎么才能知道并懂得我的系统到底在干些什么呢? Oracle面对这个问题有些吃惊,因为在当时没有人这么问过,而同时代的嵌入式转载 2007-01-16 17:33:00 · 1625 阅读 · 0 评论