电子产业一站式赋能平台

PCB联盟网

搜索
查看: 9|回复: 0
收起左侧

开工大吉之一键唤醒工作模式

[复制链接]
匿名  发表于 昨天 18:22 |阅读模式
过年长假不顾大家的苦苦挽留决然离去之后,还是迎来了开工大吉的日子。先感谢下老板的开工红包,我一直觉得自己和红包很有缘分,人生何处不相逢呢!

之后感叹一下最近的天气,虽然维持了过年前的空气质量,但是这大风呼呼的刮,加之我脸面积过分的大,真是刮的脸生疼(一写这个词我就总想到昇腾)。

最后开始进入本篇的主旨,一键唤醒工作模式的工作站环境配置!
复工的第一天,在历经了“年前我是干什么的来着?”、“应该往哪边坐地铁?”、“公司是应该按几层啊?”以及“抖音上是不是说复工前三天不要干活对身体不好呀?”等阻碍之后,终于准时坐在了工位上(然后过了一会老板就来红包了,再次感谢(*^▽^*))。打开工作站后,遇到了第一个问题:长假前我把工作站给关了,那种比较“彻底”的关,这导致之前开的十来个terminal我还得重新一个一个开,仿真命令也得重新去查(命令太长了每次我都得查一遍使用手册)。没关系忍了,反正一年也关不了几回。
在工位上鼓捣了一天后,又遇到了第二个奇葩问题。因为一些工具安装和依赖问题,有一部分systemc的代码我是先在虚拟机上开发测试好完成,再集成到工作站,所以虚拟机每次都是选择“挂起”。但是工作的第一天我在笔记本上装了WSL,这导致VMware加载的虚拟机没法挂起了,一点就报这个错:

这个错看着就复杂自己解决不了,没办法只好彻底关闭虚拟机每次都重新开。那面临一个同样的问题:每次都得开一堆terminal工作在不同的目录方便处理代码和环境。如果不是我的vscode ssh一直有问题,加上很多自己的工具是基于bash+vim搞的,真的不想受这个气。
面对这两个问题怎么办呢?最好搞个指令,开机后一穷二白的情况下一键打开所有需要的目录,并且在一些目录里直接开始执行需要的操作,省的还得一次次的去开这些目录和文件。
因此将其命名为“一键唤醒工作模式”!
最后弄出来就是这个效果:

这样的:

具体是怎么弄的呢?说起来也简单,在bashrc里魔改就好了。我是比较喜欢在bashrc里瞎鼓捣的人,除了那次重定义grep导致工程环境瘫痪之外,还没有出过什么大幺蛾子。实现这个功能找到一句关键代码就可以:
  • gnome-terminal --tab -- bash -c ""当然,在开发之前还是要明确一下需求,归纳的需求点是这样的:
  • 给定一个默认的工作目录,基于该目录打开若干terminal指向不同的子目录以备不时之需;
  • 在某些子目录中进行进一步操作,比如跑仿真跑综合,不管人清醒与否,一上班先让机器工作起来人先休息下;
  • 如果给定了其他目录输入,则根据给定的输入目录搜索一个关键词比如“xxx_proj”,基于该目录打开terminal,这个需要主要提防我这种喜欢在不同的目录checkout不同分支的人;
    ok,明确需求和关键代码之后,开始在bashrc里魔改。以虚拟项目mvu为例进行展示,就是上面的那个动图效果。
  • #指定一个默认的工作根目录export work_proj_root='/home/ICer/gitee_path/ic_virtual_project/mvu_prj'#快捷键名称gowork(){  if [ -z "$1" ]; then            #如果没有输入    local path=$work_proj_root  else                            #如果有输入比如gowork ./基于当前目录开始工作    local path=$(realpath "$1")    #这里需要指定一个工作目录的关键词,或者说不管什么分支,PROJ根目录总会有一个关键词的,比如这里就是mvu_prj    local keyword_pos=$(awk -F'mvu_prj' '{print length($0) - length($NF)}' "$path")    if [[ $keyword_pos -gt 0 ]]; then      path=${path:0:$keyword_pos} #把关键词后面的截掉作为工作根目录    else      echo "cannot find key path keyword!"      local path=$work_proj_root  #没有关键词就取默认的    fi  fi
      echo "Note: \$proj_root path is $path"
      gnome-terminal --tab -- bash -c "cd ${path}/rtl; pwd; exec bash"        #开一个新的页签,并且跳转到指定目录  gnome-terminal --tab -- bash -c "cd ${path}/ver/common; pwd; exec bash" #这里可以自己DIY操作
      #当前的terminal页面需要进行的操作,自己DIY即可  cd ${path}  source project.bashrc  cd ${path}/ver/mvu/sim  make cmp}完整的代码就是这样了,需要说明的部分都在代码的注释里,如果有兴趣大家就自己改改来用吧。妈妈再也不用担心我忘记自己是做什么工作的了!

    系列文章入口
    【芯片设计】SoC 101(一):绪论【芯片设计】FIFO漫谈(零)从无处不在的FIFO开始说起【芯片设计】计算机体系结构(一)虚拟内存【芯片设计】深入理解AMBA总线(零)绪论
    【芯片设计】握手协议的介绍与时序说明【芯片设计】复位那些小事 —— 复位消抖【芯片设计】快速入门数字芯片设计(一)Introduction【芯片验证】UVM源码计划(零)下定决心读源码前的自测环节
    【芯片设计】异步电路碎碎念(一) 到底什么是异步电路
    【芯片设计】从RTL到GDS(一):Introduction
    【芯片设计】系统中的可维可测状态记录寄存器设计
    其他文章链接
    【芯片验证】sva_assertion: 15道助力飞升的断言练习【芯片验证】可能是RTL定向验证的巅峰之作【芯片验证】RTL仿真中X态行为的传播 —— 从xprop说起【芯片验证】年轻人的第一个systemVerilog验证环境全工程与解析
    【芯片设计】verilog中有符号数和无符号数的本质探究
    【芯片设计】论RTL中always语法的消失术
    【芯片设计】代码即注释,注释即代码
    【芯片设计】700行代码的risc处理器你确实不能要求太多了
    入职芯片开发部门后,每天摸鱼之外的时间我们要做些什么呢
    如何计算系统的outstanding 和 burst length?
    芯片搬砖日常·逼死强迫症的关键词不对齐事件
    熟人社会里,一群没有社会价值的局外人
  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表