![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
laihw
这个作者很懒,什么都没留下…
展开
-
什么是3C融合
问题:什么是3C融合(3c fusion)?3C融合(3c fusion)是什么意思?3C融合(3c fusion)是指计算机(Computer)、通讯(Communication)和消费类电子产品(Consumer Electrics),3C融合便是利用数字信息技术激活其中任何一个环节,通过某种协议使3C的三个方面实现信息资源的共享和互联互通,从而满足人们在任何时间、任何地点通过信息关联应用转载 2008-10-16 16:18:00 · 350 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之二:软件架构篇
模块划分 模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了>相对论),C语言模块化程序设计需理解如下概念: (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明; (2)转载 2008-11-10 11:21:00 · 153 阅读 · 0 评论 -
uCOSII操作系统移植笔记
笔记一:今天粗略的看了一下周立功关于uc/osII在lpc2104上的移植方面的说明,这之中印象最深的应该是irq中断和软中断方面的处理,由于arm芯片的特殊性(拥有7种处理器模式),即每种处理器模式都有自己的堆栈,这样在处理堆栈的时候就会相应的麻烦一些。在响应异常时,该移植计划在初始代码里面比在没有操作系统的初始代码多了irq的处理,移植里面的irq处理多了由汇编语言编写的对任务环境的保存,转载 2008-11-08 15:52:00 · 796 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之六:性能优化
使用宏定义 在C语言中,宏是产生内嵌代码的唯一方法。对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法。 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个: 错误做法:#define MIN(A,B) ( A <= B ? A : B ) 正确做法:#define MIN(A,B) ((A)<= (B)转载 2008-11-10 11:24:00 · 276 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之三:内存操作
数据指针 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况: (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址; (2)转载 2008-11-10 11:22:00 · 172 阅读 · 0 评论 -
volatile两篇
volatile修饰的变量表示它的值会可能被意想不到的改变了 比如输入口,或者是一些反映什么状态的寄存器,即使不操作,它的值也有 可能被改变了。 加上volatile修饰之后,编译器就不会假设它的值了,而是每次都重新读取。 volatile 影响编译器编译的结果,指出,volatil原创 2008-11-07 23:16:00 · 199 阅读 · 0 评论 -
前后台系统
早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。 前台程序通过中段来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。在程序运行原创 2008-10-30 22:48:00 · 309 阅读 · 0 评论 -
BSP板级支持包
BSP板级支持包(board support package),是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行与硬件主板。在嵌入式体统软件的组成中,就有BSP。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux原创 2008-10-30 22:47:00 · 469 阅读 · 0 评论 -
嵌入式中的C语言测试
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某转载 2008-10-25 18:12:00 · 219 阅读 · 0 评论 -
如何判断处理器的小端OR大端格式
题目:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1。解答: int checkCPU(){ union w { int a; char b; } c; c.a = 1原创 2008-10-25 15:27:00 · 369 阅读 · 0 评论 -
避免编译器优化的用法
volatile的本意是“易变的”由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。比如:static int i=0;int main(void){...while (1){if (i) dosomething();}}/* Interrupt service routine. */void ISR_2(void){i=1;}程序的本意是希望ISR_2中断产生时,在转载 2008-10-25 18:47:00 · 2018 阅读 · 0 评论 -
#define rGPACON(*(volatile unsigned long *)0x56000000)
对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。如果系统结构支持独立的IO地址空间,并且是端口映射,就必须使用汇编语言完成实际对设备的控制,因为C语言并没有提供真正的“端口”的概念。如果是内存映射,那就方便的多了。 举个例子,比如像寄存器A(地址假定为0x48000000)写入数据0x01,那么就可以这样设置了。#define A (*(volati原创 2008-10-25 18:51:00 · 597 阅读 · 0 评论 -
硬中断和软中断
软中断:编程异常通常叫做软中断软中断是通讯进程之间用来模拟硬中断的 一种信号通讯方式。中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机自动进行中断处理或完成软中断信号对应的功能软中断是软件实现的中断,也就是程序运行时其他程序对它的中断;而硬中断是硬件实现的中断,是程序运行时设备对它的中断。 1.软中断发生的时间是由程序控制的,而硬中断发生的时间是随机的2.软中断是由原创 2008-10-20 15:14:00 · 440 阅读 · 0 评论 -
嵌入式系统发展亟待成立产业联盟
在前所未有的发展机遇下,中国嵌入式系统产业近几年来获得了长足的进步和迅猛的发展,无论从规模上还是应用领域覆盖面上都跨入了一个新的时代。赛迪顾问研究显示,2007年中国嵌入式系统产业规模达到2218.1亿元,增长32.3%。2005-2007年的复合增长率达到23.1%。增长速度持续高出同期全球嵌入式系统产业的平均增速。 但在巨大成就的光环背后,我们仍能观察到中国嵌入式系统产业发展存在的一些隐忧转载 2008-10-19 14:08:00 · 508 阅读 · 0 评论 -
同济大学软件学院院长谈择业—关于嵌入式方向
嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top转载 2008-10-19 00:18:00 · 552 阅读 · 0 评论 -
嵌入式行业的各个方向
1,根据你的状况,强烈建议不要去参加培训班。我参加过一个培训班(就不说是什么班了,反正是你提到的一个很有名的培训班),基本就是老师带着你熟悉开发板的用法。 2,你自己也有开发板,也有书籍。但是不知道嵌入式是什么,是做什么的,是吧?当然我不会认为你不知道嵌入式的概念。但是嵌入式的学习也有侧重点啊,比如偏硬件,或者偏软件,虽然嵌入式是软硬一体的。但是这并不代表偏硬就可以不学软,偏软就可以不学硬。只是侧转载 2008-10-19 00:20:00 · 374 阅读 · 0 评论 -
C语言中的内存管理
相比静态地分配内存空间,使用动态内存分配具有明显的优势:1, 分配空间的大小够精确: 设想一个读取用户输入行的程序, 如果使用静态分配的数组作为buffer, 那么, 你如何确定该数组的长度呢? 太大或太小都不合适. 因为你无法事先知道用户输入字符串的长度. 而使用动态内存分配就精准多了.2, 静态分配的空间大小无法更改, 而动态分配的内存大小是可调的.所以, 理解C语言中的动态内存分转载 2008-11-13 19:26:00 · 406 阅读 · 0 评论