梳理M1芯片Mac mini 执行 pod install 失败Ruby直接崩

Python013

梳理M1芯片Mac mini 执行 pod install 失败Ruby直接崩,第1张

环境:2020款M1芯片Mac mini ,Xcode 13.3.1,Ruby为自带2.6.8

简述:

    刚开始安装时还按照正常逻辑安装cocoapods,执行pod install 时,报Ruby崩溃,让上报错误信息:

You may have encountered a buginthe Ruby interpreter or extension libraries.Bug reports are welcome.For details:https://www.ruby-lang.org/bugreport.html

最后几番折腾,知道是 ffi 相关包执行X86指令集,需要适配M1芯片架构,即arm64指令集

主要涉及Ruby版本,我系统版本Mac OS 12.3.1,ruby版本系统自带2.6.8,升级ruby会涉及其他软件包,gem等,皆升级到最新。

此时Ruby升级为3.0.0,再次安装pod,问题解决

详细步骤不再重复造轮子,引用下面这位作者文章,对我帮助很大,感谢:https://www.jianshu.com/p/a768181c1245

集成gitlab CI后,脚本执行pod install后出现两个问题:1.让注册当前Mac mini设备ID到profile文件。这是无需的,我们需要在 xcodebuild archive 时 添加 -destination 'generic/platform=iOS' 即可解决;2. 再次pod install时发现 Pods.xcodeproj 不能正常生成,报 can not open Pods.xcodeproj 错误,解决:在 ~/.profile 文件增加: export LANG=en_US.UTF-8

流程:

1.阅读spec

2.根据spec,制定testplan

3.根据testplan,写testcase

4.搭建验证环境

5.跑仿真并debug

6.持续跑 RTL regression

7.持续跑 SDF regression

8.收集代码/功能覆盖率,并完善testplan和增加testcase。

验证软件之前主要是被美国三大大公司所垄断,目前国内也有多家芯片设计验证软件公司如雨后春笋快速发展,比如性价比比较高的上海弗摩电子科技有限公司的形式验证解决方案的库产品PNFlib,拥有出色的权威性、全面性、可靠性和易用性,可验证某些最艰巨的 SoC 设计挑战,它包括值注释、原理图查看、源代码浏览和分析报告速度分析,涵盖了整个形式验证领域的大部分典型设计案例和常规应用流程。

打开得物APP之后,在其页面下方点击进入“我”的页面;进入到“我”的页面内,点击打开上方的“设置”按钮;进入到设置之后,点击得物的“身份认证”一栏。

身份认证共有两种方式,点击其中的“官方认证”;进入到得物APP官方认证页面,滑至页面下方便可看到官方认证的方式,按照认证方式进行官方认证。

芯片设计可以划分为前端(逻辑设计)与后端(物理设计),验证环节则是个特殊的存在,就像一条支线,相对独立但与需求定义到综合到物理实现的这个过程又是并行的,贯穿着芯片设计流程的始末。

而验证存在的意义在于不断地给设计或者实现过程提供迭代的关键意见,即验证过程中发现的性能不满足、设计代码功能bug、整芯片集成错误等问题。

验证可以分为前仿真(基于RTL代码)和后仿真(基于门级网表)。而大部分设计问题都应该会在前仿真的时候就暴露出来,毕竟越到后面设计的迭代成本越高,风险也会越大。

介绍

芯片的质量有很大程度上依赖于验证,当然制造工艺也很关键。为了缩短芯片的上市时间,节约开发成本,SoC(系统级芯片,System on Chip)这一将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)等多家IP核集成在单一芯片上的形式成为了主流。

随着5G、AI等众多应用的不断涌现,芯片功能复杂度爆发式增长,不同的芯片更需适配不同的应用场景。比质量更重要的是芯片的安全性、可靠性,当芯片、系统和软件环境融合在一起,无数的“应用模式”都需要从安全角度进行充分的验证。

随着系统集成度的提高,系统自身的复杂性也在随之增加,而系统复杂度的提高对于功能验证的要求是首当其冲的——以智能汽车使用的自动驾驶芯片为例,它的复杂程度并不低于一架小型飞机,汽车行业要求系统能够准确运行以避免危险情况的发生,并能够实时监测和管理故障。