博文

嵌入式领域Linux系统为什么为众多厂商所青睐(2013-03-22 10:19:00)

摘要:以下是本人的一些分享,我热爱编程,希望能多交编程的爱好者,如果你也是其中一名,那么请加好友,大家关注一下,下面的文章是自己觉得一些有用的东西,留下来给自己当笔记,当然也希望能帮助到你,首先感谢你的阅读~!
在经济领域内,任何新产品的出现都必然面临着挑战和被挑战。而计算机软件作为一个特殊的商品,目前正面临着开放源代码的挑战。开放源代码促进了计算机技术的交流与发展,得到了越来越多的肯定与支持。但开源并不意味着免费。用户在获取并使用软件的同时,也在使用厂商提供的服务和安全保障。而服务和安全保障是计算机软件的真正价值所在,这是永远无法免费的。同时对于安全性和保密性要求较高的领域来说,免费和非自主版权并不是一个很好的选择。

谈到开源就不得不谈谈Linux系统。目前以Linux系统为代表的开源系统软件对传统的非开源系统软件发起了强有力的挑战。Linux系统的优秀特性和源代码的完全免费开放为我们提供了追赶世界先进水平的有利工具,但并不是唯一工具。如果我们仅局限于利用Linux来发展我们自己的计算机软件产业,那么是毫无前途可言的。

Linux系统之所以为众多厂商所青睐,除其自身的技术优秀外,还在于它为计算机软件厂商提供了廉价经济甚至免费的开发平台。但Linux系统并不是完美无缺的。在嵌入式系统上运行Linux的一个缺点是Linux体系提供硬实时性能需要添加实时软件模块。而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点(内核空间更多的使用指针)。

另一方面,现成的实时操作系统(RTOS)完全是为实时性能而设计的,它通过在由用户而非系统级进程启动时分配给某个进程以高于其它进程的优先级的方式来实现实时性。进程在操作系统看来就是在内存里或硬盘驱动器上执行的程序。给他们指定进程ID或者数字标识符为的是避免直接使用指针,野指针的使用后果是灾难性的,有利于提高可靠性。

广州达内凭借不断创新的“达内教学系统(Tarena Teaching System - TTS)”,达内科技已在中国20多个主要城市建立......

阅读全文(1973) | 评论:1

揭开嵌入式c面试题背后的玄机(2013-01-16 16:15:00)

摘要: 今天老大让我针对一个面试者出些嵌入式培训方面的面试题,主要是想对他的技术深度进一步了解。我就出了下面这些问题,每个问题背后都是考察一个嵌入式程序员应该具备的相关技能。当然这些只是我的个人理解,不一定正确。在此与大家分享,只是希朋友们能够得到一点点启发:如何抓住每一个契机展现你的与众不同?同样的技术问题,很多人可能都能够回答得对,但有些人只是知其然而不知所以然。其实面试官每一个问题背后通常都隐藏着一个考察点。如果我们能够透过问题看到背后的实质,在回答出答案的时候还能够借机发挥,我相信90和100分的差别就出来了。哪个面试官不喜欢招一个喜欢思考、能透过现象看本质的员工呢~
下面我们来看看嵌入式C面试题背后到底藏何玄机~。以下仅是个人的一些想法,欢迎大家讨论,拍砖的轻点~~
////////////////////////////
1、 int a=2,b=11,c=a+b++/a++; 则c值为多少?
【考点】编码规范。
表面上考察你对运算符优先级的掌握程度,但实际上优先级这些玩意很难死记硬背得住?大家的疑惑不就是运算符的结合顺序么?那么如何去避免呢?c=a+((b++)/(a++))不就行了么,其实问题背后考察的是你的编码规范,如何写清晰易懂的代码,如何在一个团队中让自己的代码狠容易毫无偏差的让新人看懂~
2、 Static用在全局变量定义和函数内部局部变量定义有何区别?
【考点】编码规范及模块化设计。
Static变量的两个属性涉及存储位置及可见域。在大型的程序设计中static全局变量可以有效的避免名字空间的重复及无意的变量引用,这样可以有效的提高程序设计的安全性,同时也利用模块化作业
3、 在程序设计中哪些地方需要使用define?如何用define来定义一年内有多少小时的常量?
【考点】可移植性。
嵌入式程序设计的特点就是软硬件平台可变性,有效利用define常量可以提高程序的可移植性,这样改动方便,不易出错
4、 Define宏语句和inline函数有什么区别?
【考点】时空效率及宏的副作用。
嵌入式系统平台通常存储资源有限,但同时又对......

阅读全文(1692) | 评论:1

marvell笔试题(嵌入式软件)(2013-01-16 16:11:00)

摘要:有幸去Marvell参加面试,由于其要求WCDMA/GSM之类的,我还特地恶补了下这方面的知识。后来坐了2个小时的地铁后,到达了Marvell。公司还蛮不错的,里面环境都还可以。我投了这家公司也是同学介绍的。在技术面试之前,先进行了1个小时的笔试,笔试主要是C语言的东西,还有附加题里有些ARM的知识。
(1)MIN宏定义;
(2)SWAP宏定义;
(3)big endian 和 little endian区别,举例说明;
(4)enum枚举;
(5)extern;
(6)一个变量除以16(不能用*),除以15,如何实现,(<<);......

阅读全文(3677) | 评论:2