启动bcm的sdk,会进入一个类似shell的交互界面,在其中如入命令,可以配置交换机芯片。
本文主要记录一下命令:
   1.端口限速命令
   2.链路聚合命令
   3.i2c控制命令
启动方法:
/tmp/bcm # ./bcm.user.proxy
“?”显示帮助信息。直接输入会显示出sdk对所有型号芯片支持的命令,以及当前所支持的命令。
BCM.0> ?
help: "??" or "help" for summary
Commands common to all modes:
?              ??             ASSert         BackGround     BCM            
BCMX           Board          break          CASE           CD             
CONFig         CONSole        CoPy           DATE           DeBug          
DeBugMod       DELAY          DEVice         DIR            DISPatch       
Echo           EXIT           EXPR           FLASHINIT      FLASHSYNC      
FOR            Help           HISTory        IF             JOBS           
KILL           LOCal          LOG            LOOP           LS             
MKDIR          MODE           MORe           MoVe           NOEcho         
Pause          PRINTENV       PWD            QUIT           RCCache        
RCLoad         REBOOT         REName         RESET          RM             
RMDIR          SalProfile     SAVE           SET            SETENV         
SHell          SLeep          TIME           Version        
Commands for current mode:
AGE            Attach         Auth           BIST           BPDU           
BTiMeout       CABLEdiag      CACHE          CellHDR        CHecK          
CLEAR          COLOR          COMBO          COS            CounTeR        
CustomSTAT     DELete         DETach         DMA            DmaRomTest     
DMIRror        DSCP           DTAG           Dump           EditReg        
EGRess         EthernetAV     FieldProcessor Getreg         GPORT          
H2HIGIG        H2HIGIG2       HASH           HeaderMode     INIT           
Insert         INTR           IPFIX          IPG            KNETctrl       
L2             L2MODE         LED            LINKscan       LISTmem        
Listreg        LOOKup         MCAST          MemSCAN        MemWatch       
MIRror         MODify         ModMap         Modreg         MTiMeout       
MultiCast      OAM            PacketWatcher  PBMP           PHY            
POP            PORT           PortRate       PortSampRate   PortStat       
PROBE          PUSH           PUTREG         PVlan          RATE           
RateBw         RegCMp         REMove         RXCfg          RXInit         
RXMon          SCHan          SEArch         Setreg         SHOW           
SOC            STACKMode      StackPortGet   StackPortSet   STG            
STiMeout       STKMode        SwitchControl  SystemSnake    TestClear      
TestList       TestMode       TestParameters TestRun        TestSelect     
TRUNK          TX             TXCount        TXSTArt        TXSTOp         
VLAN           WARMBOOT       Write          XAUI    ### 1.portrate设置端口限速
BCM.0> portrate ?
Usage (PortRate): Set/Display port rate metering characteristics.
Parameters: <pbm> [ingress|egress|pause [arg1 arg2]]
            For Ingress or Egress: arg1 is rate, arg2 is max_burst
            For Pause: arg1 is pause_thresh, arg2 is resume_thresh
            rate is in kilobits (1000 bits) per second
            max_burst and xxx_thresh are in kilobits (1000 bits)
# 设置端口1的入口速率最大为1000,burst是有关qos相关的参数。
BCM.0> portrate ge0 ingress 1000  
PortRate: Error: missing port burst size
BCM.0> portrate ge0 ingress 1000 1000
# 显示所设置的端口参数,可以看出与设置的有些不同,因该是进行了转化
BCM.0> portrate
 ge0:   Ingress meter:     1024 kbps     1031 kbits max burst. ### 2.trunk 设置链路聚合
BCM.0> trunk
Usage (TRUNK): Usages:
          trunk init
                - Initialize trunking function
          trunk deinit
                - Deinitialize trunking function
          trunk add <Id=val> <Rtag=val> <Pbmp=val>
                - Add ports to a trunk
          trunk remove <Id=val> <Pbmp=val>
                - Remove ports from a trunk
          trunk show [<Id=val>]
                - Display trunk information
          trunk egress [<Id=val>] <Pbmp=val>
                - Set egress ports for trunk
          trunk mcast <Id=val> <Mac=val> <Vlan=val>
                - Join multicast to a trunk
          trunk hash set <Pbmp=val> <HashValue=val>
                - Set ingress port hash value to select egress port of a trunk
          trunk hash get <Pbmp=val>
                - Get ingress port programmable hash value
          trunk psc <Id=val> <Rtag=val>
                - Change Rtag (for testing ONLY)
# rtag指定链路聚合的负载分担方式。当设置2台交换机都配置为srcmac,destmac的时候,
# 再通过测试卡进行发包测试,发送和接收都不会丢包,
# 但是2两台交换机中有一台配置为srcdestmac的时候就会丢一半的包,正在查原因。
BCM.0> trunk add id=1 rtag=1 pbmp=ge0,ge1
BCM.0> trunk add id=2 rtag=2 pbmp=ge2,ge3
BCM.0> trunk add id=3 rtag=3 pbmp=ge4,ge5
# 查看链路聚合的设置
BCM.0> trunk show
Device supports 8 trunk groups:
  8 front panel trunks (0..7), 8 ports/trunk
trunk 1: (front panel, 2 ports)=ge0,ge1 dlf=any mc=any ipmc=any psc=srcmac (0x1)
trunk 2: (front panel, 2 ports)=ge2,ge3 dlf=any mc=any ipmc=any psc=destmac (0x2)
trunk 3: (front panel, 2 ports)=ge4,ge5 dlf=any mc=any ipmc=any psc=srcdestmac (0x3)
### 3.i2c命令
BCM.0> i2c ?
Usage (I2C): Usages:
        i2c probe [pio|intr] [speed] [quiet]
            - probe devices on I2C bus and build device tree.
              If "intr" or "pio" is specified, change to that bus mode.
              If a valid speed is specified, change the bus to that speed.
              If "quiet" is specified, suppresses probe output.
        i2c scan [pio|intr] [saddr] [quiet]
            - Scan devices on I2C bus and display the device list.
        i2c log
            - show I2C bus transaction log.
        i2c backlog
            - show I2C bus transaction log (in reverse order).
        i2c clearlog
            - reset I2C bus transaction log.
        i2c reset
            - reset I2C bus controller core.
        i2c speeds
            - show supported I2C bus controller clock rates.
        i2c show
            - show devices found and their attributes.
        i2c read saddr comm len
            - generic interface to read devices, do probe first
        i2c readb saddr len
            - generic interface to read devices without register based access, do probe first
        i2c write saddr comm [data]
            - generic interface to write a byte to devices, do probe first
            - comm is data when writing directly otherwise command register
# 操作i2c之前,都需要先输入i2c probe
BCM.0> i2c probe
Yet to Implement soc_i2c_write_word_data
Yet to Implement soc_i2c_write_word_data
I2C: detected 2 devices
# 扫描i2c设备
BCM.0> i2c scan
I2C device found at slave address 0X20 (lpt0: PCF8574 MUX control)
I2C device found at slave address 0X32 (Unknown)
I2C device found at slave address 0X48 (temp0: LM75 Temperature Sensor)
I2C device found at slave address 0X77 (PCA9548 MUX)
# 0x32的设备地址是SD2405时钟芯片。读取时钟芯片秒寄存器的值
BCM.0> i2c read 0x32 0x00 1
00: 18
# 读取秒寄存器和分寄存器的值
BCM.0> i2c read 0x32 0x00 2
00: 31 35 查看sdk/src/appl/diag/目录中的文件就可以了解对应的命令的实现。
例如i2c_cmds.c文件。

BCM_SDK命令的更多相关文章

  1. Cmder--Windows下命令行利器

    cmder cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令. 安装包 安装包链接 下载后,直接解压即用. 修改命令提示符λ为 ...

  2. 【每日一linux命令4】常用参数:

     下面所列的是常见的参数(选项)义: --help,-h                              显示帮助信息 --version,-V                        ...

  3. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  4. MVVM模式解析和在WPF中的实现(三)命令绑定

    MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  5. SQLServer执行命令出现“目录无效的提示”

    异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 一般都是清理垃圾清理过头了,把不该删的目录删了 网上说法: 问题描述: 1.s ...

  6. SQLServer文件收缩-图形化+命令

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 收缩前 图形化演示: 不仅仅可以收缩日记文件,数据库文件也是可以收缩的,只不过日记收缩比 ...

  7. 让 windows 下的命令行程序 cmd.exe 用起来更顺手

    在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制 ...

  8. [版本控制之道] Git 常用的命令总结(欢迎收藏备用)

    坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...

  9. git 命令

    切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm  ...

随机推荐

  1. 关闭VS的实时调试器

    今天要安装一个水晶报表.安装过程有几个文件有错误.结果这个vs的实时调试器老是调出来.而且还是5次跳出来等你取消5次之后,才到默认的忽略的界面.你知道有多烦的,还得看这他,点完一次还要等几秒钟.差点崩 ...

  2. 软件测试自动化之- API Test

    API测试 从本质上来说,API测试是用来验证组成软件的那些单个方法的正确性,而不是测试整个系统本身. API测试也被称为单元测试(Unit Testing), 模块测试(Module Testing ...

  3. NET使用NPOI组件将数据导出Excel-通用方法 【推荐】

    一.Excel导入及导出问题产生:   从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题:   导出问题:   如果是as ...

  4. java读取url中json文件中的json数据

    有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取: /** * 从数据接口获取到数据 * @return * @throws ...

  5. [k8s]elk架构设计-k8s集群里搭建

    elasticsearch和mysql的对比 https://blog.csdn.net/qq_21383435/article/details/79323383 Mapping ~ Schema m ...

  6. [gulp入门]gulp-connect浏览器自动刷新

    LiveReload可以理解为即时刷新,在前端开发中,开发者在编写或调试html/js/css代码后需要从编辑器切换到浏览器,再刷新浏览器才能看到页面变化,这种频繁的操作在一定程度上影响了工作效率,而 ...

  7. selenium初探:WebDriverException解决方法探索(以Chrome浏览器|IE浏览器|Edge浏览器为例)

    环境参考:win10-64位, python3.6.3, selenium3.7 在初试selenium运行以下代码时 from selenium import webdriver browser = ...

  8. xslt循环转换子元素

    转换源xml <keywords class="array"> <e type="string">e1</e> <e ...

  9. linux没有那个文件或目录

    linux脚本执行 报错 没有那个文件或目录 但是ls 看一下,明明有文件 原因: vim filename然后用命令 :set ff可看到dos或unix的字样,如果的确是dos格式的, 那么用se ...

  10. binutils工具集之---addr2line

    addr2line用于得到程序指令地址所对应的函数,以及函数所在的源文件名和行号. 在不少嵌入式开发环境中,编译器的名称往往不是gcc,而是想arm-rtems-gcc这样的,对于这种命名形式的编译器 ...