HengFeng

--博观而约取,厚积而薄发
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

2009年12月12日

摘要: 对于nand最大的问题就是会有bad block,由于bad block的不确定性,所以进一步加大了对nand编程访问的难度。所以只有解决了bad block的问题才可能使用nand,将bad block处理的好才会最大的提升nand的access效率。 什么是bad block呢?就是在这一个block里有1个或多个bit的状态不能稳定的编程,所以就没法使用它,但是如果一个block(128KByte)有一个Bit是坏的,那么整个block放弃使用。听起来有点浪费,可能是根据物理原理使整个block的稳定性不能保证吧,或者是其他考虑。不过既然三星要求我们这么做,那么为了系统的稳定,也不... 阅读全文

posted @ 2009-12-12 22:44 hengfeng 阅读(2357) 评论(0) 推荐(0) 编辑

2009年12月5日

摘要: 一,基本流程 ATCoP(AT Command Processor)是高通平台上对于AT命令处理的模块。基本上它遵循以下过程: 串口(sio)接收到串口发送过来的字符串--> AT Command Parser --> 产生一个重要的Token结构,它包含了命令名称,接收到的参数,以及response的buffer--> 之后AT Command ProcessorProcess 通过Token里面的信息查调用相应的AT 命令处理函数 -->处理完成后产生相应的response给TE。二,具体代码实现例子1 . 我们在USB MODEM上需要实现一个对PIN码校验的功能 阅读全文

posted @ 2009-12-05 14:25 hengfeng 阅读(2825) 评论(1) 推荐(1) 编辑

2009年11月29日

摘要: SIM Application Toolkit 来源:simpleteam.com简单地介绍STK方面的开发 SIM卡最初用来储存电话号码、短消息和用户个人资料。卡内处理器在认证和编码时进行计算。它完全从属于手机。GSM标准的演进带来全新的概念——SAT,它使电话在某些时候不再授命而是听命于SIM卡处理器内的应用,从而通过一些命令就可进行与人的双向反应。 SAT或SAT技术使营运商很容易通过SMS或小区广播来更更新用户的SIM卡设置或提供新的服务。SAT应用在服务器端运行于JAVA环境,服务器需遵守一些智能卡规范如Gemplus、Giesecke&Devrient或Orga,有时还要遵 阅读全文

posted @ 2009-11-29 14:49 hengfeng 阅读(1606) 评论(0) 推荐(0) 编辑

2009年10月29日

摘要: 一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。要了解RO,RW和ZI需要首先了解以下知识:ARM程序的组成此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别。一个ARM程序包含3部分:RO,RW和ZIRO是程序中的指令和常量RW是程序中的已初始化变量ZI是程序中的未初始化的变量由以上3点说明可以理解为:RO 阅读全文

posted @ 2009-10-29 14:19 hengfeng 阅读(1173) 评论(0) 推荐(0) 编辑

2009年10月10日

摘要: 公司的一款CDMA中端手机要加上FM,采用RDA5802,本来自动搜台是采用芯片内部的自动搜台功能,但发现搜台的精确度不是很理想,所以修改了搜台的方式,即设置要搜索的频率的范围,然后以一定的步长(如100kHZ),逐点TUNE,然后再读取这个频点的工作状态,判断是否是真台。 uint8 RDA5802_reg_data[4]={0}; uint8 RDA5802_channel_seek[] = {0xc0,0x01}; uint16 CurrentChannel;//frequency这里的值为870~1079,即87MHZ~107.9MHZ,然后套用公式Frequency =Channe. 阅读全文

posted @ 2009-10-10 15:37 hengfeng 阅读(2125) 评论(0) 推荐(0) 编辑

2009年10月7日

摘要: 国庆回家闲来无事,把目前几个项目用到的NV备份恢复机制做个小结。一,引言1. 什么是NV高通平台的NV,保存了系统运行过程中各个模块可能用到的一些参数值,它是以单个文件的形式保存在EFS中,但用户是不能随意访问的,只能通过QXDM来进行读写。对于60X0平台,NV就有将近5千多项。2. 为什么要备份恢复NVNV值是需要通过校准和终测才能使手机硬件达到最佳工作状态,特别是其中的RF相关的NV项,经过校准及终测后,每台手机的这些NV值基本上都不一样,又加上NV数据是是存储在EFS,而EFS的数据很可能遭到破坏(如:重新烧写版本),这时的NV数据也将被破坏,之前校准和终测后的NV数据也将无法恢复,使 阅读全文

posted @ 2009-10-07 01:22 hengfeng 阅读(6976) 评论(3) 推荐(1) 编辑

2009年9月9日

摘要: 最近花了点时间写了一个应用程序,用来与下位机(PIC单片机)通信,采集多个通道传感器的电压值,并保存到Excel。主要的功能有:1. 可以配置串口的属性,如波特率,数据位等。2. 可修改需要保存的通道个数,并动态更新通道对应产品名称列表。3. 可设置任意字差来判断不同时刻接收到的数据是否NG。4. 可修改EXCEL保存的路径,每次运行时自动产生对应时刻的EXCEL文件。5. 以上的设置均保存到.ini文件中,下次启动时读取上次保存结果。6. 默认设置5个用户,允许修改用户名和密码。在结束运行时,会把用户名记录到本次记录的EXCEL中。用户名和密码的保存采用了加密算法。开发环境:VS2005运行 阅读全文

posted @ 2009-09-09 14:47 hengfeng 阅读(347) 评论(0) 推荐(0) 编辑

2009年8月7日

摘要: 调试camera的时候,有些时候LCD或许还不能正常工作,或则UI尚未完成,而我们却想看到camera拍摄到的图像,这时就可以借助Trace32的强大功能。当然,前提是你可以启动camera。^_^首先,我们要确保sensor已经正常工作了,可以把断点设置在OEMCamera_CameraLayerCB()这个函数,它是一个总体的回调函数,包括收到帧事件,所以如果此函数断点反复的被执行到,那么说明sensor有数据(帧)传上来,如图:在断点被执行到后,打开"Stack ”,查看函数的调用关系,可以看到camera_process_qdsp_msg()里面的一个参数为buf = 0x1 阅读全文

posted @ 2009-08-07 00:21 hengfeng 阅读(2330) 评论(4) 推荐(0) 编辑

2009年8月5日

摘要: 有过嵌入式程序设计的程序员都知道,在创建一个新的任务时都要为其传入一个栈空间和栈的大小(有时),那么这个栈到底是用来干什么的呢?本文将带你找到答案。本文介绍的实验环境是Windows上移植的uCOSII,在VS.Net 2003中。一、栈首要的任务就是,存储当前任务的寄存器状态以便在任务切换时恢复到切换前的状态。这个功能是嵌入式的OS中栈的特有功能,其地址存放在任务的控制块TCB中。二、存放函数调用及局部变量。 一个嵌入式系统中往往存在很多个任务,特定任务的栈只存放该任务调用的函数及局部变量,下面我们给出实验结果://创建任务需要的栈空间int TaskStk[10][2048]; // Ta 阅读全文

posted @ 2009-08-05 15:52 hengfeng 阅读(399) 评论(0) 推荐(0) 编辑

2009年7月22日

摘要: 这个星期在移植带数据功能的固定台项目,一开始傻傻地以为只要把固定台的UI移到数据卡上就OK了。说干就干,第一步修改固定台项目FLASH相关的一些FEATURE。包括single bus -> dual bus, ASYNC_TYPE -> BURST_TYPE 。第二步,重新定义FLASH,PSRAM,EFS的起始地址和大小。第三步,修改FLASH drvier,以及增加数据功能相关的FEATURE和代码。第四步,编译+链接 ----- (PS:其实有时候找编译产生的BUG也挺有趣的。^_^)最后用TRACE32烧代码,BOOT成功启动,但是在创建文件系统的时候系统就跑飞了,单步跟 阅读全文

posted @ 2009-07-22 17:44 hengfeng 阅读(649) 评论(0) 推荐(0) 编辑