DIY编程器网
标题:
uuprog开发教程:芯片支持库加载1
[打印本页]
作者:
liyf
时间:
2014-12-10 08:32
标题:
uuprog开发教程:芯片支持库加载1
芯片支持库可以说是编程器软件的重点,记录芯片的支持量,芯片的相关信息,以及芯片的操作数据和时序等,这里的时序和固件中的时序是有区别的,这里是下位机固件中硬件实现的软件调用。
整个软件的操作核心都是基于这个库来实现的,这就是为什么编程器厂家不会介绍这部分的原因,而且这部分的管理、结构等都不会有任何介绍,也不会有给用户添加的任何接口。开放了接口就等于给用户无限扩展支持的通路,这是厂家所不愿意发生的。我们将会花几节的教程将这部分进行讲解,一窥其神秘。
芯片支持库可以说是一个文件型数据库,有采用现有数据库结构的,这种比较容易理解,只要按数据库操作语句操作就行,也是最简单的;另一种就是自定义型的数据库,这个比较难理解,按自己的需求、结构等实现自己需要的数据库,可以方便管理,有效,高效的实现特定的需求,同时还可以保护好数据的安全。后一种是大多数厂家的实现方法,我们的数据库也是采用这种方法,但是不同的是,我们同时提供了用户管理芯片库的接口和操作界面,可以方便的实现用户自己添加芯片支持。
这一界主要还是先识别用到的结构,乏味的开始,呵呵。
QQ图片20141210081651.png
(40.9 KB, 下载次数: 85)
下载附件
保存到相册
2014-12-10 08:17 上传
看图中结构名(结构定义都是以tag开头的,习惯)。这里我们需要用到tagDeviceListFileHeadStruct、tagDeviceListFileStruct、tagTypeStruct、tagTypeStruct1等,因为支持库的信息量非常大,可以用个小型的数据库来定义了,我们这里定义了自己的数据库格式,而且还用到了结构嵌套,不熟这块的赶紧修补下,不然你看不下去的。
1、支持库文件头结构
这个可比工程文件结构复杂好几倍了。基本都是以功能名命名的,这个就不多说了吧。
typedef struct tagDeviceListFileHeadStruct
{
char Appname[20];
char DeviceListFileVer[8];
int DeviceCount;
int TypeListCount;
int OperationListCount;
int SizeListCount;
int PinListCount;
int DataWidthListCount;
int PackageListCount;
int VCCListCount;
int VPPListCount;
int AdapterListCount;
}DeviceListFileHeadStruct,*LPDeviceListFileHeadStruct;
复制代码
2、芯片信息结构
这个就是一个芯片型号的数据结构了,整个支持库基本就是这一大块。
//Device File Struct
typedef struct tagDeviceListFileStruct
{
char DeviceName[20];
DWORD DeviceType;
DWORD DeviceDataWidth;
DWORD DeviceID;
DWORD DeviceManuID;
char DeviceManuICO[20];
char DeviceManuName[20];
char DeviceICICO[20];
DWORD OperationID;
DWORD DeviceSize;
DWORD DevicePackage;
DWORD DevicePinCount;
float DeviceVCC;
float DeviceVPP;
DWORD DeviceAdapter;
char Datasheet[20];
char DeviceNote[100];
DWORD DeviceCheckCRC;
}DeviceListFileStruct,*LPDeviceListFileStruct;
复制代码
3、电压值数据结构
这里是芯片编程电压及工作电压用到的,也就是浮点型的
typedef struct tagTypeStruct1
{
char TypeName[20];
float TypeVal;
}TypeStruct1;
复制代码
4、芯片的封装结构
这个主要用到的地方就是芯片的封装类型,当然也有其他用到的,主要就是实现文本到整型的转换联系
typedef struct tagTypeStruct
{
char TypeName[20];
DWORD TypeVal;
}TypeStruct;
复制代码
通过数据结构就能获取到支持库的信息及数据组织结构了,要是不明白请先看看文件操作,数据结构等相关内容。这部分必须要非常熟悉,后面的支持库的加载,添加、删除、修改等都会用到,而且不能搞错,错了基本就是烧毁芯片的事了。编程器的操作依据都是基于该库的芯片数据来实施各项配置命令的,操作过程中用户不能干预,也就是说是底层的。
这块要分几节才能讲解清楚,欢迎继续关注下节精彩内容。
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2