SDK CLI

本文详细介绍了BCM命令监控下的一系列常用指令,包括显示SDK版本信息、列出寄存器状态、读写寄存器值、修改寄存器特定字段值、查看及操作内存表等。这些命令对于理解并操作网络设备底层配置至关重要。

1.VER:显示当前使用Sdk的相关信息。包括Sdk的版本,build的时间,以及该SDK支持Mac Chip Phy Chip

BCM.0> ver  

Broadcom Command Monitor: Copyright (c) 1998-2010 Broadcom Corporation

Release: sdk-5.10.2 built 20140628 (Sat Jun 28 15:06:05 2014)

From zhd@mos:/home/zhd/MOS/trunk/product/bcm/sdk-all-5.10.2

Platform: CC3452

OS: Linux Kernel

Chips:

       BCM56218_A0,

PHYs:  BCM5400, BCM5461, BCM5464, BCM5466,

    BCM5478, BCM5488, BCM54980, BCM54980,

    BCM54980, BCM54980, BCM53314, BCM54684,

    BCM54680, BCM53324, BCM53125, BCM53128,

    BCM8706/8726, BCM8727, BCM8728/8747, copper sfp


2. LListreg):列出SOC Register的情况。

用法:

(1)l -t :按block type列出reg

(2)l -c :列出所有counter reg

(3)l -ipg :列出name包含“ipg”的reg

 

3. GGetreg):读取Register的值。

用法:

(1)g <reg_type>  reg_name

(2)g <reg_type>  reg_name.block/port :读取某blockportreg的值。

BCM.0>  g mac_mode.ge0

MAC_MODE.ge0[0x100111]=0x3a:  <MAC_TX_PAUSE=1,MAC_SPEED=2,MAC_RX_PAUSE=1,  MAC_DUPLEX=0,LINK_STATUS=1>

Note: reg_type = PCICPCIMSOCPHY

 

4. SSetreg):设置Register的值。

用法:

(1)s  <reg_type>  reg_name  value :设置reg的值。

(2)s  <reg_type>  reg_name  reg_filed= value :设置reg特定field的值。

Note: S命令设置register特定field时,如果其他field没有被指定,其他field会被自动设置为0

 

5. MModreg):修改Register特定field的值。

用法:

m  <reg_type>  <reg_name>  <reg_field>= vlaue :修改reg特定field的值。

Note:跟S命令区别在于,M命令只修改特定位的值,其他未被指定的位值不变。

 

6. ListListmem):列出table的信息。

用法:

l  tab_name

 BCM.0> list l2

 Flags   Name                  Entry/Copy Description

 -----C  L2MC                   1024      

 --h---  L2_ENTRY              16384      

 --h---  L2_ENTRY_ONLY         16384      

 --h---  L2_HITDA_ONLY          2048      

 --h---  L2_HITSA_ONLY          2048      

 ------  L2_MOD_FIFO              16      

 --A--C  L2_USER_ENTRY           128      

 ------  L2_USER_ENTRY_DATA_ONLY  128      

 --A---  L2_USER_ENTRY_ONLY      128      

 -----C  IPMC_GROUP2            1024      

Flags: (r)eadonly, (d)ebug, (s)orted, (h)ashed

       C(A)M, (c)bp, (b)ist-able, (C)achable

 

7. D Dump):打印出table的值。

用法:

(1)d  tab_name

(2)d  tab_name  entry_id :打印table 固定条目。

(3)d  tab_name  entry_id  count :打印table固定条目开始后count条。

 

BCM.0> d egr_l3_next_hop 102

EGR_L3_NEXT_HOP.epipe0[102]: <MAC_ADDRESS=0,INTF_NUM=0>

 

BCM.0> d egr_l3_next_hop 102 3

EGR_L3_NEXT_HOP.epipe0[102]: <MAC_ADDRESS=0,INTF_NUM=0>

EGR_L3_NEXT_HOP.epipe0[103]: <MAC_ADDRESS=0,INTF_NUM=0>

EGR_L3_NEXT_HOP.epipe0[104]: <MAC_ADDRESS=0,INTF_NUM=0>

 

8. Wwrite):对table进行写值。

用法: 

 w  table  entry_id  count  value0 value1......

BCM.0> w egr_l3_next_hop 102 3 0x112233445566 1

BCM.0> 

BCM.0> 

BCM.0> d egr_l3_next_hop 102 3                  

EGR_L3_NEXT_HOP.epipe0[102]: <MAC_ADDRESS=0x133445,INTF_NUM=0x566>

EGR_L3_NEXT_HOP.epipe0[103]: <MAC_ADDRESS=0x133445,INTF_NUM=0x566>

EGR_L3_NEXT_HOP.epipe0[104]: <MAC_ADDRESS=0x133445,INTF_NUM=0x566>

 

 

### CLISDK的区别及其应用场景 #### 一、定义区别 CLI(Command-Line Interface)是一种通过命令行交互的方式,允许用户通过输入特定指令完成某些操作。这种方式通常不需要图形界面的支持,适合于自动化脚本编写和技术专家使用[^1]。 SDK(Software Development Kit)是一组软件开发工具包,旨在帮助开发者更便捷地创建应用程序。它可能包括库文件、API文档、代码示例以及其他资源,使开发者能够更容易地实现复杂的功能[^2]。 --- #### 二、功能差异 CLI 主要用于执行简单的任务或管理现有系统的运行状态。例如,在 AETROS 中,可以通过 CLI 设置环境变量 `DEBUG=1` 来启用调试模式,从而简化问题排查过程。而在 opensea.rs 中,CLI 提供了对 Opensea API 的直接访问能力,比如查询订单或部署智能合约[^3]。 相比之下,SDK 更侧重于提供底层技术支持和扩展性。以 TRON 的 Go SDK 为例,其基于 GRPC 协议实现了高效的远程服务调用机制,并支持 JSON 文件作为输入参数,极大地增强了灵活性。另外,像 Ouster SDK 不仅提供了多种编程语言的接口(C++, Python 等),还集成了数据处理、存储以及可视化等功能模块,满足不同层次的需求[^5]。 --- #### 三、适用场景对比 对于需要频繁重复的任务或者希望减少人为干预的情况来说,CLI 是非常理想的选择。因为它易于集成到 shell 脚本或其他自动化工具链当中。例如 golang 使用三方 SDK 操作容器时,如果涉及到大量相似的操作流程,则完全可以借助 CLI 工具来提高效率并降低错误率[^4]。 然而当面临更加复杂的业务逻辑需求时,单靠 CLI 往往难以胜任全部工作量;此时就需要引入完整的 SDK 解决方案了。例如在构建 NFT dApp 场景下,仅仅依靠命令行很难完全覆盖所有必要的功能点——而 rust 版本的 opensea.rs sdk 则正好弥补了这一短板,凭借 rust 自身优异的安全性和性能表现,为用户提供了一个强大可靠的开发平台。 --- ```python # 示例:如何利用Python SDK读取Ouster传感器数据 from ouster import client, pcap with client.Sensor("os-992012000123.local", 7502) as source: metadata = source.metadata print(metadata) pcap_file_path = &#39;example.pcap&#39; frames = list(pcap.read_frames(pcap_file_path)) for frame in frames[:10]: print(frame.id) ``` 上述代码片段展示了如何通过 python 接口获取来自 ouster lidar 设备的信息流,并进一步解析其中的内容以便后续分析使用。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值