Arm Community
Site
Search
User
Site
Search
User
Groups
Education Hub
Distinguished Ambassadors
Open Source Software and Platforms
Research Collaboration and Enablement
Forums
AI and ML forum
Architectures and Processors forum
Arm Development Platforms forum
Arm Development Studio forum
Arm Virtual Hardware forum
Automotive forum
Compilers and Libraries forum
Graphics, Gaming, and VR forum
High Performance Computing (HPC) forum
Infrastructure Solutions forum
Internet of Things (IoT) forum
Keil forum
Morello forum
Operating Systems forum
SoC Design and Simulation forum
SystemReady Forum
Blogs
AI and ML blog
Announcements
Architectures and Processors blog
Automotive blog
Graphics, Gaming, and VR blog
High Performance Computing (HPC) blog
Infrastructure Solutions blog
Internet of Things (IoT) blog
Operating Systems blog
SoC Design and Simulation blog
Tools, Software and IDEs blog
Support
Arm Support Services
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Community Management
Archive
中文社区
Jump...
Cancel
中文社区
中文社区博客
Python CADI: 助力Fast Model用于软件自动化测试
Blogs
视频和文件
Members
Mentions
Sub-Groups
Tags
Jump...
Cancel
New
中文社区 requires membership for participation - click to join
More blogs in 中文社区
ARM中国大学计划博客
Arm新闻
中文mbed博客
中文社区博客
恩智浦汽车电子MCU讨论区博客
Tags
Debug Tools and Test Methods
Fast Models
Actions
RSS
More
Cancel
Related blog posts
Related forum threads
Python CADI: 助力Fast Model用于软件自动化测试
feng
August 15, 2017
Less than one minute read time.
熟悉Fast Model的同学都知道Fast Model的CADI与MTI接口为Fast Model提供了虚拟原型特有的调试与分析记录功能。今天想跟大家聊的是Fast Model的Python CADI接口,又称为PyCADI,可以看作是Fast Model提供的类似CADI功能的一套python组件。
Python CADI可以用于Fast Model在batch mode下运行控制的一个简单方便的接口,比如可以基于Python方便实现如下诸多功能:
1) 仿真控制,包括程序加载,断点设置与管理,单步执行,阻塞与非阻塞运行,停止,复位等。
2)模型信息读取与设置,包括target信息,模型参数等。
3)寄存器访问,非侵入性读写访问(不修改模型与软件代码本身)。
4)存储器访问,非侵入性读写访问(不修改模型与软件代码本身)。
5)异常报告,如安全异常,超时异常等。
由上述Python CADI的功能简要描述我们可以看出,Python CADI这个强大的接口可以使Fast Model更好的有效使用在基于虚拟原型方案的软件测试场景中,而不仅仅是我们以往经常提到虚拟原型用于早期软件开发的使用模式。简单的说,虚拟原型的自动化测试方案可以以极低的代价准确高效的实现各种测试场景:
1) 实际硬件系统中很难实现但对于安全性系统又非常重要的故障注入测试,比如汽车电子中的电磁干扰引起芯片数据失效的场景。
2) 复杂软件开发流程中引入的连续集成测试—— Continuous Integration Test,复杂的版本管理带来的软件迭代自动化测试需求,
3)产品量产质量保证所需的大量测试向量的regression回归等等。
长话短说,这么好的功能怎么使用?我这里以一个简单例子来说明。
首先确定我们的Fast Model环境和Python环境没有问题,Python CADI使用的是Python 2.7.*版本。设置好Fast Model环境后,检查PYTHONPATH环境变量:
export PYTHONPATH=$PVLIB_HOME/lib/python2.7:$PYTHONPATH
其次准备Fast Model仿真,编译并执行任一Fast Model安装目录下的例子(包括FVP),执行仿真带上-S,-p选项以启动CADI server并打印端口号。
然后编辑一个基于Python CADI的文件,在Python 2.7环境中执行(同时确保
PYTHONPATH环境变量有效
)。如下:
在此我们通过NetworkModel方式连接至Fast Model,再获取CPU并加载镜像,再加入打印、设置、读取模型参数,存储器读写,仿真控制等等操作。
Python 窗口中执行结果如下:
Fast Model 执行窗口可以看到软件运行的semihost输入输出:
详细的功能可以参考
Python CADI的相关文档,在安装目录下:
$PVLIB_HOME/Docs/DUI0851B_fast_models_py_dbg_rm.pdf
同时Fast Model安装目录也提供了Python CADI的使用范例参考:
$PVLIB_HOME/
examples/python/
由此可见,Fast Model的Python CADI仿真控制,对目标模型的访问接口等功能良好的支持了前述的各种测试需求。最关键的是区别于传统的基于硬件原型或最终产品的测试方案,虚拟原型可以使开发测试团队在产品设计早期就提前开始测试工作。这样做的好处是,将可能的问题尽可能早地发现并解决它,从而缓解工程师的交付压力,提高产品质量,并缩短上市时间。理解这一点并不难,因为在一个工程越到后期或者系统越来越复杂时候,发现并解决一个bug的代价可能是早期的数倍之多。
最后,一如既往地欢迎大家使用、试用Fast Model,了解更多Fast Model信息,请参考:
https://developer.arm.com/products/system-design/fast-models
中文社区博客
Arm A-Profile构架2022扩展
Zenon Xiu (修志龙)
原文:
Arm A-Profile Architecture Developments 2022 - Architectures and Processors blog - Arm Community blogs - Arm Community
作者:Martin Weidmann翻译:修志龙(Zenon Xiu) 与arm构架授权和生态伙伴一起,arm持续演进其构架,开发新功能以满足现有和新市场的要求…
October 17, 2022
深入理解 Arm A-profile的non-maskable interrupt -NMI
Zenon Xiu (修志龙)
原文:
https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/a-profile-non-maskable-interrupts
翻译: 修志龙 Zenon Xiu Arm A-profile构架一个长久以来的局限性是:缺乏对non-maskable interrupt (NMI…
August 24, 2022
Arm A-Profile 构架2021扩展
Zenon Xiu (修志龙)
原文:
https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2021
Martin Weidmann
September 8, 2021 翻译注释:Zenon Xiu Arm与arm构架授权公司及生态伙伴一起…
August 17, 2022