![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式开发
t_larry
主要负责研发中心的管理工作及公司主要产品设计及研发工作。熟悉基于ISO14443标准的HF射频技术,开发第二代居民身份证阅读设备的下位机软件及指纹采集与核验软件。申请专利多项。
展开
-
如何从零开始开发一款嵌入式产品
如何从零开始开发一款嵌入式产品 首先,如果你有幸看到这篇文章,千万不要试图在2个小时内阅读完,就算你2个小时阅读完,我相信你也不会理解里面讲解的精华之处,我相信,你应该将此文章,慢慢品尝,这绝对是一篇需要品尝2~3天,再结合自己过往的经验,加上自己的思考,我相信会对你不仅仅是技术能力,甚至包括整体的思维方式都会有一个非常大的提高。 我写这篇转载 2010-01-17 22:30:00 · 997 阅读 · 1 评论 -
对.lds连接脚本文件的分析
本文由Jacky原创,来自http://blog.chinaunix.net/u1/58780/showart.php?id=462971对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下GNU官方网站上对.lds文件形式的完整描述:转载 2008-06-25 19:55:00 · 999 阅读 · 0 评论 -
嵌入式软件开发流程
1 嵌入式软件开发流程 参照嵌入式软件的开发流程。第一步:工程建立和配置。第二步:编辑源文件。第三步:工程编译和链接。第四步:软件的调试。第五步:执行文件的固化。 在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备。编辑工程文件,包括自己编写的汇编和C语言源程序,还有工程编 译时需要编写的链接脚本文件,调试过程中需要编写存储区转载 2008-06-25 19:59:00 · 5944 阅读 · 3 评论 -
LCD模块设计
LCD液晶显示器由于具有体积小、重量轻、低电压、低功耗等特点,因此适合于结合大规模集成电路开发出各种便携式显示产品,具有十分广阔的市场前景。在嵌入式系统中,数据和命令通过网络接口或串行口经过ARM程序处理后,或显示在LCD上,或传输到远端PC上,LCD是实现人机交互的一个重要通道。1实例说明ARM内置的LCD控制器,可以支持规格为每像素2位(4级灰度)或每像素4位(16级灰度)的黑白L转载 2008-08-05 23:23:00 · 4921 阅读 · 1 评论 -
中断处理模块设计
当ARM系统运行时,外部异常情况可能会随时发生,为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中要进行中断处理,采用的方式是在中断向量表中的特定位置放置一条跳转指令,跳转到中断处理程序。当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到中断处理程序,当中断处理完成以后,返回到主程序继续执行。1实例说明要让编写的应用程序能够正确运行,需要转载 2008-08-05 23:21:00 · 1185 阅读 · 0 评论 -
通用I/O模块设计
通用I/O接口(General Purpose IO Interface,GPIO)是ARM系统及片上SoC(System-on-Chip)系统中非常重要的一种I/O接口,具有使用灵活、可配置性好、硬件代价小等优点,在ARM系统中广泛应用。1 实例说明ARM Linux系统的设备可分为字符设备、块设备和网络设备三种。GPIO属于字符设备,字符设备是指存取时具有较少缓存的设备。而块设备的转载 2008-08-05 23:20:00 · 1315 阅读 · 0 评论 -
A/D变换模块设计
现实生活中所遇到的信号大多是连续变化的模拟量,这时就需要一个接口电路把模拟量转换成数字量,能完成这项任务的接口部件就是A/D模数转换器。而ARM数据采集的精度及速度,在很大程度上也取决于A/D模数转换器。1实例说明ARM控制整个系统的运行,D/A数模转换器将ARM发来的数字量转化为模拟量,A/D模数转换器将测试得到的模拟量转换为数字量,由ARM接收,串口芯片接收ARM传输的二进制信息并转载 2008-08-05 23:22:00 · 3819 阅读 · 0 评论 -
复位模块设计
ARM系统复位电路的结构并不复杂,且参考电路的形式较多。但是,在嵌入式系统设计中,由于ARM复位模块的复杂性,因此其外部的复位电路设计也是一种复杂而重要的设计工作,设计时也不能轻视。1实例说明在嵌入式应用系统的设计中,复位问题是ARM设计中一个基本而又重要的问题,复位电路的设计是相当重要的一步。复位的目的是为了在仿真时将设计强制定位在一个可知状态,合理选择复位方式是电路设计的关键转载 2008-08-05 23:21:00 · 1417 阅读 · 0 评论 -
SDRAM模块设计
SDRAM具有高速、大容量等优点,是一种具有同步接口的高速动态随机存储器。它的同步接口和内部流水线结构允许存储外部高速数据,数据传输速度可以和ARM的时钟频率同步,在ARM系统中主要用作程序的运行空间、数据及堆栈区。 SDRAM可以分为两个单元块,数据可以在两个单元块之间交叉存取。即当一个比特的数据在一个单元块中被存取的时候,另一个比特的数据可以在另外一个单元块中做好准备。所以SD转载 2008-08-05 23:19:00 · 1844 阅读 · 0 评论 -
电源模块设计
ARM微处理器因其高性能和低功耗的特性,特别适合于便携式系统的应用。而系统级的供电问题对于电源的有效管理也是非常重要的。一方面电源模块应尽可能满足对各模块的不同用电电压问题,另一方面要努力降低嵌入式系统的用电量。1实例说明电子设备电源系统包括交流电源和直流电源,电源部分是整个系统的基础,这部分的稳定工作对整个ARM核心板的稳定工作起着至关重要的作用,而ARM 处理器也带有先进的转载 2008-08-05 23:18:00 · 3053 阅读 · 0 评论 -
FatFs文件系统的移植
很久没有更新过博客的东西了,忙,真的很忙,前两天移植了一个文件系统,感觉还八错,一来怕自己忘了,二来可以给更多的朋友参考参考,让大家少走一些弯路,所以就抽空记下来了。 因为需要,又不想自己写,所以就移植了一个文件系统。 说下我的硬件和开发工具:接成 TRUE IDE 模式下的CF卡(也就是相当于一块硬盘了),三星S3C2440转载 2008-10-16 12:44:00 · 5668 阅读 · 6 评论 -
利用Protothread实现实时多任务系统
摘要在许多系统资源非常紧张的单片机应用中,使用实时操作系统进行任务调度来实现实时多任务系统时,由操作系统带来的系统开销往往是不可接受的。通过升级硬件来改善系统资源紧张,意味着成本的增加,降低产品的竞争力。本文介绍采用Protothread在非常小的系统开销下实现实时多任务系统的方法。 关键词 Protothread 实时 多任务 线程模型 嵌入式程序框架一般类似于程序1所示结构:转载 2008-10-18 21:00:00 · 2130 阅读 · 0 评论 -
IEEE754 符点运算备忘
IEEE754 符点运算备忘 IEEE754符点数(32位)表示方式:X XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX|__符号(0:正数 1:负数) |__指数(8位) |__尾数(23位)具体可以查看IEEE754标准,转载 2010-01-16 17:33:00 · 623 阅读 · 0 评论 -
Please ensure that adb is correctly located at问题解决
遇到问题描述:运行android程序控制台输出 [2012-07-18 16:18:26 - ] The connection to adb is down, and a severe error has occured. [2012-07-18 16:18:26 - ] You must restart adb and Eclipse. [2012-07转载 2013-05-27 13:47:54 · 595 阅读 · 0 评论 -
BlackBerry NFC真机开发环境
BlackBerry NFC真机开发环境资源描述:开发工具–JDK 1.6–BlackBerry Java Plugin for Eclipse v1.5 (Windows)–免费申请并安装BlackBerry应用签名数字证书•支持NFC的BlackBerry手机:9900/9930/9360•BlackBerry支持的NFC卡片–智能标签:初学者建议购买Mif转载 2012-07-26 12:54:00 · 813 阅读 · 0 评论 -
如何利用NFC加快蓝牙处理的速度
如何利用NFC加快蓝牙处理的速度 虽然蓝牙是一种优秀的短距离数据通信技术,但是,其传输层协议的缺点是不便于用户对设备之间的初始链路进行设置。简单地把蓝牙耳机与蜂窝电话连接起来就要占用30秒的时间(最坏情况),而重新连接过去已识别的节点常常需要一些手工干预。 幸运的是,近场通信(NFC)技术可以被用于与蓝牙结合在一起使用,从而简化把新节点添加到用户正常工作的个人区域网的过转载 2012-07-26 11:58:24 · 2658 阅读 · 0 评论 -
在C# 2.0版本中使用Extensions方法
在C# 2.0版本中使用Extensions方法 最近在测试一个ftp类时发现其在.netcf V2版本下无法编译,但是却可以编译在3.0版本中。报错地方如下:using System; using System.Runtime.CompilerServi原创 2011-09-06 18:29:57 · 1365 阅读 · 0 评论 -
Linux下的硬件驱动——USB设备(上)(驱动配置部分
赵明(carl__zhao@163.com)联想软件设计中心嵌入式研发处系统设计工程师2003年7月USB设备越来越多,而Linux在硬件配置上仍然没有做到完全即插即用,对于Linux怎样配置和使用他们,也越来越成为困扰我们的一大问题。本文分两部分着力从Linux系统下设备驱动的架构,去阐述怎样去使用和配置以及怎样编制USB设备驱动。对于一般用户,可以使我们明晰Linux设备驱转载 2009-05-26 16:10:00 · 594 阅读 · 0 评论 -
C语言中怎样判断汉字(转载)
在处理套打程序时用到TextOut,但TextOut无法自动换行,只好动手写代码,可是处理到汉字部分时卡住了,搜索网上判断汉字的帖子,都语焉不详,经过一下午的研究,终于整理出一个简单的教程。其实判断汉字的代码很简单,简单到只有一行就可以了,但不理解汉字编码的基础,这一行代码却万万无法理解。常用的字符编码有以下三种:1、ASCII 只支持英文,全部为8位2、DBCS 支持英文和中文,但中文需要两个转载 2009-05-11 16:43:00 · 4375 阅读 · 0 评论 -
LwIP移植心得
LwIP终于能跑了,总结下:平台是LPC2136+ENC28J60,32K的RAM,软件是uCOS-II 2.51+LwIP 1.1.1。感觉主要解决两个问题:操作系统仿真层的移植。这个基于uCOS-II的代码太多了。COPY下就行!1,设备驱动的移植.驱动的移植主要就是完成ethernetif.c的工作。作者已经给好了驱动的接口。struct netif { struct netif *nex转载 2008-11-09 22:40:00 · 7594 阅读 · 3 评论 -
编写适合自己需要的printf()函数
对于嵌入式软件的开发人员而言,“printf调试(printf-debugging)”这个术语描述了将调试字符串从嵌入式目标空闲的串口压出,并在运行于宿主工作站的终端模拟器上显示结果的常见方法。 出于这个目的,许多程序员更喜欢使用有名的printf() C语言库函数,因为它在将文本输出和数据组合成单个函数调用上具有灵活性。但是,不在嵌入式系统中使用p转载 2008-10-11 13:27:00 · 910 阅读 · 0 评论 -
Nand-Flash/Nor-Flash存储模块设计
随着嵌入式系统越来越广泛的应用,嵌入式系统中的数据存储和数据管理已经成为一个重要的研究课题。Flash存储器具有速度快、成本低等很多优点,因此在嵌入式系统中的应用也越来越多。为了合理地管理存储数据,进行数据共享,Flash的设计在ARM嵌入式系统中对数据存储和数据管理尤为重要。1实例说明在嵌入式设备中,有两种程序运行方式:一种是将程序加载到SDRAM中运行,另一种是程序直接转载 2008-08-05 23:10:00 · 1641 阅读 · 0 评论 -
基于ARM920T的FLASH的读写
最近一直在致力于基于ARM920T的FLASH的读写,虽然这部分一般没有多少人屑于研究,认为比较简单(U-boot和VIVI中都有现成的支持程序),但对于初学的我,还是尽心尽力地学习一下,目的在于自己编写一个通用flash驱动程序,以下是前段时间对主要两种flash的认识,大致整理了一下 FLASH 所谓Flash,是内存(Memory)的一种,但兼有RAM和R转载 2008-08-05 23:05:00 · 1118 阅读 · 0 评论 -
μC/GUI在MSGl9264液晶上的移植
μC/GUI是美国Micrium公司出品的一款针对嵌入式系统的优秀图形软件。与μC/OS一样,μC/GUI具有源码公开、可移植、可裁减、稳定性和可靠性高的特点[1]。采用μC/GUI,开发人员可以很方便地在液晶上显示文本、曲线、图形以及各种窗口对象如按钮、编辑框、滑动条等,可完全产生类似于Windows的显示效果。另外,μC/GUI提供了在VC下的仿真库,这使得用户完全可以在Windows下仿真μ转载 2006-04-27 22:36:00 · 5368 阅读 · 2 评论 -
嵌入式设备上的 Linux 系统开发
Linux 正在嵌入式开发领域稳步发展。因为 Linux 使用 GPL(请参阅本文后面的参考资料), 所以任何对将 Linux 定制于 PDA、掌上机或者可佩带设备感兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发。许多 Linux 改良品种迎合了嵌入式/实时市场。它们包括 RTLinux(实时 Linux)、uclinux(用于非 MMU 设备的 Linux)、Montavist转载 2006-04-16 22:28:00 · 1103 阅读 · 0 评论 -
s3c44b0x uclinux2.4.19移植
终于看到一点结果了... 首先很感谢tpu, coldwind等给的帮助. 第一次做这个,很多概念都是在这里得到各位的帮助. 至今为止还有很多概念问题,没搞清楚,以后多多指教. 附件里是,我参考过的两篇文档. 但是tpu曾建议不要用dist来做,直接用纯的linux源码包来做, 我后来也是用linux源码包来做的. 个人也倾向于直接用linux kernel源码包来做,这样更清晰, 就是Makef原创 2006-04-16 22:26:00 · 1223 阅读 · 0 评论 -
内存对齐问题
typedef struct{ UINT32 NumElements; union { UINT32 ObjectHandle; }Entry;}STR_ARRAY, *PSTR_ARRAY;还有这两句#pragma pack(push, 1)#pragma pack(pop)#pragma pack( [ n ] )该指令指定结构和联合成员的紧凑对齐。而一个完整的转换转载 2006-04-17 15:46:00 · 819 阅读 · 0 评论 -
Linux 内核配置系统浅析
随 着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核。这就需要了解 Linux 的内核配置系统。众所周知,Linux转载 2006-04-16 22:22:00 · 825 阅读 · 0 评论 -
结构在优化编译中的对齐问题
结构在优化编译中的对齐问题 Q: 我正在写一个流模块,其中用到了#pragma pack(),当使用 gcc -D_KERNEL -c abc.c ld -r -o abc abc.o 编译链接时,一切正常。为了获得64-bit模块,我必须使用Sun Workshop 5.0, 结果导致系统崩溃。访问 http://docs.sun.com/htmlcoll/col转载 2006-04-17 23:06:00 · 2571 阅读 · 0 评论 -
如何在 Linux 下實作像DOS下的getch()
在 Linux getch()預設好像都要按 Enter 才會抓按下的鍵,但因為我要測試 keypad 沒有 Enter 鍵,所以一直卡在那邊 一個本來在 DOS 下,很簡單就可以寫出來的程式,在 Linux 下搞了好久....-_-"最後終於找到解決方法,要把terminal的一些屬性重設才可以達到我們要的功能....程式碼如下:#include #include #incl原创 2006-04-06 17:43:00 · 3193 阅读 · 2 评论 -
Insight图形界面调试器
安装过程:解压insight-6.1.tar.gz生成insight-6.1文件夹将insight-6.1拷贝到/TMP下执行命令 ./configure makeTo install them (by default in /usr/local/bin, /usr/local/lib, etc),then do:(程序缺省安装情况) make installInsight工具是原创 2006-04-02 22:26:00 · 1938 阅读 · 0 评论 -
linux操作系统下c语言编程入门
linux操作系统下c语言编程入门 整理编写:007xiong 原文:Hoyt等 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序设计入门--线程操作 8)Linux程序设计转载 2006-04-02 21:56:00 · 5185 阅读 · 0 评论 -
PC环境下用BC3.1编译连接调试uC/OS-II源文件
网友 Hcompute 经过一段时间的摸索,将uC/OS-II成功地实现了在Borland C 3.1 下的编译,现将其心得公之于众,以供参考。1、 将uCOSV251.exe文件解压缩到d:/;2、 进入d:/software/uCOS-II/EX1_x86L/BC45/SOURCE/,用写字板打开test.lnk文件,范例中原文件为:/v /s /c /P- +C:/BC45/转载 2006-04-27 23:43:00 · 2515 阅读 · 1 评论 -
wince自带数据库应用
这篇文章介绍如何管理操作PPC自带的个人数据库。附件是其中的例子,使用C#Windows CE的数据库也叫CEDB,这个数据库的每个数据都有一个table而没有固定的结构记录。每个数据库只容许有4 个字段的。他可以被直接创建或者通过程序来创建。看内容还挺都多,最近时间有点紧写个Introduction算了。原文如下:IntroductionThis article shows how转载 2006-12-11 22:28:00 · 1891 阅读 · 0 评论 -
nand flash (k9f5608)驱动编程
nand flash (k9f5608)驱动编程1.nand flash的引脚nand flash比较重要的几个引脚如下I/O引脚:对于该款flash芯片I/O引脚有8个0-7,有的芯片有16个0-15CLE:指令传输使能(指令可以锁存在nand flash的指令寄存器中)ALE:地址传输使能(地址可以锁存在nand flash的地址寄存器中)CE:片选,低有效2.na原创 2008-08-05 22:57:00 · 2460 阅读 · 4 评论 -
UART异步串行接口模块设计
电子工业协会(EIA,Electronic Industry Association)推荐的RS-232-c标准,是一种常用的串行数据传输总线标准。UART(通用异步收发器/串口/RS-232),早期它被应用于计算机与终端通过电话线和MODEM进行远距离的数据传输,随着计算机和微控制器的发展,近距离也采用该通信方式。在ARM嵌入式系统中,UART串口与USB、网口常用于系统的调试。1实例说转载 2008-08-05 23:25:00 · 1934 阅读 · 0 评论 -
键盘模块设计
在ARM嵌入式应用中,人机交互对话最通用的方法就是通过键盘和LCD显示进行的,操作者通过键盘向系统发送各种指令或置入必要的数据信息。键盘模块设计的好坏,直接关系到系统的可靠性和稳定性。1 实例说明在ARM应用系统中,键盘扫描只是ARM的工作之一,ARM在忙于各项工作任务时,如何兼顾键盘的输入,则取决于键盘的工作方式。键盘工作方式的选取原则是既要保证能及时响应按键操作,又要不转载 2008-08-05 23:24:00 · 3755 阅读 · 0 评论 -
s3c2410的nand flash的驱动分析
s3c2410的nand flash的驱动分析以前都是把别人写好的代码直接拿过来用,而没有去关心里面到底怎么实现的,昨晚对照着samsung 2410和k9f1208的芯片资料把这些代码读了一遍,终于明白了对nand flash的操作一步步是怎么实现的了。以下的这些代码可以在vivi或者kernel里面找到对一个nand flash的操作,总体上可以分为这么四步:一、Select th转载 2008-08-05 22:47:00 · 851 阅读 · 0 评论 -
linux中select()函数分析
select()的机制中提供一fd_set的数据结构,实际上是一long类型的数组, 每一个数组元素都能与一打开的文件句柄(不管是Socket句柄,还是其他 文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成, 当调用select()时,由内核根据IO状态修改fd_set的内容,由此来通知执行了select()的进程哪一Socket或文件可读,下面具体解释: #include转载 2006-08-15 22:29:00 · 1149 阅读 · 0 评论 -
MiniGUI在工程机械车载安全监控器中的应用
1. 引言 近年来,随着国家基础建设规模的扩大和工程机械租赁业的发展,工程机械面临着良好的市场前景和发展机遇。安全监控器作为工程机械的控制核心,在各种复杂工程机械中占据极其重要的地位。随着社会和科技的进步,以人为本的思想又为工程机械在人机工程学上赋予了新的内涵。如何符合人机工程学理念,为机械操作者的安全和舒适提供保障成为了安全监控器设计的重要参考因素之一。因此,一个友好的图形用户转载 2006-08-15 22:26:00 · 2334 阅读 · 0 评论