我悄悄收藏龙芯一博士写的脚本——真香

2021.3.24

隐身上线,看众生百态

7个月前,龙芯的嵌入式事业部技术支持群弹出消息,我司的一同事发起请求。

“乔博,请教一下,龙芯片如何通过MDIO读取外部PHY寄存器?现有固件包是否支持?现有ethtool可以读到CPU GMAC寄存器,却读不到PHY。”

龙芯嵌入式事业部技术支持软件、硬件大佬有不少,其中乔博是我目睹过展现功夫次数最多的嵌入式软件工程师。乔博姓乔,学历博士。由于他在群里响应迅速且指导很有方向,所以大家都喜欢拜托他。大家对群里其他技术支持大佬要么称呼“某总“,要么称呼“某工”,一个人的称谓反复变化,唯独对乔博的称呼始终如一,哈哈。

公司项目主管也对乔博有所耳闻,某团队要去龙芯中科寻求现场求助,出差前特意问:“你要去的是龙芯嵌入式事业部吗,就是乔博士在的那个部门?不是!只给你2天时间,2天搞不定就委托销售换到嵌入式事业部的人对接”。主管有点迷信了,术业有专攻。

发请求的是公司其他项目组的成员,我并不认识。公司领导的难得执行到位几个明智举措“只要某器件属于核心部件,他的技术支持群必定拉入公司所有相关成员,即使大家手头项目毫不想干”。很大程度上避免各项目组成员重复试错,以前经常某团队一年前入坑,好不容易爬出来,一年后另一团队在同一位置再次“噗咚”,历史总是惊人的相似。

“系统是Linux吧,试试这个“,5分钟后,乔博遂即发送do-gmac.sh脚本,既然提起ethtool,同事必然是Linux系统环境。

继续乔博指导脚本的使用方法,半小时后同事反映问题解决了,发送个大拇指表情。

同时提的需求本质上算不上难点,甚至算不上问题,只要耐心看技术手册都能自己解决,奈何公司业务广泛,哪个项目都缺人,哪有精力琢磨每款处理器,拼凑的团队能完成项目就好,很有可能半年后再也不触碰龙芯。

收藏

下班前我悄悄收藏脚本,为什么呢?

同事咨询的问题换做是我来处理,决不可能在5分钟内写好脚本。脚本我不确认是否是乔博所写,还是龙芯公司内部共享的,但可以肯定,我们并不是第一个寻求此类协助的客户,他们极有可能存在一套“客户工具包”应对常见小问题。为什么我称之为小问题呢?越是小白的问题,求助自然越多,若是能轻松解决小白需求,摸鱼的时间还会少吗。有相应基础的客户寻求的协助通常更为棘手,常规方法用尽后才寻求帮助。

Google一下“Vim怎么退出”,出来的页面可新鲜呢,页面创建时间不会超过1年。

我悄悄收藏龙芯一博士写的脚本——真香

瞅瞅里面写的是啥,居然是用devmem直接访问处理器寄存器,总之除了在预研阶段偶尔用之外,一般写正式代码我是不会这么干的。常规操作是调用SMI接口读取PHY ID,根据PHY ID值绑定对应的PHY driver,再用API module_param_call()或device_create_file()在/sys目录下创建可访问的节点。涉及的工作量不算多,效率其实也不高。本来仅为获取到几个字节数据,却要敲打几行代码,期间还少不了编译、调试。

长期维护者熟悉整个流程,处理起来也算得心应手,而技术支持通常要面对水平参差不齐的客户,本以为是钻石,谁知是青铜,还是不屈青铜的那种,无奈王者感叹队伍带不动,大家退了吧。

某些客户现场还未具备重新编译内核的条件,由此,devmem直接访问寄存器的优势尤为明显。

客户要做的是用任意方法(网络、串口、u盘)拷贝脚本到设备里,剩下的按照脚本的执行规则输入参数,实在操作有难度的,都5G时代了随地手机做wifi热点弄网络远程协助不存在问题吧。

我悄悄收藏龙芯一博士写的脚本——真香

居然用上了

上月其他项目团队初次接触龙芯处理器,用着一款没接触过的PHY,领导说:“你以前的项目里调试PHY算是很有经验了,派你借调那个团队协助开发,只调通PHY即可,其他的外设由项目主要成员处理”。

“哦~”我听懂了,我扮演一个短工,而且是没有绩效的那种,以后项目挣一个小目标也和我无关呗,“借调费用多少?”

当我看到电路板时傻眼了,像是个战场上退下来的伤员,好几处胶布贴着,全是补丁。电路板补丁至少有20根漆包跳线,漆包线直径不超过0.2mm,长度都在8-13cm之间,防护胶布贴得满满的生怕触碰掉落。虽说任务上仅要我调试PHY,但内核也是少不了修改的,说不定还得先调试内存。

项目对接人还叮嘱我:“项目组目前就两块电路板,都是这样,小心着来。”

靠,一直忙着其他事情,一个星期都懒得触碰那块板子,电路板甩倒隔壁没人坐的办公桌上,看着心烦“我想回家”。跑步5公里不是什么难事,现在是花式给我提高难度——倒立跑完5公里,扯淡。

想起曾经乔博处理过类似事情,赶紧翻阅手机是否还保留着消息记录,我或许会屏蔽公司内部消息,绝不会删除技术支持聊天记录,窃喜~似乎有救了。往前走两步才知道情况没我预想的糟糕,送来的电路板已经可以正常启动执行到Linux的Login界面。

仔细研读百来行shell的执行逻辑,再添加少许项目特定代码,好列~收工。也不关心什么代码耦合问题,架构设计Who cares!摊开手,去TMD蛋,就一个shell爱用不用。

来源:程序员丫

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月19日
下一篇 2022年2月19日

相关推荐