龙人嵌入式系统开发和ODM研发

龙人嵌入式系统开发和ODM研发—arm9开发板和arm7开发板

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  8 随笔 :: 5 文章 :: 0 评论 :: 0 Trackbacks

2008年5月10日 #

谈起嵌入式系统板,大家应该很熟悉了。那么如何自己动手做一块嵌入式系统开发板呢?这里我将自己在做arm开发时的一点小经验总结如下,希望多初学嵌入式arm开发的朋友有所帮助。

Tag:嵌入式系统 arm开发 嵌入式开发 arm开发板

1做个最小系统板:如果你从没有做过ARM的开发,建议你一开始不要贪大求全,把所有的应用都做好,因为ARM的启动方式和dsp或单片机有所不同,往往会遇到各种问题,所以建议先布一个仅有Flash,SRAMSDRAMCPUJTAG、和复位信号的小系统板,留出扩展接口。使最小系统能够正常运行,你的任务就完成了一半,好在ARM的外围接口基本都是标准接口,如果你已有这些硬件的布线经验,这对你来讲是一件很容易的事情。

2
写启动代码,根据硬件地址先写一个能够启动的小代码,包括以下部分:
初始化端口,屏蔽中断,把程序拷贝到SRAM;完成代码的重映射;配置中断句柄,连接到C语言入口。也许你看到给你的一些示例程序当中,bootloader会有很多东西,但是不要被这些复杂的程序所困扰,因为你不是做开发板的,你的任务就是做段小程序,让你的应用程序能够运行下去

3
仔细研究你所用的芯片的资料,尽管ARM在内核上兼容,但每家芯片都有自己的特色,编写程序时必须考虑这些问题。尤其是女孩子,在这儿千万别有依赖心理,总想拿别人的示例程序修改,却越改越乱。

4
多看一些操作系统程序,在ARM的应用开放源代码的程序很多,要想提高自己,就要多看别人的程序,linux,uc/os-II等等这些都是很好的原
码。

6.
如果你是作硬件,每个厂家基本上都有针对该芯片的DEMO板原理图。先将原理图消化。这样你以后做设计时,对资源的分配心中有数。器件的DATSHEET一定要好好消化。

7.
如果做软件最好对操作系统的机理要有所了解。当然这对软件工程师来说是小菜一碟。但如果是硬件出身的就有点费劲。

经过以上7步相信你定会做出自己满意的嵌入式系统板,如果在制作过程中有什么问题随时可拨打电话:手机:13148818895   小灵通:21192100余焕丽我们共同探讨。另外我人龙人公司研发的嵌入式开发板还不错介绍给大家网址:http://www.embedm.com有时间不防去看看噢!

posted @ 2008-08-25 15:32 龙人嵌入式开发 阅读(161) | 评论 (0)编辑 收藏

近日龙人嵌入式系统开发工程师经过不断研究,终于对嵌入式arm仿真器断点的分类做了全面的概括。目前,越来越多的嵌入式开发公司和工程师开始采用JTAG方式的ICE仿真器来进行程序的调试工作。传统的全仿真方式(Full ICE)正在逐渐被使用灵活、成本低廉的JTAG仿真方式所取代。下面龙人向您具体讲解:

Tag:嵌入式系统开发 arm7 arm9 arm11 arm仿真器

断点可分为硬件断点和软件断点两大类:

1.硬件断点需要目标CPU的硬件支持,当前流行的ARM7/9内部硬件设计提供两组寄存器用来存贮断点信息,所以ARM7/9内核最多支持两个硬件断点,而ARM11则可以支持到8个硬件断点。这与调试器无关。

2.软件断点则是通过在代码中设置特征值的方式来实现的。当需要在某地址代码处设置软件断点的时候,仿真器会先将此处代码进行备份保护,然后将预先设定好的断点特征值(一般为0x0000等不易与代码混淆的值)写入此地址,覆盖原来的代码数据。当程序运行到此特征值所在的地址时,仿真器识别出此处是一个软断点,便会产生中断。当取消断点时,之前受保护的代码信息会被自动恢复。

硬件断点可以设置在任何位置的代码上,包括ROMRAM;而软件断点由于需要修改相应地址的值,所以一般只能设在RAM上,但是数量可以不受限制。由于硬件断点设置的灵活性,所以是最优先选用的断点资源,但是两个断点往往很难满足工程师进行深入调试的需要,于是软件断点可以作为硬件断点的补充资源来使用。

由于通常的软件断点只能设在RAM运行的代码上,而随着系统的代码量越来越大,特别是在移动通信领域,扩充大容量的RAM势必会增加产品的成本,所以现在很多系统直接在FlashROM上运行代码。对于这种在FlashROM上运行代码的系统,一般的软件断点是无法设置的,这也是软件断点的局限性。对于这样的系统,只能通过交替使用两个硬件断点满足需要,但是会带来一定的不便。

要很好的解决这一矛盾,只有使仿真器增加在FlashROM上设置软件断点的功能,拓展仿真器中可供利用的断点资源。

FlashROM上设置软件断点的原理与在RAM上设置软断点类似,也是在设定的断点处用特征码替换原有代码,通过识别特征码使断点事件发生。不同的是,在FlashROM上设置软件断点需要对Flash进行擦写操作,这就需要仿真器能够有Flash编程功能,并且能够在尽可能短的时间内完成特征码的写入。完成这一系列的读写操作,就可使在FlashROM上调试代码的工程师获得更充裕的断点资源,从而大大提高了开发效率。

但是,由于对Flash进行擦写需要一定的时间,所以在执行到Flash断点的时候会感觉到有一个停顿的时间。虽然这一点比RAM上的软件断点要差些,但是相对于给工程师调试工作整体上带来的便利而言,这一点是完全可以接受的。

设置断点进行调试是最基本的一种调试手段,选择具有丰富断点资源的ICE仿真器,可以明显地提高调试效率。当然,前提是工程师能够灵活使用各种断点资源。

注:【深圳龙人arm公司是一家专业arm开发板 arm9开发板 arm9的嵌入式开发嵌入式系统公司,能根据客户的需求,提供最好的嵌入式arm开发板S3C2440 2440开发板 Xscale开发板 PXA270 270开发板 EP9315 IXP425。详情:http://www.embsky.com/,电话:0755-83676200 手机:13686880106陈晓联】

posted @ 2008-08-25 15:32 龙人嵌入式开发 阅读(52) | 评论 (0)编辑 收藏

关于嵌入式系统离线测试——龙人嵌入式开发技术

嵌入式系统离线测试方法增量测试模型综合测试方法及互通性测试三种方法,以下龙人计算机嵌入式系统开发工程师就分别为您介绍嵌入式系统离线测试的这三种方法。

增量测试模型 

  在单板测试完成后,系统集成在一起之后有可能仍不能正常工作。主要原因是,模块相互调用时接口会引入许多新问题。例如,数据经过接口可能丢失;一个模块对另一模块可能造成不应有的影响;模块之间的硬件连接不正确也可能造成通信不畅;误差不断积累达到不可接受的程度等等。所以需要通过综合测试来发现各种错误。 

  如果把所有模块按设计要求一次全部组装起来,然后直接运行系统软件,这称为非增量式集成。这种方法易出现混乱,在改正一个错误时又可能引入新的错误,新旧错误混杂,更难断定出错的原因和位置。增量式集成方法通过测试软件一段一段地扩展,测试的范围一步一步地增大,来逐步定位错误和纠正。根据系统的不同特点可以采用两种增量式集成模型:自底向上集成和自顶向下集成。 

  宽带机架系统由主控板和其它单板组成,离线系统测试软件采用自顶向下集成的方法。由主控板将各个单板的系统测试程序通过网络下载到目的板,然后主控板通过深度优先策略搜索单板。首先主控板发送消息到直连的单板,如果主控板、单板之间连线正确,且单板硬件及软件工作正常,单板收到消息后将自己的相关信息返回给主控板。接着主控板再通过直连的单板获取下层单板的相关信息,直到获得所有单板的相关信息(位置,单板类型等),然后就可以开始整个系统的综合测试。 

嵌入式 嵌入式系统 嵌入式开发 嵌入式测试 离线测试

综合测试方法 

  目前大型的嵌入式系统大部分是分布式处理系统,由多个模块协同工作完成复杂的功能,模块之间通过网络互联。一般将整个系统分成3个不同的层次:设备层、系统层和应用层。针对这3个层次,系统的离线综合测试可以通过互通性测试、功能测试和性能测试来进行。 

互通性测试 

  互通性测试包括物理连通性和一致性的测试,确保系统中的各模块之间进行互联时不会出现问题。物理连通性和一致性的测试是最基本的网络系统测试内容,其中主要是线缆测试, 用以查明所测线缆及布线是否符合设计要求和国际标准。在宽带交换机系统中,互通性测试由主控板按照网络连接的层次,依次发送消息给各块PBA单板,等待它们的回复。如果主控板能在规定时间内收到回复,说明从主控板到该单板的网络连线正确。同时,主控板从PBA的回复中也获取了有关单板的相关信息,为下一步的功能测试和性能测试奠定了基础。 

深圳龙人嵌入式事业部在向海内外提供嵌入式开发、嵌入式解决方案(ARM解决方案ARM9解决方案)与嵌入式产品(ARM开发板ARM9开发板ARM7开发板ARM工控板)的同时立志成为行业内最优秀最完备的嵌入式软件、嵌入式硬件技术及嵌入式系统解决方案提供商。网址:http://www.armlab.net

posted @ 2008-06-24 16:10 龙人嵌入式开发 阅读(68) | 评论 (0)编辑 收藏

ARM、DSP、FPGA的特点和区别

深圳龙人计算机嵌入式事业部专业从事嵌入式系统开发的研究工作多年,特整合一些研究过程的笔记和心得以供嵌入式爱好者和学习者参考。下面龙人计算机分别介绍ARM、DSP、FPGA的特点及三者之间的区别。

ARM DSP FPGA 嵌入式 ARM芯片

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备 市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。 

DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的 空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度 。另外还允许在程 序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其 他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器, 是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用 软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,

DSP芯片一般具有如下主要特点: 

(1)在一个指令周期内可完成一次乘法和一次加法; 

(2)程序和数据空间分开,可以同时访问指令和数据; 

(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; 

(4)具有低开销或无开销循环及跳转的硬件支持; 

(5)快速的中断处理和硬件I/O支持; 

(6)具有在单周期内操作的多个硬件地址产生器; 

(7)可以并行执行多个操作; 

(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。 

当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。 

ARM DSP FPGA 微处理器 嵌入式

FPGA是英文Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个 新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实 现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA来实现。FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由 的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电 路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA是由存放在片内RAM中的程序来设置其工作状态的, 因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM 中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA 编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可 以产生不同的电路功能。因此,FPGA的使用非常灵活。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很 多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。 

ARM、DSP、FPGA区别?

ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,而DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。FPGA可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、除错、 再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。

龙人嵌入式开发中心专业提供嵌入式系统开发和嵌入式ARM解决方案服务同时提供ARM9开发板、Xscale开发平台及ARM仿真器http://www.szarm.com

posted @ 2008-06-24 16:10 龙人嵌入式开发 阅读(91) | 评论 (0)编辑 收藏

OMAP850与PXA272的特点分析—ARM嵌入式技术

文章整理:深圳龙人嵌入式研发中心(arm9arm7)

Intel PXA272与OMAP850将存在怎样的性能差异呢?PXA272的测试数据是否也如Samsung SC3 2442一样领先OMAP850两倍有余呢?针对有许多朋友对以上问题的困惑,龙人计算机嵌入式开发中心的嵌入式系统开发工程师们凭借在嵌入式行业多年工作经验解决这些问题。

OMAP850的特点——ARM9系列

OMAP850 是一款单芯片,集成了适用于应用处理的 ARM926EJ-S? 内核以及 TI 的 EDGE 数字基带调制解调器。此产品供高产量无线 OEM 和 ODM 使用,不通过经销商销售。

OMAP850包括OMAP850的所有特性,并且还增加了对128Mb或256Mb堆栈式移动 SDRAM的支持。这使得OMAP850非常适用于空间有限的系统,或者更轻、更小的移动终端设计。此外,它的功耗要小于传统的外部存储器配置。

这种灵活性使移动终端制造商可以进一步减小下一代高端智能电话和无线手持终端的尺寸。除了节省空间之外,堆栈式 SDRAM 还具有低功耗的特性。这点对于移动终端设计人员非常重要。

PX27x特点——XScale系列

PXA27x系列嵌入式处理器是Intel发布的面向移动电话和掌上电脑的XScale架构的最新处理器系列,是Intel于2004年4月发布的XScale处理器家族的升级产品,最高主频达624MHz,Intel内部开发代号为Bulverde。PXA27x是十分强大的嵌入式处理器,被广泛应用于手机和高端PDA。PXA27x扩展接口有SD/SDIO/MMC、CF/PCMCIA、CMOS/CCD CAMERA、MS/MSPRO、USB1.1、OTG、IDE、LAN、SIM接口、KEYBOARD等。更广泛地面对PDA、智能手机、PMP等设计。PXA27x所定位的市场是手持多媒体数码娱乐中心。

ARM9 Xscale OMAP850 PXA272  ARM嵌入式

PXA27x具备3D加速功能,满足了游戏应用;最大可支持400万象素的CCD摄像头,数码摄像功能强大;支持LAN接口,可以扩展网络应用。PXA27x加入了wireless MMX技术和SpeedStep动态电源管理技术,不但大大增强了PXA270的媒体处理能力,而且极大降低了系统功耗,延长便携产品的电池寿命。SpeedStep技术原用于英特尔移动处理器,这种技术用通俗的语言表述就是系统需要多高的主频,它就调节到多高的频率,系统不需要时,它就将处理器主频调节到最低,绝不浪费一点点。SpeedStep技术可以将PXA27x的主频在26MHz~624MHz(最高)之间自由调节。也就是说,在系统完全空闲时,PXA27x可以运行在26MHz的主频下,此时它的功耗将低于0.1毫安!

PXA 27x完全整合了Bulverde开始提出的三个特点:Quick Capture、Wireless Speed Step和Wireless MMX:

Intel同时还发表了配合PXA270使用的图形协处理器——2700G多媒体加速器。这颗芯片可以以每秒30帧,的速度播放MPEG4或WMV的图像,使PXA270的多媒体性能达到极大提升。

深圳龙人嵌入式事业部在向海内外提供嵌入式开发、嵌入式解决方案(ARM解决方案ARM9解决方案)与嵌入式产品(ARM开发板ARM9开发板ARM7开发板ARM工控板)的同时立志成为行业内最优秀最完备的嵌入式软件、嵌入式硬件技术及嵌入式系统解决方案提供商。网址:http://www.armlab.net

posted @ 2008-05-28 15:21 龙人嵌入式开发 阅读(115) | 评论 (0)编辑 收藏

4种嵌入式实时操作系统的应用领域

VxWorks、μClinux、μC/OS-II和eCos是4种性能优良并被广泛应用的嵌入式实时操作系统这4种嵌入式实时操作系统在嵌入式系统的应用非常广泛,但是又具有各自的特点。龙人(专业嵌入式系统开发商和嵌入式ARM解决方案ARM开发工具ARM 开发板提供商)根据对其性能分析和比较,归纳出各自的适用领域。

  ①VxWorks是一套娄似于Unix的实时操作系统,它内建了符合POSIX规范的内存管理,以及多处理器控制程序,并且具有简明易懂的用户接口,在核心方面甚至可以微缩到8 KB。它由400多个相对独立的、短小精悍的目标模块组成,用户可根据需要选择适当模块来裁剪和配置系统,有效地保证了系统的安全性和可靠性。它被广泛地应用在通信、军事、航空、航天等高尖技术及实时性要求极高的领域,尤其是在许多关键应用方面,VxWorks还是一枝独秀。例如,美国波音公司就在其最新的787客机中采用了此操作系统;而在外层空间探索领域,VxWorks则一直是美国太空总署NASA的最爱。

嵌入式 嵌入式系统 嵌入式操作系统 嵌入式开发 嵌入式实时操作系统

  ②μC/OS-II是一个结构简单、功能完备和实时性很强的嵌入式操作系统内核,适合于广大的嵌入式系统开发人员和爱好者入门学习,以及高校教学和科研。μC/OSII很适合开发那些对系统要求不是很苛刻,且RAM和ROM有限的各种小型嵌入式系统设备。

  ③μClinux最大特点在于针对无MMU处理器设计,可以利用功能强大的Linux资源,因此适合开发对事件要求不高的小容量、低成本的各类产品,特别适用于开发与网络应用密切相关的嵌入式设备或者PDA设备。例如,CISCO公司的2500/3000/4000路由器就是基于μClinux操作系统开发的。

④eCos最大特点是配置灵活,而是面向深度嵌入式应用的,很适合用于一些商业级或工业级对成本敏感的。

深圳龙人嵌入式产品事业部是国内最强最精最专业的开发板集散地包括ARM开发板、ARM9开发板Xscale开发板、2410开发板(ARM9)、2440开发板(ARM9)、44B0X开发板(ARM7)、DSP开发板、单片机开发板、FPGA开发板、CPLD开发板等各类精品开发板!网址:http://www.armodm.com

posted @ 2008-05-28 15:20 龙人嵌入式开发 阅读(236) | 评论 (0)编辑 收藏

 

文章整理: 深圳龙人嵌入式研发中心 (arm9arm7)

  Intel XScale 微体系结构提供了一种全新的、高性价比、低功耗且基于ARMv5TE体系结构的 ARM 解决方案 ,支持16位Thumb指令和DSP扩充。基于 XScale技术开发 的微处理器,可用于手机、便携式终端(PDA)、网络存储设备、骨干网(BackBone)路由器等。Intel PXA250微处理器芯片就是一款集成了32位Intel XScale 处理器核、多通信信道、LCD控制器、增强型存储控制器和PCMCIA/CF控制器以及通用I/O口的高度集成的应用处理器。

XScale   ARM  嵌入式系统   嵌入式开发   ARM开发板

Intel XScale处理器的处理速度是Intel StrongARM处理速度的两倍,其内部结构也有了相应的变化:

  ◇数据Cache的容量从8KB增加到32KB;

  ◇指令Cache的容量从16KB增加到32KB;

  ◇微小数据Cache的容量从512B增加到2KB;

  ◇为了提高指令的执行速度,超级流水线结构由5级增至7级;

  ◇新增乘/加法器MAC和特定的DSP型协处理器CP0,以提高对多媒体技术的支持;

  ◇动态电源管理,使XScale处理器的时钟可达1GHz、功耗1.6W,并能达到1200MIPS。

   XScale微处理器 架构经过专门设计,核心采用了英特尔先进的0.18μm工艺技术制造;具备低功耗特性,适用范围从0.1mW~1.6W。同时,它的时钟工作频率将接近1GHz。 XScale与StrongARM相比,可大幅降低工作电压并且获得更高的性能。具体来讲,在目前的StrongARM中,在1.55V下可以获得133MHz的工作频率,在2.0V下可以获得206MHz的工作频率;而采用XScale后,在0.75V时工作频率达到150MHz,在1.0V时工作频率可以达到400MHz,在1.65V下工作频率则可高达800MHz。超低功率与高性能的组合使Intel XScale适用于广泛的互联网接入设备,在因特网的各个环节中,从手持互联网设备到互联网基础设施产品,Intel XScale都表现出了令人满意的处理性能。

更多关于基于 Intel XScale 系列开发板(ARM开发板)的嵌入式开发的技术文章请登录专业 嵌入式系统开发 的龙人计算机网站: http://www.armlab.net

posted @ 2008-05-10 16:27 龙人嵌入式开发 阅读(115) | 评论 (0)编辑 收藏

 

嵌入式系统开发之基础- 预处理器 Typedef

做为一个嵌入式开发程序员,必须很熟悉 预处理器 Typedef 的含义,以下龙人计算机( 深圳龙人嵌入式事业部 )就分别介绍。

预处理器(Preprocessor) 

  1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 

     #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

  我在这想看到几件事情: 

  1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 

  2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 

  3) 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 

  4) 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。

嵌入式   嵌入式系统   嵌入式开发   预处理器 Typedef

  2 . 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。 

     #define MIN(A,B) ((A) <= (B) ? (A) : (B))

   这个测试是为下面的目的而设的: 

  1) 标识#define在宏中应用的基本知识。这是很重要的。因为在 嵌入(inline)操作符 变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 

  2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。 

  3) 懂得在宏中小心地把参数用括号括起来 

  4) 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? 

  3. 预处理器标识#error的目的是什么? 

  如果你不知道答案,请 上龙人嵌入式系统开发技术的网站下载相关资料 。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。 

Typedef  

  15 Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子: 

    #define dPS struct s *

    typedef struct s * tPS;

  以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么? 

  这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当被恭喜的。答案是:typedef更好。思考下面的例子: 

    dPS p1,p2;

    tPS p3,p4;

  第一个扩展为 

    struct s * p1, p2;

  上面的代码定义p1为一个指向结构的指,p2为一个实际的结构,这也许不是你想要的。第二个例子正确地定义了p3 和p4 两个指针。 

龙人计算机嵌入式研发中心 是国内最早进入 嵌入式技术 研发和应用推广的技术型企业之一 成立以来 专注于嵌入式底层应用技术的研究和开发 的同时为广大客户提供嵌入式系统开发技术、嵌入式解决方案和嵌入式产品(嵌入式开发板、ARM开发板、 ARM9开发板 、ARM开发工具、ARM仿真器和ARM工控板、ARM实验仪等)。 网址: http://www.armodm.com

联 系 电 话:+86-0755-83346939  83662100   余小姐

销 售  Email:beijingshenzhen@126.com

联 系 地 址: 深圳市福田区福虹路世界贸易广场B座13F   邮 编:518033

posted @ 2008-05-10 16:26 龙人嵌入式开发 阅读(1135) | 评论 (0)编辑 收藏