VxWorks上符号表(symbol,symTbl)实现分析,链式哈希表

本文分析了VxWorks系统中符号表的生成过程,主要涉及makeSymTbl.tcl脚本生成的symTbl.c文件,其中包含standTbl和standTblSize两个变量。通过运行时观察,发现原本NULL的standTbl字段被赋予具体值,这与SYMBOL结构体中的singly linked list指针相关。符号表的创建分为两步:一是生成symTbl.c文件,二是通过symTblCreate和symTblAdd创建链式哈希表,最终形成符号表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在编译VxWorks倒数第二步的时候是调用makeSymTbl.tcl脚本生成symTbl.c文件
symTbl.c定义了2个变量standTbl和standTblSize,
下面是symTbl.c的一部分,

/* symTbl.c - standalone symbol tables wrapper */
/* CREATED BY C:/WindRiver/vxworks-6.9/host/resource/hutils/tcl/makeSymTbl.tcl
 *  WITH ARGS arm tmp.o symTbl.c
 *         ON Wed Jun 06 14:41:54 +0800 2018
 */
#include "vxWorks.h"
#include "symbol.h"

IMPORT int zynq7kGemRegister ();
IMPORT int zynq7kI2cDevRegistration;
IMPORT int zynq7kI2cRead ();
IMPORT int zynq7kI2cRegister ();
IMPORT int zynq7kI2cShow ();
IMPORT int zynq7kI2cWrite ();

SYMBOL standTbl [7597] =
    {
        {
   
   {
   
   NULL}, "CQ", (char*) &CQ, 0, 0,  SYM_GLOBAL | SYM_BSS},
        {
   
   {
   
   NULL}, "CQ_IN", (char*) CQ_IN, 0, 0,  SYM_GLOBAL | SYM_TEXT},
        {
   
   {
   
   NULL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值