91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 973KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: 其他
  • 標簽: bin,hex??

資源簡介

單片機開發過程中,需要將不同的bin文件(boot、app,data)合并,合并之后的文件需要轉成16進制文件時使用此工具。 可以直接使用,也可以對源文件編輯,編譯,按照自定義的要求實現特定的功能。

資源截圖

代碼片段和文件信息


#include?
#include?
#include?


#ifndef?BIN2HEX_H
#define?BIN2HEX_H
typedef?unsigned?char?uint8_t;
typedef?unsigned?short?uint16_t;
typedef?unsigned?long?uint32_t;
/***********************************
*********************************************
就是每次讀寫bin文件N個字節,然后再轉化為hex格式流,hex格式流長度計算方式
:?+?長度?+?地址?+?類型?+?N個數據(N?>=?0)?+?校驗
1?+?2????+?4????+?2????+?N?*?2???????????+?2
********************************************************************************/
#define?NUMBER_OF_ONE_LINE?????0x10//0x20
#define?MAX_BUFFER_OF_ONE_LINE??(NUMBER_OF_ONE_LINE?*2?+?11)
typedef?struct?{
uint8_t?len;
uint8_t?addr[2];
uint8_t?type;
uint8_t?*data;
}?HexFormat;

typedef?enum?{
RES_OK?=?0????????????????????//操作完成
RES_BIN_FILE_NOT_EXIST????????//相當于bin文件不存在,包括輸入的路徑可能存在不正確
RES_HEX_FILE_PATH_ERROR????????//目標文件路徑可能輸入有誤?????????
RES_HEX_ADDRRESS_ERROR?????????//目標文件地址可能輸入有誤?????????
}?RESULT_STATUS;

RESULT_STATUS?BinFile2HexFile(char*src?char?*dest);
#endif
/********************************************************************************
input:
dest:?為轉換后的結果
p->addr[0]:?高地址
p->addr[1]:?低地址
p->type:?記錄類型
p->data:?為bin格式流有效數據指針
p->len:?為bin格式流有效數據長度
output:
返回有效數據的長度
********************************************************************************/
uint16_t?BinFormatEncode(uint8_t?*dest?HexFormat?*p)
{
uint16_t?offset?=?0;
uint8_t?check?=?0?num?=?0;????//:(1)?+?長度(2)?+?地址(4)?+?類型(2)
sprintf(&dest[offset]?“:%02X%02X%02X%02X“?p->len?p->addr[0]?p->addr[1]?p->type);
offset?+=?9;???????????????????//hex格式流數據指針偏移2
check?=?p->len?+?p->addr[0]?+?p->addr[1]?+?p->type;?//計算校驗和
while?(num?len)??????????//當數據長度不為0,繼續在之前的hex格式流添加數據
{
sprintf(&dest[offset]?“%02X“?p->data[num]);
check?+=?p->data[num];??????//計算校驗和
offset?+=?2;???????????????//hex格式數據流數據指針偏移2
num++;?????????????????????//下一個字符
}
check?=?~check?+?1;?????????????//反碼+1
sprintf(&dest[offset]?“%02X“?check);
offset?+=?2;
return?offset;??????????????????//返回hex格式數據流的長度
}


RESULT_STATUS?BinFile2HexFile(char*src?char?*dest?char?*addr)
{
FILE?*src_file?*dest_file;
uint16_t?tmp;
HexFormat?gHexFor;
uint32_t?low_addr?=?0x8000?hign_addr?=?0;
uint8_t?buffer_bin[NUMBER_OF_ONE_LINE*10]?buffer_hex[MAX_BUFFER_OF_ONE_LINE*10];
uint32_t?src_file_length;
uint16_t?src_file_quotient?cur_file_page?=?0;
uint8_t?src_file_remainder;

//low_addr?=?addr[0]?-?0x30;
//low_addr?*=?256;
//low_addr?+=?(addr[1]?-?0x30);
//low_addr?*=?256;
////low_addr?+=?(addr[2]?-?0x30);
////low_addr?*=?256;
////low_addr?+=?(addr[3]?-?0x30);
//printf(“%d?help\r\n“low_addr);

//if?(low_addr?>?0x10000)
//{
// return?RES_HEX_ADDRRESS_ERROR;
//}

src_file?=?fopen(src?“rb“);????????//源文件為bin文件以二進制的形式打開
if?(!src_file)??????????????????????//這里也是相當于用來檢查用戶的輸入是否準備
{
return?RES_BIN_FILE_NOT_EXIST;
}
dest_file?=?fopen(dest?“w“);???????//目的文件為hex文件,以文本的形式打開
if?(!dest_file)
{

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-22?14:11??bin2hex\
?????目錄???????????0??2018-04-22?11:53??bin2hex\.vs\
?????目錄???????????0??2018-04-22?11:53??bin2hex\.vs\ConsoleApplication1\
?????目錄???????????0??2018-04-22?11:53??bin2hex\.vs\ConsoleApplication1\v14\
?????文件???????43008??2018-04-22?14:11??bin2hex\.vs\ConsoleApplication1\v14\.suo
?????目錄???????????0??2018-04-22?11:53??bin2hex\ConsoleApplication1\
?????文件????????1339??2018-04-20?19:20??bin2hex\ConsoleApplication1.sln
?????文件?????1847296??2018-04-22?14:11??bin2hex\ConsoleApplication1.VC.db
?????文件????????7716??2018-04-22?11:56??bin2hex\ConsoleApplication1\ConsoleApplication1.vcxproj
?????文件?????????946??2018-04-22?11:56??bin2hex\ConsoleApplication1\ConsoleApplication1.vcxproj.filters
?????文件???????59149??2018-04-20?23:26??bin2hex\ConsoleApplication1\DCT100_1.hex
?????文件???????24576??2018-04-20?22:57??bin2hex\ConsoleApplication1\DCT100_App.bin
?????目錄???????????0??2018-04-22?11:56??bin2hex\ConsoleApplication1\Debug\
?????文件???????25646??2018-04-22?09:44??bin2hex\ConsoleApplication1\Debug\aaaaa.obj
?????目錄???????????0??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\ConsoleA.31457AA2.tlog\
?????文件????????2290??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\ConsoleA.31457AA2.tlog\CL.command.1.tlog
?????文件????????7952??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\ConsoleA.31457AA2.tlog\CL.read.1.tlog
?????文件?????????994??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\ConsoleA.31457AA2.tlog\CL.write.1.tlog
?????文件?????????221??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\ConsoleA.31457AA2.tlog\ConsoleApplication1.lastbuildstate
?????文件????????2886??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\ConsoleA.31457AA2.tlog\link.command.1.tlog
?????文件????????3250??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\ConsoleA.31457AA2.tlog\link.read.1.tlog
?????文件?????????702??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\ConsoleA.31457AA2.tlog\link.write.1.tlog
?????文件????????2054??2018-04-20?23:37??bin2hex\ConsoleApplication1\Debug\ConsoleApplication1.Build.CppClean.log
?????文件?????????554??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\ConsoleApplication1.log
?????文件???????18504??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\main.obj
?????文件???????68608??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\vc140.idb
?????文件???????77824??2018-04-22?12:18??bin2hex\ConsoleApplication1\Debug\vc140.pdb
?????目錄???????????0??2018-04-22?12:20??bin2hex\Debug\
?????目錄???????????0??2018-04-22?12:20??bin2hex\Debug\batfile\
?????文件???????47156??2018-04-22?12:20??bin2hex\Debug\batfile.zip
?????文件???????39424??2018-04-22?12:18??bin2hex\Debug\batfile\bin2hex.exe
............此處省略10個文件信息

評論

共有 條評論

相關資源