HexView 刷写文件脚本处理工具-基本功能介绍(五)-导出数组

菜单

在这里插入图片描述

导出(Export)

在这里插入图片描述

导出为C数组(Export as C-Array)

此选项将数据写入C样式的文件格式:
在这里插入图片描述

数组大小可以是8位、16位或32位。如果选择16位或32位,输出可以选择Motorola(大端序)或Intel(小端序)样式。

数组可以导出为纯C数据。但也可以进行加密。加密将是一个使用指定参数的XOR操作。解密参数也以C样式给出。

数据被写入C数组中。数组名称将使用对话框中给定的前缀。如果块包含多个块,则数据将被写入多个C数组。每个块将包含块编号作为后缀。

示例C文件:

/**************************************************************** *
 * Filename: D:\Usr\Armin\VC\HexView\_page4a.C
 * Project: C-Array of Flash-Driver
 * File created: Sun Jan 15 20:59:35 2006
 ****************************************************************/
#include <fbl_inc.h>
#include <_page4a.h>
#if (FLASHDRV_GEN_RAND!=1739)
# error “Generated header and C-File inconsistent!!
#endif
V_MEMROM0 MEMORY_ROM unsigned char flashDrvBlk0[FLASHDRV_BLOCK0_LENGTH] = {
    // 数组数据...
};

示例头文件:

/**************************************************************** *
 * Filename: D:\Usr\Armin\VC\HexView\_page4a.h
 * Project: Exported definition of C-Array Flash-Driver
 * File created: Sun Jan 15 20:59:35 2006
 ****************************************************************/
#define FLASHDRV_GEN_RAND 1739
#define FLASHDRV_DECRYPTDATA(a) (unsigned char)a
#define FLASHDRV_BLOCK0_ADDRESS 0x9000
#define FLASHDRV_BLOCK0_LENGTH 0x100
#define FLASHDRV_BLOCK0_CHECKSUM 0x7F80u
extern V_MEMROM0 MEMORY_ROM unsigned char flashDrvBlk0[FLASHDRV_BLOCK0_LENGTH];

[Prefix-name]_DECRYPTDATA()宏可以用来提取和加密数据。它将根据加密选项和值生成。

输出也可以通过命令行生成。

C数组的声明专门用于bootloader,在某些情况下,可能需要在没有Vector的命名约定使用的编译器抽象的纯C环境中使用这些结构。在这种情况下,使用“Use strict Ansi-C declaration”。

另一个选项是使用所谓的memmap语句。Hexview将生成语句以声明一个定义,然后包含文件memmap.h:

示例:

Memmap declarations generated by Hexview:
#define FLASHDRV_START_SEC_CONST
#include “memmap.h”

文件memmap.h可能如下所示:

#ifdef FLASHDRV_START_SEC_CONST
#undef FLASHDRV_START_SEC_CONST
#pragma section .flashdrv
#endif

总结

这部分详细介绍了HexView程序中导出数据为C数组格式的选项。文档解释了如何设置数组大小和端序,如何导出纯C数据或加密数据,以及如何生成C数组的声明和定义。此外,还介绍了如何使用宏来提取和加密数据,以及如何通过命令行生成输出。这些功能为用户提供了灵活的数据导出选项,以适应不同的编程环境和需求。

这里比较常用的是把flashdrv导出作为hex文件,在升级或者OTA的时候作为刷写流程的一部分。
另外一些特殊的程序也可以这样进行处理,比如某些加密算法等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

美好生活丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值