跳到主要内容

pico-binary-info

二进制信息用于将机器可读信息嵌入到 FLASH 中的二进制文件中。

详细描述

示例用途包括:

  • 程序标识/信息

  • 引脚布局

  • 已包含的功能

  • 标识用作块设备/存储的 flash 区域

  • #define bi_decl(_decl) __bi_mark_enclosure _decl; __bi_decl(__bi_ptr_lineno_var_name, &__bi_lineno_var_name.core, ".binary_info.keep.", __used);
     * #define bi_decl_if_func_used(_decl) ({__bi_mark_enclosure _decl; __bi_decl(__bi_ptr_lineno_var_name, &__bi_lineno_var_name.core, ".binary_info.", ); **(const volatile uint8_t *)&__bi_ptr_lineno_var_name;});

类型定义

  • typedef struct _binary_info_core binary_info_core_t: 所有二进制信息条目共享的公共头字段。
  • typedef struct _binary_info_raw_data binary_info_raw_data_t: 携带原始、未解释字节数据的二进制信息条目。
  • typedef struct _binary_info_sized_data binary_info_sized_data_t: 携带长度前缀字节缓冲区的二进制信息条目。
  • typedef struct _binary_info_list_zero_terminated binary_info_list_zero_terminated_t: 保存以 null 结尾的二进制信息指针列表的二进制信息条目。
  • typedef struct _binary_info_id_and_int binary_info_id_and_int_t: 将 32 位整数值与 ID 关联的二进制信息条目。
  • typedef struct _binary_info_id_and_string binary_info_id_and_string_t: 将字符串值与 ID 关联的二进制信息条目。
  • typedef struct _binary_info_ptr_int32_with_name binary_info_ptr_int32_with_name_t: 持有指向命名的 32 位整型变量指针的二进制信息条目。
  • typedef struct _binary_info_ptr_string_with_name binary_info_ptr_string_with_name_t: 持有指向命名的字符串变量指针的二进制信息条目。
  • typedef struct _binary_info_block_device binary_info_block_device_t: 描述二进制文件中块设备的二进制信息条目。
  • typedef struct _binary_info_pins_with_func binary_info_pins_with_func_t: 描述一个或多个 GPIO 引脚及其分配功能的二进制信息条目,支持引脚号 <32,最多 5 个引脚。
  • typedef struct _binary_info_pins64_with_func binary_info_pins64_with_func_t: 描述一个或多个 GPIO 引脚及其分配功能的二进制信息条目,支持引脚号 <256,最多 7 个引脚。
  • typedef struct _binary_info_pins_with_name binary_info_pins_with_name_t: 将人类可读的标签与一组 GPIO 引脚关联的二进制信息条目。
  • typedef struct _binary_info_pins64_with_name binary_info_pins64_with_name_t: 将人类可读的标签与一组 GPIO 引脚(最多 64 个)关联的二进制信息条目。
  • typedef struct _binary_info_named_group binary_info_named_group_t: 定义一组相关二进制信息条目的命名组的二进制信息条目。

宏定义文档

bi_decl

#define bi_decl(_decl) __bi_mark_enclosure _decl; __bi_decl(__bi_ptr_lineno_var_name, &__bi_lineno_var_name.core, ".binary_info.keep.", __used);

声明一些二进制信息,只要包含该源文件/行的代码被编译进二进制文件,这些信息就会被包含。

bi_decl_if_func_used

#define bi_decl_if_func_used(_decl) ({__bi_mark_enclosure _decl; __bi_decl(__bi_ptr_lineno_var_name, &__bi_lineno_var_name.core, ".binary_info.", ); **(const volatile uint8_t **)&__bi_ptr_lineno_var_name;});

声明一些二进制信息,只有当包含该声明的函数被链接进二进制文件时,这些信息才会被包含。SDK 使用 --gc-sections,因此从未被调用的函数将被链接器移除,以这种方式声明的任何相关二进制信息也会被删除。

类型定义文档

binary_info_core_t

typedef struct _binary_info_core binary_info_core_t

所有二进制信息条目共享的公共头字段。

每个二进制信息结构体都以这个核心头开始,用于标识条目类型及其所属的标签命名空间。

binary_info_raw_data_t

typedef struct _binary_info_raw_data binary_info_raw_data_t

携带原始、未解释字节数据的二进制信息条目。

binary_info_sized_data_t

typedef struct _binary_info_sized_data binary_info_sized_data_t

携带长度前缀字节缓冲区的二进制信息条目。

binary_info_list_zero_terminated_t

typedef struct _binary_info_list_zero_terminated binary_info_list_zero_terminated_t

保存以 null 结尾的二进制信息指针列表的二进制信息条目。

binary_info_id_and_int_t

typedef struct _binary_info_id_and_int binary_info_id_and_int_t

将 32 位整数值与 ID 关联的二进制信息条目。

binary_info_id_and_string_t

typedef struct _binary_info_id_and_string binary_info_id_and_string_t

将字符串值与 ID 关联的二进制信息条目。

binary_info_ptr_int32_with_name_t

typedef struct _binary_info_ptr_int32_with_name binary_info_ptr_int32_with_name_t

持有指向命名的 32 位整型变量指针的二进制信息条目。

binary_info_ptr_string_with_name_t

typedef struct _binary_info_ptr_string_with_name binary_info_ptr_string_with_name_t

持有指向命名的字符串变量指针的二进制信息条目。

binary_info_block_device_t

typedef struct _binary_info_block_device binary_info_block_device_t

描述二进制文件中块设备的二进制信息条目。

binary_info_pins_with_func_t

typedef struct _binary_info_pins_with_func binary_info_pins_with_func_t

描述一个或多个 GPIO 引脚及其分配功能的二进制信息条目,支持引脚号 <32,最多 5 个引脚。

binary_info_pins64_with_func_t

typedef struct _binary_info_pins64_with_func binary_info_pins64_with_func_t

描述一个或多个 GPIO 引脚及其分配功能的二进制信息条目,支持引脚号 <256,最多 7 个引脚。

binary_info_pins_with_name_t

typedef struct _binary_info_pins_with_name binary_info_pins_with_name_t

将人类可读的标签与一组 GPIO 引脚关联的二进制信息条目。

binary_info_pins64_with_name_t

typedef struct _binary_info_pins64_with_name binary_info_pins64_with_name_t

将人类可读的标签与一组 GPIO 引脚(最多 64 个)关联的二进制信息条目。

binary_info_named_group_t

typedef struct _binary_info_named_group binary_info_named_group_t

定义一组相关二进制信息条目的命名组的二进制信息条目。

命名组允许工具在公共标签下将相关的二进制信息条目一起呈现,并具有可配置的显示行为。


中文翻译版以英文版相同知识授权方式共享:CC-BY-SA 4.0。交流 Q群:498908352