资源简介
1、支持目前的Hex86、Hex386等数据格式到bin文件的转换。
2、支持可选的CRC校验或BCC校验算法。
3、支持无效字符的填充(用以实现在嵌入式系统中的冗余技术,从而保证代码的健壮性)。
4、支持可选的BIN代码空间大小定制。
5、具有对输入hex文件格式的类型自动判断功能并自动检测转换过程中的错误。
6、具有帮助提示。
7、编译工具:Visual C++6.0
2、支持可选的CRC校验或BCC校验算法。
3、支持无效字符的填充(用以实现在嵌入式系统中的冗余技术,从而保证代码的健壮性)。
4、支持可选的BIN代码空间大小定制。
5、具有对输入hex文件格式的类型自动判断功能并自动检测转换过程中的错误。
6、具有帮助提示。
7、编译工具:Visual C++6.0
代码片段和文件信息
/************************************************************************************
* Copyright(c)2008-2018 GENVICT Co.ltd.
* All rights reserved
*
*文件名称:HexToBin.c
*制作日期:2008-05-26 16:56:00
*作 者:郭云峰
*文件类型:Hex转bin文件的具体实现函数
*功能描述:实现Hex格式的文件转为bin格式的文件。
**************************************************************************************/
#define HEXTOBIN_GLOBAL
#include
#include
#include
#include “HexToBin.h“
/************************************************************************************
*函数名称:VerifyData()
*入口参数:数据指针、数据个数、上次校验完后的数据
*出口参数:操作结果
*功能描述:将传入的指定数量的数据进行异或运算并返回最终结果.
*抛出异常:无
*特殊情况:CRC校验方式采用CCITT(欧洲标准:X^16+X^12+X^5+1)
*************************************************************************************/
INT16U VerifyData(INT32U numINT8U *p_dataINT8U typeINT16U last)
{
INT8U l_index;
UNWORD l_sum;
l_sum.word =last;
if( CRC == type )
{
while(num--)
{
for(l_index=0x80;l_index>0;l_index>>=1)
{
if(l_sum.word & 0x8000)
{
l_sum.word <<=1;
l_sum.word ^=0x1021;
}
else
{
l_sum.word <<=1;
}
if((*p_data) & l_index)
{
l_sum.word ^=0x1021;
}
}
p_data++;
}
}
else if( BCC == type )
{
while( num > 0 )
{
l_sum.byte.lb^=p_data[--num];
}
l_sum.byte.hb=~l_sum.byte.lb;
}
return l_sum.word;
}
/*************************************************************************************
*函数名称:AsciiToHex()
*入口参数:ASCII码1、ASCII码2、Hex数据指针
*出口参数:操作结果
*功能描述:将传入的2位ASCII码合并为一个Hex格式的数据
*抛出异常:无
*
**************************************************************************************/
INT8U AsciiToHex(INT8S ascii1INT8S ascii2INT8U *p_data)
{
INT8U status =OP_OK;
INT8S ascii;
BYTEUNION temp;
temp.byte =0;
//将传入的ASCII码全部转换为大写
ascii =(INT8S)toupper(ascii1);
//判断传入的ascii码是否符合要求
if( ascii >= ‘0‘ && ascii <= ‘9‘)
{
temp.bf.h4 =ascii-0x30;
}
else if( ascii >=‘A‘ && ascii <=‘F‘)
{
temp.bf.h4 =ascii-0x37;
}
else //其它字符认为是无效字符
{
status =OP_FAIL;
}
//进行低4位转换
if( OP_OK == status )
{
ascii =(INT8S)toupper(ascii2);
//判断传入的ascii码是否符合要求
if( ascii >= ‘0‘ && ascii <= ‘9‘)
{
temp.bf.l4 =ascii-0x30;
}
else if( ascii >=‘A‘ && ascii <=‘F‘)
{
temp.bf.l4 =ascii-0x37;
}
else //其它字符认为是无效字符
{
status =OP_FAIL;
}
}
//获取转换后的Hex数据
*p_data =temp.byte;
//返回执行结果
return status;
}
/****************************************************************************************
*函数名称:DispHelp()
*入口参数:无
*出口参数:无
*功能描述:显示帮助信息。
*抛出异常:无
*
*****************************************************************************************/
void DispHelp(void)
{
printf(“功能描述:1.本软件可实现将Hex格式的文件转换为bin文件并自动根据需要加入校验和.\n“);
printf(“ 2.支持的校验方式:BCC(异或)/CRC.\n“);
printf(“ 3.选择了增加校验和时必须指定校验和存放的地址.\n“);
printf(“ 4.对未用到的程序空间必须指定填充数据(以十六进制方式).
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 18301 2008-06-10 17:27 HexToBin\V101\HexToBin.cpp
文件 3524 2008-05-27 11:28 HexToBin\V101\HexToBin.dsp
文件 541 2008-05-27 09:55 HexToBin\V101\HexToBin.dsw
文件 1379 2008-06-02 16:24 HexToBin\V101\HexToBin.H
文件 50176 2008-11-03 15:10 HexToBin\V101\HexToBin.ncb
文件 53760 2008-11-03 15:10 HexToBin\V101\HexToBin.opt
文件 1276 2008-06-10 17:27 HexToBin\V101\HexToBin.plg
文件 58368 2008-06-10 17:27 HexToBin\V101\Release\HexToBin.bsc
文件 40960 2008-06-10 17:27 HexToBin\V101\Release\HexToBin.exe
文件 19580 2008-06-10 17:27 HexToBin\V101\Release\HexToBin.obj
文件 0 2008-06-10 17:27 HexToBin\V101\Release\HexToBin.sbr
文件 33792 2008-06-10 17:27 HexToBin\V101\Release\vc60.idb
目录 0 2008-06-27 09:15 HexToBin\V101\Release
目录 0 2008-11-03 15:10 HexToBin\V101
目录 0 2008-06-10 17:27 HexToBin
----------- --------- ---------- ----- ----
281657 15
- 上一篇:哈工大的高等电磁学电磁场课件
- 下一篇:IPset IP设置工具
相关资源
- 51多机通信(内附Proteus及.hex文件)
- 十六进制与字符串互转
- Winhex 15 官方中文语言包
- PMW-HEX2.4破解版
- Synthesis of Cyclohexanone-formaldehyde Resi
- 好用winhex16进制编辑器
- winhex exfat DBR模板
- WinHex 17.2 官方简体中文版 + 注册机
- winhex破解版,永久授权,亲测可以使
- AES工具 V1.0.2 ,AES计算工具 hex的aes计
-
Hex十六进制/ba
se64编码转换器 - 很好用的 查看BIN 格式的文件 WINHEX
- The magnetic and dielectric properties of mult
- 光立方3D8 2803+573.源程序 HEX C 仿真电路
- 组态工程6.55破解工程密码软件TouchE
- 破解版winhexCn
- DS18B20-液晶1602显示温度和控制(代码
- WinHex.19.9_Specialist License.7z
- WinHex18.5_x86_x64 完美汉化破解版
- BMP2MifCoeHex
- 16进制编写器Hex Workshop.rar
- MQTT 客户端调试工具V1.1
- winhex工具和使用教程
- hex-editor-neo.exe
- winhex15-16版本大收藏特别版
- TouchExplorer.exe
- TouchExplorer6.60SP2.2.1.rar
- winhex17.5 官方版本+(key) 注册机
- 初学者必看!ASM如何转换为HEX文件.
-
HexString和ba
se64String的相互转换
评论
共有 条评论