固件开发环境验证试验,检验重制固件能否正常工作

上集介绍:

昨天已经把固件开发的环境Keil基本搞好了,而且利用CCD1随机附带的固件程序C文件加上Suite 3.4.7提供的INC和LIB,并对其中不契合的地方稍加修改,最后编译成功,获得了HEX文件,比CCD1附带的HEX文件小了一点点。(不契合原因:老的fx2regs.h文件中没有对端口ABCD(E不能按位访问)的每一位进行定义,所以CCD1的txmaster.c文件开头部分以"sbit PD0 = IOD ^ 0;"的形式对所使用的端口的位进行了定义。当更换为新版本Suite提供的INC时,新的fx2regs.h文件已经贴心地将端口位按照" sbit PD0 = 0xB0 + 0;"的形式进行了定义,此时txmaster.c中对端口位的定义导致重复定义错误。注释掉即可顺利编译。)

?
?

实验目的:为了进一步确定开发环境OK,也想借机测试一下我新编译出来的固件(后文称为重制固件)是否能像原来固件一样工作(在EZUSB.sys驱动下)。

?
?

实验设计:

1、将CCD2电路板组装起来(FX2LP,不加装CCD),在CPLD中烧入一个可以正常工作的POF文件(应首先在具备原版USB固件的CCD1上通过测试);

2、修改CCD1(FX2)附带驱动程序的INF文件,加入一个新的,也就是我在重制固件描述符中添加的VID&PID。

3、由于CCD1附带驱动EZUSB.sys是针对"CHICAGO"平台的,也就是XP之前的平台,但是XP也支持这个驱动,而且CCD1附带的上位机软件也是很对这个驱动开发的,我需要在XP平台上(实验室台式机)进行这个实验。

4、由于CCD2板上没有焊接EEPROM,我将首先利用通用驱动EZUSB.sys识别一个default VID&PID--04B4&8613,然后利用开发工具烧写重制固件到RAM,然后重枚举之后会将设备以新的名字(INF文件添加:CCD2 Regenerated Firmware Test)和驱动程序重新绑定。

5、运行上位机程序,查看是否能够正常读取图像数据(实际没有图像,只是电路噪音)。

?
?

实验预期:

如果,上位机程序可以读出图像,说明新的固件开发环境(Suite3.4.7提供的最新版的INC和LIB)可以和CCD1附带的老版fw.c、txmaster.c文件相契合。

?
?

实验过程:

1、在CCD1上烧入CCD1附带total.pof,可以采集到图像,设备显示"IOBOX X-Ray Device"。

2、在CCD2上烧入CCD1附带total.pof,烧入成功,LED频率闪烁。

3、将CCD1插入计算机,更新驱动程序,选择添加了0547&1004信息的INF文件,该文件被XP重命名为oem20.inf。

4、将CCD2插入到计算机,发现自动识别,并捆绑到CyUSB.sys,因为之前的试验中安装了CyUSB.sys,对应的INF文件被XP命名为oem19.inf,这样方便了我对CCD2烧入固件。

5、在XP中安装Suite3.4.7,利用Control Center烧入重制固件。

6、重制固件烧入CCD2成功,重枚举为"CCD2 Regenerated Firmware Test",与EZUSB.sys绑定,运行上位机程序,成功获得图像,成功进行参数设置操作。

?
?

实验结果:

成功

?
?

实验结论:

新的Keil环境编译的重制固件程序能够满足CCD2的工作。固件开发的大概流程完成。表示CCD1的USB固件完全可以应用到CCD2的设计上,只需将CCD1的USB固件吃透学通,CCD2的USB固件设计不是问题。表明上位机与CCD2通信的难点,转移到上位机程序和驱动程序上。由于新版本的开发包附带驱动CyUSB.sys对上位机程序的开发环境有新的要求(例程支持VS2008\VS2010,且附带了CyAPI.lib和CyUSB.dll),而CCD1附带的上位机程序是基于EZUSB.sys驱动,开发平台是VC++6.0 。

?
?

下一步:

学习如何将固件程序烧入到EEPROM中,这样可以简化后续开发步骤(原来需要先识别为default,然后烧入固件到RAM,然后重枚举,然后被识别为CCDx)。

?
?

时间: 2024-10-15 17:24:52

固件开发环境验证试验,检验重制固件能否正常工作的相关文章

UEFI 原理与编程 1 : UEFI开发环境EDK2搭建

概述 不同的厂商对UEFI有不同的实现, 一种比较常用的开源实现是EDK2. EDK2是一个遵循UEFI标准和PI标准的跨平台固件开发环境. EDK2支持多种操作系统, 也支持跨平台编译. Windows下开发环境配置 之前在物理机win10上进行安装, 折腾了一天也没配好环境, 包括wsl全都试过了, 全部以失败告终. 这一次直接开了一个Win7的虚拟机来安装.. 安装开发工具 2. 安装VS 2015 (VS2017亦可, 但感觉VS2015文件小一点 / VS2019在2018的EDK2中

The General Procedure Of Setting Up EDKII Development Environment:搭建EDKII开发环境的通用流程[2.1]

The General Procedure Of Setting Up EDKII Development Environment:搭建EDKII开发环境的通用流程[2.1] 2015-07   北京海淀区  张俊浩 2. Setting Up EDKII Development Environment(EDKII开发环境的搭建) ->2.1 The General Procedure Of Setting Up EDKII Development Environment(搭建EDKII开发环境

Ubuntu下的PHP开发环境架设

Ubuntu下的PHP开发环境架设 今天重新装了ubuntu那么就吧过程记录下. 打开终端,也就是命令提示符. 我们先来最小化组建安装,按照自己的需求一步一步装其他扩展.命令提示符输入如下命令: 1 sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server 上面的命令是最小化组建安装amp也就是apache2 ,php5 和 mysql 在加上一个php的mysql扩展 上面命令输入完成后提示输入密码,成功后

使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境

做了三年多的JavaEE开发了,在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框架来开发项目,而这些框架一般不是单独使用的,经常是Struts2+Spring3+Hibernate.SpringMVC+Spring+Hibernate.SpringMVC+Spring+Mybatis这几种组合中的一种,也就是多个框架配合起来使用.今天来总结一下如何使用Maven搭建Struts

PHP开发环境&MySQL下载安装及配置流程

PHP开发环境&MySQL下载安装及配置流程 因工作须要,从0開始学PHP,前几天看完视频教程后開始搞开发环境,到今天才好.这里把安装配置流程梳理一下分享出来. 一.概述 要搭建一个开发环境无非就是这么几步,下载->安装->配置.PHP的环境须要三样东西.php.mysql.apache(按序例如以下图),依照我的理解.它们各自是语言解释器.数据库.server. 二.下载 PHP100.com是个奇妙的站点,我从这上面找到了前两样东西的下载地址,apache的链似乎坏了.官网上也找不

PHP开发环境&MySQL下载安装及配置流程

PHP开发环境&MySQL下载安装及配置流程 因工作需要,从0开始学PHP,前几天看完视频教程后开始搞开发环境,到今天才好.这里把安装配置流程梳理一下分享出来. 一.概述 要搭建一个开发环境无非就是这么几步,下载->安装->配置.PHP的环境需要三样东西,php.mysql.apache(按序如下图),按照我的理解,它们分别是语言解释器.数据库.服务器. 二.下载 PHP100.com是个神奇的网站,我从这上面找到了前两样东西的下载地址,apache的链似乎坏了,官网上也找不到下载位置

最火爆10大集成开发环境和代码编辑器!总有一款是最适合你的!

什么是集成开发环境和代码编辑器 进群:125240963   即可获取数十套PDF或者零基础入门教程一套哦! 保存和重载代码文件 如果一款集成开发环境或者编辑器不允许你保存现有工作,并在之后重新打开时不能保持你离开时的相同状态,那么它就不是什么集成开发环境. 在环境内运行代码 类似的是,如果你必须退出编辑器来运行Python代码,那么它也就是一个普通的文本编辑器. 支持调试 在程序运行时支持逐步运行代码是所有集成开发环境和大多数优秀代码编辑器必备的核心功能. 语法高亮 支持对代码中的关键词.变量

开发(二) ardunio批量固件上传地址

https://blog.csdn.net/Naisu_kun/article/details/84958561 批量烧录固件到模块中上面讲了如何编写上传程序,接下来讲讲如何量产.相比<Arduino for esp8266>的量产烧录,这次的ESP32相对来说麻烦些.仔细观察上面程序的上传过程(具体的字节数可能和上文程序有出入): 整个过程向ESP32模块中烧录了四块内容,这四块内容是什么? 第一块是boot_app0.bin, 你可以在用户目录\AppData\Local\Arduino1

win8.1 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建

win8.1 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建 重编译的好处:可以调试的时候看OpenCV的源代码. 重编译要得到的东西:Debug版本和Release版本的dll,lib,头文件.(dll添加到环境变量里,运行时用,自己编译的dll调试时可以跟踪到Opencv的源码内:lib和头文件配置到编译器里) PS:如果只是使用Opencv而不需要跟踪源码,则使用Opencv自带的库文件即可.跳到5配置Opencv开发环境,对应的文件都在..\opencv\b