打印

怎样把Cypress提供的USB驱动与自己的上位机程序打包?

[复制链接]
3949|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cp3_kuo|  楼主 | 2012-9-3 21:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎样把Cypress提供的USB驱动(Cyusb.sys与Cyusb.inf)与自己的上位机程序打包,生成PC上的安装文件(xx setup.exe)?谢谢
沙发
USB-Emily| | 2012-10-18 17:19 | 只看该作者
将上位机程序与驱动链接是通过:
先要在CyUSB.inf文件的[Strings]部分加上你的GUID的信息。
在你设计PC应用软件的时候,在应用程序(.cpp)文件使用API去加进去你的代码。如:
GUID guid = {0xBE18AA60, 0x7F6A, 0x11D4, 0x97, 0xDD, 0x00, 0x01, 0x02, 0x29, 0xB9, 0x59};
CCyUSBDevice *USBDevice = new CCyUSBDevice(NULL, guid);

就可以将上位机与驱动链接,但是如何生成.EXE文件,这个有点复杂。

程序需要依靠源文件来编译,编译之后生成中间代码(.obj)文件,之后依靠链接器将所有的.obj文件以及依靠的.lib文件链接起来生成一个.exe的文件。
这是最简单的理解,现在稍微展开点说说.exe文件。
在Windows中,所有的可执行文件(.exe, .dll, .ocx, .sys等等)都是按照一定文件内容格式来组织——PE格式。PE格式记录了一个程序文件加载运行过程中的信息,例如文件类型,是一个dll还是一个exe;运行的平台,32位系统还是64位系统等等。当一个程序运行的时候,程序的加载器会根据PE格式的内容将程序文件中的数据段,代码段等等映射到内存中,并正确的导入程序要使用的系统API,同时要将文件中的一些偏移地址修正为映射入内存之后的地址,之后调用程序代码的入口点来执行。就是这样一个过程涉及到了系统的内存管理,进程管理,线程调度等等一系列问题。
而这些PE格式的内容就是链接器在链接程序的时候填入的,换句话说就是链接器生成了一个PE文件用于执行。
每个操作系统都会有自己所支持的可执行文件格式。PE格式是Windows平**有的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

22

帖子

0

粉丝