ARM嵌入式's profileARM开发板|S3C2440|S3C2410|A...BlogListsFriends Tools Help

ARM开发板|S3C2440|S3C2410|ARM9开发板|ARM7开发板

龙人计算机专业提供以三星S3C2440、S3C2410和S3C44B0处理器为核心的ARM9开发板及ARM7开发板

ARM嵌入式

This person's network is empty (or maybe they're keeping it private).
September 09

arm开发板=S3C44B开发板增强板

 

 

问:我想自己学习有关ARM的开发的知识,想自己做一块ARM 开发板,想请教一下各位大侠现在做开发板用什么样的芯片比较实惠,一块开发板做下来大概多少钱?

答:我认为S3C44B开发板增强板最适合学习arm开发

S3C44B开发板增强板硬件特性:

中央处理器外部存储器

◆ S3C44B0X (SAMSUNG)ARM7TDMI 
◆ 8MB Bytes NOR FLASH 
SST39VF6401比市面上多数板子4);

◆ 8MB Bytes SDRAM 
HY57V641620,可支持16MB32MBSDRAM);
◆ 16M Bytes NAND FLASH 
K9F2808,用户可自己更换为32M64M128MNandFlash

串口◆ 两个标准三线RS232接口,可与MODEM直接相连

网络接口◆ 10M网口,RTL8019AS,带发送和接收指示灯;提供ARPUDP等协议源代码,并提供PC的上位机通讯程序

USB  Device
接口

◆ USB1.1规范,从设备、PDIUSBD12,带联接状态指示灯;提供PC的上位机测试程序

◆ USB1.1规范,/从设备、SL811HST,带HOST/SLAVE工作指示灯;提供完整的U盘读写程序(默认不焊接,选配)

LCD接口

◆ 
支持单色、4级灰度、16级灰度、256STN液晶屏,最大支持640x480/256STN液晶屏
◆ 
可选配16级灰度屏G35IIGS57T (带触摸屏)256色彩屏CS57T(带触摸屏)
◆ 5
LCD接口,可以直接连接160212864240128320240(单色)、彩色液晶


IDE
接口
◆ 
可与IDE硬盘相连,带状态指示灯;

音频接口
◆ UDA1341
,提供播放音乐的程序

时钟源

◆ 
内部实时时钟(带有后备锂电池);

复位电路
◆ 
一个复位按键,并采用专用复位芯片进行复位,稳定可靠;

调试及下载接口

◆ 
一个14芯标准JTAG接口,支持SDT2.51,ADS1.2等调试 

电源接口

◆ 
开关电源供电,输入直流电压范围是5V,带电源指示灯;

MMC/SD卡接口

可连接MMCSD卡,并提供读写程序

AD通道

◆8通道、10bit 100ksps

PWM

◆4通道

PS2

可连接PS2键盘或鼠标,提供测试代码

其他

◆ 
四个小按键,3个高亮LED
◆ 
一个蜂鸣器(带使能控制的短路块);
◆ 
一个EEPROMAT24C02)用来验证IIC总线读写;

看门狗,提高系统抗干扰性能
操作系统
◆ 支持uC/OS-II ucLinux 

售后服务:

    负责本开发板的工程师是从事嵌入式产品开发的一线工程师,工作于消费电子、医疗电子、工控、仪器仪表等行业,有着多年丰富的实际设计、开发、调试、生产、售后维修经验,有着深厚的行业基础和实践、丰富的调试生产技术。由他们负责您的疑问解答,不仅仅能解决开发板的问题,还能解决您移植设计、移植代码的困难,实际设计中的疑难、生产中遇到的困惑,还能提供芯片选型、产品定位等咨询问题。同时在电气电子海洋门户网站上设立网上讨论基地,及时快捷方便地与嵌入式老手、学友一同交流学习。购买本开发板,不仅仅买到了一个44BO的开发板,也买到了一线工程师体贴到位的售后服务,更得到了网上的一群相互学习、相互帮助的群体!而市面上的大多数开发板厂家都是抄袭别人的硬件、拷贝别人的软件代码,也没有实际的产品开发应用经验,提供的答疑、售后服务只能局限于开发板之内,对于用户移植到产品上出现的问题一无所知,甚至连开发板的说明文档都是仓促中拼凑而成。

典型应用

教学
工业自动化控制
嵌入式应用
医疗电子
便携式仪器仪表
UPS
、电机控制
智能楼宇
机电控制

 

August 23

使用嵌入式Linux系统有两种途径

 

      嵌入式LinuxEmbedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB字节的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。这与它自身的优良特性是分不开的。

    下面本文主要向大家介绍嵌入式Linux系统的两种途径:

第一是用户自己装配(称为DIY内核),你可以在www.szarm.com找到全部Linux代码,或直接到ARM CPU的源代码树下www.armlab.net找到所需要的Linux版本的移植,或者某些半导体公司,如三星、Motorola在自己的网站或在自己的ARM评估板含有一个最小Linux内核系统。如果这个最小内核没有包含GCC/GDB工具链,可能还要到GNU的网站下载全部的源代码,然后再编译生成所需要版本的ARM工具链和应用程序库,这个过程是相当耗时和困难的。还需要指出,这种DIY内核的配置,添加应用和驱动程序也是不标准的和复杂的,这是嵌入式系统的特殊性所在。
      
第二是选择一个商业化的嵌入式Linux操作系统平台。商业化的嵌入式Linux版本是针对嵌入式处理器,如ARM所优化设计的,支持各种半导体厂家的评估板和主要的设备驱动,商业化的嵌入式Linux包含了文件系统、应用、实时性扩展和技术支持培训服务,现今国外著名的商业化嵌入式Linux产品有:MontaVista LinuxBluecat LinuxTimesys Linux Metrowork LinuxVlinuxRedhat Linux等,国内也有红旗、龙人、新华嵌入式Linux

技术支持:86-0755-83676200  手机:13686880106陈晓  网址:http://www.armodm.com

June 24

ARM开发和嵌入式系统开发书籍推荐

ARM开发和嵌入式系统开发书籍推荐

随着嵌入式行业在中国的发展,国内学习ARM开发和嵌入式系统开发的人越来越多,但是嵌入式系统开发方面的书籍不是很多,为了提供学习速度和嵌入式开发效率,龙人计算机嵌入式系统开发工程师特向各位推荐如下几本书。

主要推荐ZLG的三本书,有这3本再加网络就不用别的书了,其中主要推荐前2本,3是介绍体系结构的,也不错

1 ARM嵌入式LINUX系统构建与驱动开发,北航版

驱动写的很详细,前期开发介绍也很好

ARM嵌入式系统实验教程(二),北航版

有ZLG2200的原理图,实验程序和注释,了解人家是怎么开发的。

3 ARM嵌入式系统基础教程

最重要的是体系结构,汇编部分介绍,看看吧,增加理论素质。

4 44B0数据手册

写在这里是强调它的重要。

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

不推荐ZLG早期出的红色皮的ARM什么体系结构~只类的

写的太多,看烦了。

其他的书没了几本,没看见好的,大家有看过的推荐吧。

另外龙人计算机嵌入式系统开发网站上有很多嵌入式学习资料,欢迎对ARM开发和嵌入式系统开发感兴趣的登录。网址:http://www.armlab.net

龙人计算机作为最专业的嵌入式系统开发商和ARM开发板供应商专业提供以三星S3C2440、S3C2410和S3C44B0处理器为核心的ARM9开发板及ARM7开发板并提供工业PDA、手持POS、GPS等各种嵌入式终端设备的ARM解决方案。网址:http://www.armodm.com

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

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

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

增量测试模型 

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

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

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

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

综合测试方法 

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

互通性测试 

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

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

May 26

ARM9系列OMAP850与Xscale系列PXA272的对比—龙人

ARM9系列OMAP850与Xscale系列PXA272对比龙人

ARM9 Xscale OMAP850 PXA272 嵌入式开发

龙人计算机嵌入式系统开发中心嵌入式工程师们通过对基于ARM9系列的OMAP850与Xscale系列的PXA272的特点和性能等全方位分析,最后得出以下总结:

1、TI OMAP850采用双核心设计,但并不同于电脑上的双核处理器。TI OMAP850由两个不同的物理CPU组成的,一个是ARM926(负责PDA功能),另一个是ARM7(负责GSM电话功能),而Intel Xscale PXA272则只有一个ARM9处理器,它负责所有功能的运作。

2、TI OMAP850的一个时钟周期能执行8条指令,而Intel Xscale PXA272的一个时钟周期则只能执行4条指令,但Intel Xscale PXA272的频率比TI OMAP850高出一倍有余,所以在指令的处理速度上相差不大。不过,如果运行的程序经过针对性的优化后,那195MHz的OMAP850在效能上就有可能等同于416MHz的Xscale PXA272,而如果针对Xscale PXA272的程序在OMAP850上运行则会缓慢许多。

3、功耗方面,TI OMAP850在待机状态下只需要10μA的电流就可以了,一个晚上也就耗掉2-3的电量而已,待机时间二至三天是不成问题的。在芯片工艺上比较也是这样的,Xscale PXA272是0.18的,而OMAP850是0.13的。

4、内存类型方面,Xscale PXA272采用的是SD-RAM,而OMAP850用的是DDR-RAM,其性能优越自然是DDR-RAM要好一些,这跟电脑上用的内存是同样原理的。

5、TI OMAP850更适合在PPC Phone上使用,因为当GSM和PDA同时工作时,OMAP850的效能就完全发挥出来了。在PPC Phone上,电话接通的情况下,再执行其他任务,Xscale PXA272的性能便明显下降,但OMAP850就不会出现这样的现象,因为OMAP的两个内核都是195MHz,并分别处理PDA和GSM的功能,所以OMAP850更加适合在PPC Phone上使用,这也是为什么一些纯PDA不采用OMAP系列处理器的一个原因。

6、TI OMAP850的架构与Intel Xscale PXA272的架构是完全不同的,TI OMAP850更适合应用在移动通信领域,这也是多普达产品为什么在TI官方明确指出OMAP850不适合应用到新产品当中之后,还继续使用OMAP850处理器的原因了。当然,WM5还针对OMAP850做了许多优化,所以大家在使用的时候不会明显感到缓慢,且OMAP850内部还有2D加速单元,这也为OMAP850带来了强悍的图形解析能力。

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

网址:http://www.armodm.com

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

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

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

4种嵌入式实时操作系统的介绍——龙人ARM嵌入式开发

4嵌入式实时操作系统的介绍——龙人ARM嵌入式开发

由于嵌入式实时操作系统可以支持多任务,使得嵌入式程序开发更加容易,在便于维护的同时还能提高系统的稳定性和可靠性,所以逐步成为嵌入式系统的重要组成部分,对嵌入式操作系统的研究变得尤为重要VxWorks、μClinux、μC/OS-II和eCos是4种性能优良并被广泛应用的嵌入式实时操作系统。本文龙人计算机就分别介绍这4种操作系统

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

  (1)VxWorks

  VxWorks是美国WindRiver公司的产品,是目前嵌入式系统领域中应用很广泛,市场占有率比较高的嵌入式操作系统。VxWorks实时操作系统由400多个相对独立、短小精悍的目标模块组成,用户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接口)规范的内存管理,以及多处理器控制程序;并且具有简明易懂的用户接口,在核心方面甚至町以微缩到8 KB。

  (2) μC/OS-II

  μC/OS-II是在μC-OS的基础上发展起来的,是美国嵌入式系统专家Jean J.Labrosse用C语言编写的一个结构小巧、抢占式的多任务实时内核。μC/OS-II能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。

  (3)μClinux

  μClinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。同标准的Linux相比,μClinux的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCP/IP网络协议等。因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。

  (4)eCos

eCos(embedded Configurable operating system),即嵌入式可配置操作系统。它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。最大特点是配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。

以上是对四种嵌入式实时操作系统的介绍,更多关于这四种操作系统的性能分析和比较请进龙人嵌入式事业部网站:http://www.armlab.net

May 10

S3C2410开发板上的中断编程-ARM9开发板学习心得

 

S3C 2410开发板上的中断编程 -ARM9开发板学习心得

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

一、 在S3C 2410 开发板上 实现中断编程的 目的

   中断服务程序在 嵌入式 操作系统中无疑占有非常重要的地位,编写中断程序不仅要会运用底层的汇编语言,还要了解AR M 的体系架构。那这一节我们就通过 中断编程 来响应  S3C 2410开发板 上的16个按键,实现依次按下16个键时,D9~D12 四个 Led 从 0~15 进行计数,并通过上个实验实现的 uart_printf 向串口发送数据 Kn is pressed!。

二、 S3C 2410 开发板上的中断编程 代码

   我们直接分析代码,代码中只有简略的注释,必要时我会在整个代码文件的后面对相应的细节进行解释。先来分析 head.s:

   @文件 head.s

   .text

   .global _start

   _start:

        @ Set vector table for interrupt

.............(这里部分代码省略,要看代码请进龙人计算机关于 嵌入式系统和嵌入式开发 的网站)

我们来看一下它的执行流程:

(1) 设置中断向量表。你也许在这里有疑问,为什么一开始就有 8 个分支跳转指令?我们

    先来研究一下 ARM 如何响应异常/中断,看下表:

      -------------------------------------------------------------

          Exception               Mode              Address

      -------------------------------------------------------------

          Reset                      Supervisor       0x00000000    

          Undefined               Undefined        0x00000004    

          Software Interupt    Supervistor      0x00000008    

          Prefetch Abort        Abort              0x0000000C    

          Data Abort             Abort              0x00000010    

          IRQ (interupt)         IRQ                0x00000018    

          FIQ (fast interupt)   FIQ                0x0000001C    

      -------------------------------------------------------------

ARM9  ARM9开发板  S3C 2410开发板   嵌入式开发   中断编程

    可以看出 ARM 支持 7 种异常/中断,每种异常/中断都有固定的地址,这个地址叫中断向量,一般我们会在这个地址放一条分支跳转指令,当异常/中断发生时,ARM 就到这个地址执行这个跳转指令,从而调用相应的中断服务程序。

(2) 关闭看门狗

(3) 暂时屏蔽所有中断。

    1.地址 0x4A000008 是中断屏寄存器 INTMSK 的端口地址,复位 INTMSK 会导致所有的中断源被屏掉。

    2.地址 0x4A00001C 是子中断屏寄存器 INTSUBMSK 的端口地址,它的低 11 位对应外部11个中断源,高 21 位保留不用。复位它的低 11 位会导致相应的外部中断被屏。

(4) 初始化内存 SDRAM 设置

(5) Self-copying: 从 Nand Flash 将自身复制到 SDRAM

(6) 进入 IRQ 模式,设置 IRQ 模式下的堆栈寄存器

(7) 进入系统模式,并设置系统模式下的堆栈寄存器

(8) 系统模式下调用 init_irq,这个函数用于初始化一些用于响应按键的中断寄存器

(9) 再次进入系统模式,并打开当前程序状态寄存器 cpsr 的 IRQ 中断位,这样 ARM 就能 响应 IRQ 中断了

(10)执行主函数 main 后返回,然后进入死循环,等待中断发生

(11)中断发生时,ARM 响应中断并于 0x00000018 处执行 b HandleIRQ 跳转指令调用中断服务程序,处理完毕后返回循环处再等待下次中断的发生,如此往复...

这就是中断处理的基本流程了 :-), 以下文件的代码在前面随笔均有详细说明,这里就仅附

简略注释了

注意:程序代码省略,详细代码请进龙人计算机网站下载

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

三、编译、烧写、测试

   Make 一下就会生成我们要的文件 main, 将其通过 JTAG 烧入 Nand Flash。用超级终

连接到开发板,注意波特率设为 57600,数据位 8,无奇偶校正,停止位1,无数据流控制。现

在 Reset 一下的 开发板 ,然后静静的等待吧,生成的二进制文件 main 有 39K 大呢,要等它

完全复制到 SDRAM 至少要两三分钟...哈哈,你会发现 D9~D12 四个led 灯被点亮了,并且

当你按下某个按键时,这四个灯会指示你按下的是第几个键,你还会发超级终端上有文字显示,

例如当你按下按键 2 时:

     K2 is pressed!

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

 

嵌入式系统开发之基础- 预处理器 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;

  第一个扩展为