- 博客(36)
- 资源 (27)
- 收藏
- 关注
原创 WINCE应用程序和驱动间通信
WinCE上驱动程序的模型相对比较简单,实现一个驱动程序不是什么难事。尽管如此,本文还是实现了一个比较通用一点的通讯接口。应用程序发给信息驱动程序有两种方式,同步调用和异步调用。同步调用能够让驱动程序立即处理应用程序的请求,并返回驱动程序处理后的结果。如:#define MSG_TYPE_TEST_1 0x00000000#define MSG_TYPE_ICMP_PACKET 0x00000001#pragma pack(push, 1)typedef struct __IO_
2010-10-30 19:28:00 771
原创 关于fatal error C1853: 'Debug/TrafficDet.pch' is not a precompiled header file created with this compiler
<br />以前也常常碰到这样的问题。今天决定去解决它,就找了找网上的资料,顺便自己试验了一下。<br />网上资料讲解:<br /> (1)在菜单栏里的工程 -> 设置 -> C/C++ 中,预编译的的头文件选项卡,选择“不使用预补偿页眉”单选项就可以了。不过这种方法的缺点是以后每次编译都会比较慢。<br /> (2)由于在大的工程里,有一些头文件经常使用,往往就会导致这样的编译错误。解决办法是把这些经常使用的头文件写入一个文件(比如precompile.h)里,就如MFC程序里的stdAfx.h一
2010-10-29 16:08:00 5937
原创 vs2005 添加 include路径
<br />vs2005 添加 include路径在项目菜单下的属性目录中的C++常规选项下的附加包含路径!
2010-10-29 15:55:00 2393
原创 C++中extern “C”含义深层探索及extern用法详解
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。 2.从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题 为什么标准头文件都有类似以下的结构?
2010-10-29 14:30:00 961
转载 VirtualCopy in WinCE6.0
<br />在CE4.2/5.0里面滚打多年的兄弟应该经常用这个函数吧。这个函数方便驱动和应用程序范围任何的物理地址,包括物理内存啊,设备控制器的寄存器啊,甚至GPIO也可以在AP里面随便拉上拉下。<br />这个函数虽然方便,但是并不安全,你想你好不容易把一个功能完善的image给build出来了,结果碰到了一个写AP的“高手”,把你的寄存器和共享内存中的数据修改得一塌糊涂,最后报出bug来说你驱动的你会不会晕倒!<br />还好从CE6.0开始我们可以安枕无忧了,因为AP再也不能调用VirtualCop
2010-10-29 13:48:00 568
转载 关于VirtualAlloc和VirtualCopy
<br />弄清楚这个问题首先要了解VirtualCopy和VirtualAlloc这2个函数的实现和目的,以及wince下动态虚拟内存映射和静态虚拟内存映射。 <br />先说VirtualAlloc 和VirtualCopy<br />VirtualAlloc 首先会从我们的虚拟地址空间中申请(或者说预留)一块虚拟空间,准备接下来要用它。注意此时,可用的物理内存并没有减少,只是虚拟地址少了一块可用的区域。 <br />真正把这块之前reserved的虚拟空间映射到物理的内存区域就是由VirtualCop
2010-10-29 13:47:00 799
原创 D触发器
D触发器简介 <br /> 边沿D 触发器 电平触发的主从触发器工作时,必须在正跳沿前加入输入信号。如果在CP 高电平期间输入端出现干扰信号,那么就有可能使触发器的状态出错。而边沿触发器允许在CP 触发沿来到前一瞬间加入输入信号。这样,输入端受干扰的时间大大缩短,受干扰的可能性就降低了。边沿D触发器也称为维持-阻塞边沿D触发器。 电路结构 该触发器由6个与非门组成,其中G1和G2构成基本RS触发器。 工作原理 SD 和RD 接至基本RS 触发器的输入端,它们分别是预置和清零端,低电平有效。当SD=
2010-10-27 21:37:00 10978 1
转载 开关电源和线性电源的区别
<br />线性电源|稳压器的调整管工作在放大状态,因而发热量大,效率低(35%左右),需要加体积庞大的散热片,而且还需要同样也是大体积的工频变压器,当要制作多组电压输出时变压器会更庞大。 <br /> 开关电源的调整管工作在饱和和截至状态,因而发热量小,效率高(75%以上)而且省掉了大体积的变压器。但开关电源输出的直流上面会叠加较大的纹波(50mv at 5v output typical),在输出端并接稳压二极管可以改善,另外由于开关管工作是会产生很大的尖峰脉冲干扰,也需要在电路中串连磁珠加以改善。相
2010-10-27 21:15:00 723
原创 技术和人生
<br />做技术就是对工程中的资源进行控制与协调,实现预定的功能。比如做DSP软件开发就是利用核心板具有的资源进行控制和开发去实现功能,前一阵作F2812的一个工程开发就是利用2812的ECAN,AD,SCI,SPI,IO,中断等等模块进行控制协调实现数据采集分析处理并上传。具体如下:首先通过IO端口采集方波信号换算出信号频率,并根据信号频率进行定点的AD采集并分析处理。然后在通过ECAN上传数据及分析结果等一系列功能。可以看出整个过程就是通过控制并协调不同的资源来实现的。DSP软件开发的资源就是硬件构架
2010-10-27 20:08:00 536
转载 Visual Studio2005 工具选项“加载此属性页时出错”的解决办法
问题:Visual Studio 2005 配置SDK时提示出错。打开Visual Studio 2005 的工具>选项>设备工具时提示:“加载此属性页时出错!”处理方法:1、在“Visual Studio 2005 命令提示”中运行:devenv /ResetSkipPkgs2、重启vs2005,打开vs 2005的工具中的选项,就OK了。devenv命令介绍:Devenv 可用来设置集成开发环境 (IDE) 的各个选项,以及从命令行生成、调试和部署项目。使用这些开关从脚本或 .bat 文件(例如每夜生成
2010-10-27 14:12:00 937
原创 恢复VS2005加载设计窗体失败
恢复VS2005加载设计窗体失败从 WINNT/MicroSoft.NET/Framework/v2.0.xxx 复制文件gdiplus.dll 到 Program Files/Visual Studio 8/Common7/Packages文件夹下在命令行下运行命令 :devenv /resetskippkgs
2010-10-27 14:12:00 545
原创 ARM+DSP双核HPI接口驱动设计
ARM外部I/O与HPI硬件连接S3C2410与TMS320C6416硬件接口如图1所示, S3C2410的两根地址线ADDR[3:2]接HPI口的HCNTL[1:0],以实现ARM对HPI口3个寄存器的访问。S3C2410用ADDR4代替读写选通信号连接HPI口的HR/W。S3C2410片选信号nGCS1接到HPI片选HCS上,将DSP的HPI接口作为外部物理地址映射到S3C2410相应的内核空间,位于外部I/O接口BANK1地址0x08000000~0x0FFFFFFF上。HPI接口设备驱动程序软件设计
2010-10-27 14:10:00 1201
原创 电子技术入门学习内容综述
<br />学好电子技术,打好扎实的基础需要掌握哪些知识?初学者在学习之初能有所了解,学习就会心中有数,有的放矢。 <br />一、元器件 <br />1.识别 <br />(1)认识元器件(实物的外形特征) <br />(2)识别元器件引脚(极性,引脚排列顺序) <br />(3)参数表示方法(直标法、色标法、数字字母混标法等) <br />(4)型号命名方法 <br />2.种类 <br />进一步分类的方法很多,元器件非常丰富 <br />3.电路符号 <br />(1)新电路符号 <br />(2)
2010-10-27 14:10:00 1250
原创 电容、电阻、电感的基本知识
电容器在电力系统中是提高功率因数的重要器件;在电子电路中是获得振荡、滤波、相移、旁路、耦合等作用的主要元件。 <br />电解电容在电路中的作用 <br /><br />1,滤波作用,在电源电路中,整流电路将交流变成脉动的直流,而在整流电路之后接入一个较大容量的电解电容,利用其充放电特性,使整流后的脉动直流电压变成相对比较稳定的直流电压。在实际中,为了防止电路各部分供电电压因负载变化而产生变化,所以在电源的输出端及负载的电源输入端一般接有数十至数百微法的电解电容.由于大容量的电解电容一般具有一定的电感,对高
2010-10-27 14:08:00 2064
原创 什么是上拉电阻和下拉电阻,上拉电阻和下拉电阻有什么应用
上拉电阻就是把不确定的信号通过一个电阻钳位在高电平,此电阻还起到限流的作用。同理,下拉电阻是把不确定的信号钳位在低电平。上拉电阻是指器件的输入电流,而下拉指的是输出电流上拉电阻:1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。2、OC门电路必须加上拉电阻,才能使用。3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。4、在COMS芯片上,为了防止静电造
2010-10-27 14:07:00 732
原创 JTAG以及PLL
到底什么是JTAG呢?JTAG(Joint Test Action Group)联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP(Test Access Port测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JT
2010-10-27 13:58:00 883
转载 怎样去理解去耦电容
<br />【1】去:消除,去掉。<br />耦:耦合,不是辐射<br />【2】1,耦合,有联系的意思。<br />2,耦合元件,尤其是指使输入输出产生联系的元件。<br />3,去耦合元件,指消除信号联系的元件。<br />4,去耦合电容简称去耦电容。<br />5,例如,晶体管放大器发射极有一个自给偏压电阻,它同时又使信号产生压降反馈到输入端形成了输入输出信号耦合,这个电阻就是产生了耦合的元件,如果在这个电阻两端并联一个电容,由于适当容量的电容器对交流信号较小的阻抗(这需要计算)这样就减小了电阻产生的
2010-10-27 13:55:00 917
原创 气质的培养(哈佛管理世界)
<br />一:沉稳<br /> (1)不要随便显露你的情绪。<br /> (2)不要逢人就诉说你的困难和遭遇。<br /> (3)在征询别人的意见之前,自己先思考,但不要先讲。<br /> (4)不要一有机会就唠叨你的不满。<br /> (5)重要的决定尽量有别人商量,最好隔一天再发布。<br /> (6)讲话不要有任何的慌张,走路也是。<br /><br />二:细心<br /> (1)对身边发生的事情,常思考它们的因果关系。<br />
2010-10-27 09:11:00 434
转载 养成让自己进步的26个习惯
<br />一. 永远不说三个字“不可能”。<br />二. 凡事第一反应是找方法,而非是找借口<br />三. 遇到挫折时大声对自己说:“太棒了,我终于有机会成长了。”<br />四. 不说消极的话,不落入消极的情绪当中,一旦出现问题应正面处理。<br />五. 凡事先定订目标,并尽量制作梦想版。<br />六. 凡事预先做计划,尽量将目标视觉化。<br />七. 是工作和学习的时间,就要全部的用在工作和学习上,不要盗用工作和学习的时间。<br />八. 养成记录的习惯,不要太依赖自己的脑袋记忆。<br
2010-10-27 09:08:00 445
原创 内存管理单元mmu
一、内存管理单元MMU介绍内存管理单元简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。MMU使得每个用户进程拥有自己独立的地址空间,并通过内存访问权限的检查保护每个进程所用的内存不被其他进程破坏。重点就在于地址映射:页表的结构与建立、映射的过程。1、S3C2440 MMU地址变换过程 1)地址的分类一个程序在运行之前,没有必要全部装入内存,仅需要将那些要运行的部分先装入内存,其余部分在用到时从磁盘载入,当内存不足时,再将暂时不用的部分调出到磁盘。这使得大程序可以在较小的内存空间
2010-10-26 19:48:00 880
转载 51单片机是冯诺依曼还是哈佛结构(转)
转自:http://longer.spaces.eepw.com.cn/articles/article/item/78196关于这个问题,有人说51地址线复用,就是冯诺依曼结构。 很多入门的书上基本上都说:由运算器、控制器、存储器、输入设备、输出设备组成的系统 都叫冯氏结构。 也有的说:“程序存储器的数据线地址线”与“数据存储器的数据线地址线”共用的话,就 是冯氏结构,所以51是该结构。(我认为说得太绝对了) 我认为冯氏结构与哈佛结构的区别应该在存储器的空间分别上,哈佛结构的数
2010-10-26 19:36:00 2568
转载 s3c2440 LCD及触摸屏的学习笔记(2)
触摸屏是通过中断来实现的。我的程序是在sdram中运行的,要想正确的实现中断跳转,就要使MMU工作,实现物理地址与虚拟地址的映射,把虚拟地址0x00000000映射到物理地址0x30000000(sdram的首地址)。MMU相应的函数在2440slib.s中。 触摸屏可分为矢量压力传感式、电阻式、电容式、红外式和表面声波式等,我用的是最普遍的-四线电阻式。s3c2440集成了4线制电阻式的触摸屏接口,触点坐标的检测是通过A/D转换来实现的。s3c2440提供8路A/D模拟输入,其中有4路
2010-10-26 19:04:00 1019 1
转载 s3c2440 LCD及触摸屏的学习笔记(1)
<br />所用的LCD为TopPoly-TD035STED4(TFT)型号,240*320的<br /><br />其VCLK为6.39MHz。 根据s3c2440手册s3c2440处理LCD的时钟源是HCLK,通过寄存器LCDCON1中的CLKVAL可以调整VCLK频率大小,它的公式为:VCLK=HCLK÷[(CLKVAL+1)×2],程序的内部分频为FCLK=400MHz、HCLK=100MHz、PCLK=50MHz(MPLLCON=(92<<12)|(1<<4)|1;),因此得到CLKVAL取整为6
2010-10-26 19:01:00 1179
原创 PB5.0中的 bootpart移植实现拷贝内核进度显示(一)
最近在做2440的wince 开发,由于wince 系统NANDFLASH在启动时需要拷贝内核到内存这个过程时间较长需要用户等待,这时我想在拷贝过程中添加一个显示进度或动画来提示用户(当然也可以使用XIPKERNEL来加快启动速度,实际上我已经使用呵呵..)那么如何添加就是问题了:最后找到拷贝数据的函数:BOOL BP_ReadData(HANDLE hPartition, LPBYTE pbBuffer, DWORD dwLength){ if (hPartition == INVALID_HAND
2010-10-26 09:56:00 983 1
原创 一次关于2440屏驱动的精彩讨论
头上两幅图就是我的LCD屏的资料了。上面标了VBPD VFPD HBPD HFPD,没说VSPW、HSPW。下面是我在代码中填写的值,可是是出现花屏哦,应该如何设置啊?clkval_calc = 9;#define LCD_VBPD ((18)&0xff)// 18 18 18 #define LCD_VFPD (( 4)&0xff)// 4 4 4#define LCD_VSPW ((14)&0x3f)// 14 14 14#define LCD_HBPD ((68)&0x7f)// 68 68 68
2010-10-22 21:37:00 679
转载 mini2440裸机程序 统宝3.5 LCD驱动 TopPoly-TD035STED4
<br />关于MDK配置,请看前面的文章<br />mini2440裸机程序 如何点亮led灯 基于MDK4.11版<br />http://hi.baidu.com/如来大悲/blog/item/c6150233be4692a45edf0e02.html<br />/**************************************************************<br />The initial and control for 640×480 16Bpp TFT LCD---
2010-10-22 16:28:00 1917
转载 s3c2440-lcd控制器参数如何设定
-<br /> 具体设置需参照CPU文档中LCD控制器部分或显示芯片的硬件手册,我的是cpu是s3c2440,屏是三星横屏-LTV350QV-F04(带触摸屏),分辨率是320*240. 该液晶模块的显示格式为320(×3)×240即显示屏每行具有320个像素点,共240行;每个像素点由RGB(红、绿、蓝)三种颜色组成 <br /><br /> S3C2410 LCD控制器的特性: <br /><br /> STN屏 <br /><br /> -支持3种扫描方式:4bit单扫、4位双扫和8位单扫
2010-10-22 15:45:00 2786
转载 s3c2440_LCD控制器设置及代码详解
1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的 形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。通 过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制STN/TFT屏了。2. S3C2440内部LCD控制器结构图:我们根据数据手册来描述一下这个集成在S3C2440内部的LCD控
2010-10-21 09:07:00 4474
原创 2812 SCI 485 FIFO通讯故障分析
<br /> 最近在弄2812的 RS485的modbus协议通讯,在DSP端使用2812,由于DSP系统要以AD采集为核心。因此必须确保AD采集的准确性因此在SCI中不能使用终端模式,所以选择了FIFO模式在AD采集结束以后,查询SCI 的FIFO的中断寄存器查看是否收到主机传送来的通讯命令。在具体开发中发现:如果主机发送命令字节个数不是FIFO接收的缓冲级数的倍数如接收级数是:16,而发送的字节数是10。则每两次发送才能引起一次FIFO中断。而第三次发送时接收的还是从同开始接收现在问题是第二次
2010-10-19 19:50:00 4283 2
转载 232/422/485/CAN电平与阻抗
典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。其有关电气参数参见表1。 规定RS232RS422R485工作方式单端差分差分节点数1收、1发1发10收1发32收最大传输电缆长度50英尺400英尺400英尺最大传输速率20Kb/S10Mb/s10Mb/s最大驱动输出电压+/
2010-10-14 14:01:00 5350
转载 nk.bin和nk.nb0文件格式分析
<br />借用别人的解释: <br /> 这里提到的bin是一种二进制镜像格式,以片断(section)为单位组织数据,每个片断都包括一个头,头里指定了起始地址,长度,校验值。Platform Builder调用工具将WINCE内核所有文件以bin格式合并成一个文件,默认文件名为nk.bin。BootLoader又以同样的格式将nk.bin分解成多个文件放到RAM中。可以在命令行中键入“viewbin nk.bin”来查看bin文件中具体包括了哪些内容。键入Cvrtbin命令转换.bin格式文件为
2010-10-12 13:05:00 692
转载 WinCE上BINFS实现详解
作者: wwfiney@ARMCE转载请注明原帖地址及出自ARMCE,此为ARMCE定制原创稿网上不少介绍三星24x0系列的BINFS启动方式实现,有些内容上描述的不是非常全面下面就WinCE6上的BINFS实现,从基本原理到修改BSP,再到如何烧录启动做一个较全面的讲解一 BINFS到底是什么?其实BINFS就是MS给CE做的一种存放系统镜像的一个文件系统。一说文件系统,大家可能比较头大。那么这么说,其实就是一个结构体(说是文件系统确实比较勉强,结构体可能更合适),里面有记录各模块的起始地址,大小等的信息
2010-10-09 21:12:00 429
原创 2440init.s文件分析
<br />;=========================================<br />; NAME: 2440INIT.S<br />; DESC: C start up codes<br />; Configure memory, ISR ,stacks<br />; Initialize C-variables<br />; 完全注释<br />; HISTORY:<br />; 2002.02.25:kwtark: ver 0.0<br />; 2002.03.20:purnna
2010-10-08 21:54:00 752 1
转载 CE5.0 - eboot汇编Startup.s中MMU设置流程详细分析
CE5.0 - eboot汇编Startup.s中MMU设置流程详细分析以下为SMDK开发板startup.s部分启动代码.;-------------------------------------------------------------------------------MemoryMap EQU 0x2a4BANK_SIZE EQU 0x00100000 ; 1MB per bank in MemoryMap arrayBANK_SHIFT EQU 20; Define RAM space f
2010-10-08 21:51:00 573
转载 WINCE EBOOT的配置方法
-------------------------------------------------------------------------------------------------------------------------------------- EBOOT是WINCE调试的好工具,在EBOOT上我也走了不少弯路,现将成功的经验与大家分享,希望能给有需要的人一点帮助!---Sunwill.C -----------------------------------------------
2010-10-08 21:45:00 1773
转载 wince 中虛擬地址與物理地址的換算(非程序)
MIPS 和 SHX 系列的cpu 物理地址映射由cpu 完成。但x86和arm 系列是通過OEMAddressTable 詳細定義的。以samsung舉例說明換算方法 下面是eboot配置文件中 boot.bib 的配置項,想從中知道eboot sdram 的啟動地址 MEMORY; Name Start Size Type; ------- -------- -------- ---- ARGS 8c020800
2010-10-08 13:18:00 594
Cadence 元件封装
2012-11-23
RNIDS PC端驱动RNDIS USB kit
2010-12-28
VDD.VEE.VSS什么意思.
2009-04-20
模电基础最基础的教程了
2009-04-20
Proteus 仿真库简介
2009-04-20
运算放大器的原理简介
2009-04-20
电容、电感滤波电路作用原理.
2009-04-20
0欧的电阻在电路中的用法
2009-04-20
场效应管的原理及分类
2009-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人