| 标题 |
作者 |
阅读数 |
发布时间 |
|
|
中嵌科技 |
4931 |
2007-9-10 |
|
热烈欢迎国内著名ARM技术专家李驹光博士担任中嵌科技有限公司技术总监! 作为国内ARM技术应用的引导者,李博士在嵌入式系统的硬件架构设计和软件集成应用方面具有深厚的理论造诣和丰富的实践经验。在嵌入式应用领域十余年的从业经历中,李博士专注于技术创新以推动国内嵌入式系统应用的水平,同时不断致力于ARM技术的教育推广,先后编写了《ARM应用系统开发详解——基于S3C4510B的系统设计》第一、第二版,《嵌入式Linux系统开发详解——基于EP93XX系列ARM》等著作。 李博士将带领中嵌科技有限公司技术团队在ARM、DSP、FPGA(SOPC)等嵌入式相关领域开展工作,不断提供高性能的嵌入式技术和产品,助力中嵌科技成为业内最专业的嵌入式计算技术提供商。中嵌科技(www.emsyschina.com),立足中国、放眼全球,成为一家负责任、技术驱动型、创新服务型、持续创造社会效益的企业是中嵌人不懈的追求。
>> 阅读全文
|
|
中嵌科技 |
2261 |
2007-9-6 |
|
应用背景 设备间的可靠通讯,一直是工业控制系统的核心问题,但由于历史的原因,目前的工业控制设备存在多种通讯协议,如RS232、RS485、CAN、LIN、以太网络,以及各种现场总线协议等。 当一个系统中有多个不同协议的设备时,如何让它们可靠的进行数据交换?如何用一种低成本的方案解决这个问题?在工业控制系统中具有重要的意义。 针对以上的问题,中嵌科技将高性价比的嵌入式技术应用到了该领域,设计推出了专用于不同协议设备互联互通的工业通讯协议转换解决方案,可以很好的解决以上问题,方便工业控制系统的集成。 方案简介 该方案采用高性能、低功耗、低成本、小体积,且接口丰富的工业级嵌入式微处理器作为系统核心,包含工业控制系统中各种常用的标准接口,可方便用于互联各种不同协议的工业标准设备。 系统结构如下图所示: 系统采用高效率、高可靠性嵌入式Linux操作系统,稳定支持与各种不同接口协议工业设备的连接,同时,采用ARM处理器内部和外部独立设计的两级Watchdog电路,保证了系统在各种苛刻工业环境中的可靠运行。 因此,采用该嵌入式工业通讯协议转换器,可以方便快捷的实现高性能、高可靠性的工业控制网络,满足多种工业场合的...
>> 阅读全文
|
|
中嵌科技 |
4442 |
2007-9-6 |
|
中嵌科技技术总监李驹光博士执笔的又一ARM技术书籍《ARM应用系统开发详解——基于AT91RM9200的系统设计》,将于近期由中国电力出版社出版,敬请关注。 AT91RM9200是ATMEL于2003年推出的ARM920T核的专用于工业控制系统的高性能嵌入式微处理器。在过去的几年中,该处理器在工业控制的各个领域,如电力、数控、工业过程控制、冶金、机械、石化等,都有不俗的表现。 中嵌科技已成功将AT91RM9200应用到上百个项目中,并积累了较为丰富的使用经验,中嵌科技与中国电力出版社合作推出该技术书籍,以期进一步提高我国的嵌入式应用技术水平。
>> 阅读全文
|
|
中嵌科技 |
1554 |
2007-8-29 |
|
CE9200-2概述 CE9200-2开发系统由中嵌科技设计开发,主处理器基于ATMEL公司的AT91RM9200嵌入式处理器,适用于多种嵌入式工业控制系统。 CE9200-2是一款全功能的开发系统,除带有大容量的SDRAM、NorFlash、NAND Flash以外,还扩展了10/100 Mbps以太网接口、USB接口 、RS485接口、多个UART接口、RTC、音频输入/输出接口、蜂鸣器、拨码开关、矩阵键盘接口、PC/104总线接口和GPIO扩展等,可以外接各种PC/104模块及各型端子板,作为复杂嵌入式应用系统主板,方便用户功能扩展或进行参考设计。 CE9200-2支持嵌入式Linux操作系统,支持各种网络服务以及其他应用,同时可根据用户需求开发特定应用软件与设备驱动程序。 适用领域 高性能智能终端: 电力监控终端、大气/气象/水文监控终端,工程机械智能控制等;POS及自动售贩装置:商场收银机、POS,智能公交,校园一卡通、饭店食堂刷卡设施等;消防监控及门禁系统:消防监控与数据采集、三表远程抄送、考勤/门禁/巡更/生物/指纹识别系统等;其它要求高性能、高可靠性嵌入式计算应用场合。
>> 阅读全文
|
| 标题 |
作者 |
阅读数 |
发布时间 |
|
|
博文视点(北京) |
3517 |
2009-6-23 |
|
SED1335软件编写 上一节讲解了C6713驱动SED1335最底层的硬件驱动子函数,本节就根据320×240液晶模块的特性,来说明320×240液晶模块上各种字符、图形、点、线的显示方法。 一个好的图形界面,不仅能显示字符,还能显示图形,并能根据实际需要画出直线、圆弧、矩形等几何图形。 320×240液晶模块以其高分辨率,可显示字符、数字、汉字、图形等特性,符合我们构建图形界面的需求,可以构建良好的人机交互平台。1.SED1335初始化 以下程序是SED1335显示模块的初始化子函数,其中涉及的命令字请参考前两节的命令字讲解或者参考SED1335的官方数据手册。为方便起见,我们将系统设置的8个参数、显示区域设置的10个参数,写成一个数组的形式,便于代码维护和修改。/*...
>> 阅读全文
|
|
博文视点(北京) |
3577 |
2009-6-19 |
|
HPI有如下优点: @可以访问DSP的内存; @ 接口简洁而实用。 所以,在构建主从结构或者多核结构的电路系统中,HPI是一个不错的数据交互方式的选择。而除了作为数据通道之外,HPI还有另一个重要的应用,那就是HPI引导DSP程序。 通常,我们用CCS(Code Composer Studio)编译DSP软件工程,会生成一个扩展文件名为.out的文件,通过TI公司提供的转换工具,就可以将.out文件转换为十六进制形式的HEX文件或者二进制形式的BIN文件。 当生成了BIN文件之后,我们可以将该BIN文件集合到主机CPU的软件工程中,编译进入主机的程序中,并烧写入主机CPU的非易失性存储器中。而当电路...
>> 阅读全文
|
|
博文视点(北京) |
9773 |
2009-6-10 |
|
连接错误示例 连接过程中常见的错误是符号未找到(undefined reference)和符号重定义(redefinition)。由于在编译器在处理各个符号的时候,已经没有了各个C语言源文件的概念,只有目标文件。因此对于这种错误,连接器在报错的时候,只会给出错误的符号的名称,而不会像编译器报错一样给出错误程序的行号。 符号未定义的错误经常发生在符号已经声明,但是并没有具体的定义的情况下。在C语言中,符号可以是一个函数,也可以是一个全局变量。在程序的编译过程中,只要符号被声明,编译就可以通过,但是在连接的过程中符号必须具有具体的实现才可以成功连接。 例如:某一个源程序的文件的某一个地方调用了一个函数,如果这个函数具有声明,这时编译就可以通过。在连接的过程中,连接器将在各个代码段中寻找函数,如果函数没有在程序的任何一个位置中定义,那么就不会有函数符号,这时连接器将...
>> 阅读全文
|
|
博文视点(北京) |
3863 |
2009-6-10 |
|
可执行程序的组成 上一节分析了C语言应用程序中各段的情况,实际的C语言可执行程序,将由各个文件经过连接生成。目标文件是由每一个C语言源程序(*.c)经过编译器生成,目标文件(.o)的主要组成部分即代码段、只读数据段和读写数据段三个段。未初始化数据段、堆和栈不会占用目标文件的空间。 可执行程序是由各个目标文件经过连接而成。其主体部分依然是代码段、只读数据段和读写数据段,这三个段由各个目标文件(.o)经过“组合”而成。C语言目标文件到可执行程序的连接如图13-2所示。 连接器将根据连接顺序将各个文件中的代码段取出,组成可执行程序的代码段,只读数据段和读写数据段也是如此。在连接过程中,如果出现符号重名、符号未定义等问题,将会产生连接错误。如果连接成功,将会生成一个统一的文件,这就是可执行程序。 >> 阅读全文
|
|
博文视点(北京) |
517 |
2009-6-9 |
|
尊敬的读者: 您好! 与传说中的牛人共饮咖啡,与畅销书作者共话家常,与技术专家共商新趋势……这不是天方夜谭! 6月13日,上岛咖啡,博文视点OpenParty首期亮相,让您梦想成真! 多位技术作家,从幕后走到台前,为您带来图书之外的更多技术观点;亲切随意的技术沙龙,为您创造一个零距离接触高端权威的机会,将带给您全新体验和全面收获。活动形式: 本活动将以分组讨论的方式来进行,每小组由发起主题者任主持人,参与者可随意参加讨论。 &l...
>> 阅读全文
|
|
博文视点(北京) |
3832 |
2009-6-9 |
|
C语言程序的段段的分类 根据C语言的特点,每一个源程序生成的目标代码将包含源程序所需要表达的所有信息和功能。目标代码中各段生成情况如下:1.代码段(Code) 代码段由程序中的各个函数产生,函数的每一个语句将最终经过编译和汇编生成二进制机器代码(具体生成哪种体系结构的机器代码由编译器决定)。 ? 顺序代码 基本数学运算(+,-),逻辑运算(&&,||),位运算(&,|,^)等都属于顺序代码。 ? 选择代码 >> 阅读全文
|
|
博文视点(北京) |
2161 |
2009-6-9 |
|
C语言程序的运行总结 在上面几节,主要介绍了C语言运行时内存的使用情况。其关注点是程序中主要的段,事实上,程序可能不仅包括了上述主要段,还可能包括一些头信息。程序实际的运行也分为在操作系统下运行和直接运行等情况。在具有操作系统的情况下,程序由操作系统加载运行,加载的时候可执行程序可以是一个文件,这个文件将包含程序的主要段以及头信息。 对于Linux操作系统,目标程序是可执行的ELF(Executable and linking Format)格式;对于uCLinux操作系统,目标程序是Flat格式;对于需要在系统直接运行的程序,目标程序应该是纯粹的二进制代码,载入系统后,直接转到代码区地址执行。 事实上,无论运行环境如何,C语言程序在运行时所进行的动作都是类似的。程序在准备开始运行的时候,以下几个条件都是必不可少的:1.代码段必须位于可运行的存储区。2.读写数据段必须在可以读写的内存中,而...
>> 阅读全文
|
|
博文视点(北京) |
1951 |
2009-6-8 |
|
Vc中对话框数据交换和验证机制 在VC中,所有的对话框函数都是使用C++代码实现的,它并没有采用特殊的资源或“奇特”的宏,但却可以很好地实现用户与应用程序之间的交互工作,这里的关键就在于对话框应用程序中广泛采用的对话框数据交换和验证机制。 对话框数据交换(Dialog Data Exchange,DDE)用于初始化对话框中的控件并获取用户的数据输入,而对话框数据验证(Dialog Data Validation,DDV)则用于验证对话框中数据输入的有效性。MFC在每个对话框类中提供了一个用于重载的虚函数——DoData Exchange来实现对话框数据交换和验证工作。? 对话框数据交换 如果使用DDE机制,则通常在OnInitDialog程序或对话框构造函数中设置对话框对象成员变量的初始值。在对话框即将显示前,应用程序框架的DDE机制将成员变量的值传递给对话框的控件,当对话框响应DoModal或Create...
>> 阅读全文
|
|
博文视点(北京) |
760 |
2009-6-8 |
|
注意事项 数据库引擎问题 如果你要将现有的数据库转移到MySQL集群中,那么请将数据表的格式由MyISAM或InnoDB改为NDBCLUSTER。转换的方法,请阅读MySQL的官方文档:http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-multi-load-data-queries.html 否则,可能会遇到意想不到的问题,比如要添加MySQL用户,就必须在每个NDB节点上添加,等等。 内存问题 NDB把所有数据存放在内存中,所以你需要为NDB节点配备较大的内存。一般情况下,换算比例为1:1.1,也就是说,如果你有1GB数据库,至少要配备1.1GB内存;如果你的数据库会增长到8GB,就需要至少为服务器配备8.8GB内存。而且每个NDB节点都要做如此配置。 安全问题 该集群的MGM节点,其管理服务运行在1186端口上;NDB节点的...
>> 阅读全文
|
|
博文视点(北京) |
4029 |
2009-6-8 |
|
集群连接状态测试 首先,我们回到管理节点(mysql-mgm.mtest.com)上。在该服务器上,执行下面的命令:$ ndb_mgm 命令执行后,就会进入MGM的客户端界面,并显示mgm提示符:-- NDB Cluster -- Management Client --ndb_mgm> 在该提示符下,输入show命令,来查看当前连接状态:ndb_mgm> show 在正常情况下,应该显示如下内容:Connected to Management Server at: localhost:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=2 @192.168.1.13 (Version: 5.0.51, Nodegroup: 0)id=3 @192.168.1.14 (Version: 5.0.51,...
>> 阅读全文
|
|
博文视点(北京) |
429 |
2009-6-5 |
|
安装MySQL 在mysql-data1和mysql-data2两台服务器上,分别安装MySQL服务器: $ sudo apt-get update install mysql-server 安装时,安装程序会要求你设置MySQL的root口令。请设置好,并记住该口令。 程序安装完成后,请先停止MySQL服务: $ sudo /etc/init.d/mysql stop 配置my.cnf 在mysql-data1和mysql-data2两台服务器上,要执行相同的操作。 首先,备份原有的/etc/mysql/my.cnf: >> 阅读全文
|
|
博文视点(北京) |
4733 |
2009-6-5 |
|
如何设计方案?”前 言“我们的服务器用的软RAID,现在硬盘不够了,需要添加新硬盘,请问应该怎么做?”“我们发现服务器被入侵了,请问应该怎么做?”“目前Web和数据库在同一台服务器上,可是由于我们的企业发展得太快,现在服务器不够用了,计划增加两台服务器,请问您如何设计方案?”——面试“Linux系统管理员”时可能会被问到的问题近年来,Linux(尤其是Ubuntu)一直保持上升势头,据说目前中国的Linux人才缺口已经达到120万!在2008年开始的全球经济大萧条中,虽然各大公司都在裁员,但是我相信,一个真正优秀的Linux系统管理员,是任何公司都不可能轻易解聘的;不知有多少大大小小的公司,正在如饥似渴地募求Linux人才,却常常慨叹一才难求!我在帮助朋友的公司招聘Linux系统管理员时,发现一个问题:很多人只是对桌面系统很熟悉,却不熟悉Linux服务器;有的人虽然熟悉,却不深入,不精通。本书正是帮助您迅速提高Linux服务器管理技能和经验的绝佳教材。本书的特色您拨打家电服务电话时,可能会听到下面的语音:“普通话请按1,English press 2。”“个人服务请按1,企业客户请按2。”“小家电请按1,电冰箱请按2,空调器请...
>> 阅读全文
|
|
博文视点(北京) |
387 |
2009-6-5 |
|
一年后的今天重读《梦断代码》有感 一年之前的今天我在书店看到了《梦断代码》这本书,这本很早就在网上关注过的图书,当即就买下了,经过几天的挑灯夜读算是完成了第一遍的阅读,在余味未尽之时读了第二遍,对于书中说到的故事,看似说的是一个软件,其实说的大千软件,看似说一事,其实是说百事,作为软件开发行业的人员是深有体会的。 前两天在整理自己的书柜时,又翻到了这本曾经让自己彻夜挑灯夜读的书——《梦断代码》,回忆起当时自己第一次阅读到本书的时候的心情,当时是多么的激动和感慨。 花费了那么多的时间和经历,人力、财力及物力,换到的却是最终的失败,让人甚是惋惜和同情。想想发生在自己身边的事情,何尝不是如此的,虽然不如书中主人翁那样的花费,但是作为个人而言,有些事情的失败就已经可以是致命的了。 在整理书柜的时候,我又把这本书放到我们的书桌上,这几天又花了一点时...
>> 阅读全文
|
|
博文视点(北京) |
7145 |
2009-6-4 |
|
设备绑定的内核API之一 进行过滤的最主要的方法是对一个设备对象(Device Object)进行绑定。读者可以想象,Windows系统之所以可以运作,是因为Windows中已经存在许多提供了各种功能的设备对象。这些设备对象接收请求,并完成实际硬件的功能。我们可以首先认为:一个真实的设备对应一个设备对象(虽然实际对应关系可能复杂得多)。通过编程可以生成一个虚拟的设备对象,并“绑定”(Attach)在一个真实的设备上。一旦绑定,则本来操作系统发送给真实设备的请求,就会首先发送到这个虚拟设备。 下面结合代码进行讲解。读者可能希望编译执行这些代码,驱动的初学者请先阅读本书第1章,以便学会如何安装开发环境、编译代码和调试程序。 在WDK中,有多个内核API能实现绑定功能。下面是其中一个函数的原型:NTSTATUS IoAttachDevice( >> 阅读全文
|
|
博文视点(北京) |
1427 |
2009-6-3 |
|
无处不在的内核模块 位于高2G空间内的操作系统内核,并非做死的一个巨大程序。因为计算机硬件种类繁多,不可能做出一个能支持所有硬件的巨大内核。 内核是有接口的,微软提供规定的格式,让硬件驱动的编程人员,能按照规定的格式编写“驱动程序”。这些驱动程序能够作为模块加载到内核中,成为内核的一部分,这样内核只要简单地安装驱动程序,就可以适应各种不同的硬件了。 本书中的大部分例子都是编译成内核模块的,实际上也可以称为驱动程序(Driver)。但是它们大部分并不驱动任何硬件,有人称之为“软件驱动”。但是笔者认为这不够贴切,所以本书使用Linux程序员们的叫法,称之为内核模块(Kernel module)。也许这样要更贴切一些,驱动程序可以看成内核模块的一种(少量的应用层驱动程序除外)。 内核模块...
>> 阅读全文
|