tag 标签: c代码

相关博文
  • 热度 10
    2023-5-4 10:01
    1081 次阅读|
    0 个评论
    Helix QAC 2023.1 对 MISRA C:2012修订版4和MISRA C:2023的覆盖率为100%,对 AUTOSAR C++14的覆盖率为96%。它还更新了CWE最新版本v4.10的合规模块。 在这一版本中Helix QAC和Validate平台的集成也有重大改进,Validate平台提供了软件对跨工程以及Perforce静态分析产品的软件洞察力。 编码标准覆盖范围( MISRA C:2012修订版4、MISRA C:2023、AUTOSAR 和 CWE) MISRA针对C程序设计语言的软件开发指南。这些指南的目的是促进嵌入式系统上下文中的代码安全性、安全性、可移植性和可靠性。 • 100%覆盖 MISRA C:2012 修订版4,包括新规则和 3 条指令以及对现有指南的更新。 • 新的指南涵盖了额外的C11/18特性,包括对Threads和Atomics标准库的使用,以及对现有特性的新规则。 Helix QAC也对MISRA C:2023有100%的覆盖度,该指南将以前的修订、修正和技术整合为一个单一的、全面的版本。MISRA C:2023将于今年晚些时候出版。 AUTOSAR AUTOSAR C++ 14 的覆盖率已提高到 96%。 CWE 更新了 CWE C 和 CWE C++ 合规模块,以与最新版本的 CWE 4.10 保持一致。 Perforce Validate 持续安全性和代码合规性平台为嵌入式和关键任务应用提供功能安全性、安全性、可靠性和质量保证。 Validate平台为整个组织的代码库提供分析数据、趋势和配置的集中存储,为所有Perforce Static Analysis产品提供独立平台。 2023.1 改进了 Helix QAC 和Validate平台之间的集成。 • 将问题抑制状态与Validate连接的项目同步 ○ 桌面 GUI 和 Eclipse IDE 插件 • 最新版本的项目基线支持 • Streams 功能为单个代码库提供变体、分支和版本的管理和高效报告 • 改进了使用Helix QAC桌面工具和Validate之间的Validate和QAC GUI/CLI诊断一致性生成的MISRA合规报告 • 改进了使用 Validate 和 QAC GUI/CLI 生成的 MISRA 合规性报告 Helix QAC 桌面工具和验证之间的诊断一致性 • 上传性能改进 • WebAPI 功能,用于与 SDLC 中的其他工具和流程集成 提高生命质量 CLI • 最新版本工程的Validata基线支持( qacli 基线) • Validate独立的检查器和忽略功能 ( qacli 上传) • 抑制同步 GUI • 验证依赖项检查和忽略能力 • 抑制同步到桌面 • MISRA 合规报告和标准合规报告的改进 Eclipse IDE 插件 在IDE插件中Validate的连接支持 RCMA • 分析存储器的使用和效率的提高 Helix QAC 2023.1中的重要改变 停止使用公告 CCT Generator在2023停止使用 Helix QAC 2023.1将不再支持传统的独立CCT生成工具。 Helix QA C2021.3中引入的’qainject’工具将取代当前的CCT发生器。因此,使用遗留工具生成的CCT将被弃用,不再受支持。 从 QAC软件包中移除不支持的静态CCT 通过使用带有’qainject’的自动CCT生成,改进了对各种编译器的构建监控, 到2023.1,以前包含在Helix QAC软件包中的大多数静态CCT将被删除。自动生成的与使用静态默认CCT相比,CCT有望提供更准确的分析结果。除了GCC、Visual Studio和通用编译器之外,所有的静态CCT都被移除了。 ➡️ 立即体验最新版Helix QAC,发送邮件至info@polelink.com
  • 热度 8
    2022-9-1 11:00
    1585 次阅读|
    0 个评论
    随着汽车行业的发展,软件定义汽车已成为汽车产业达成的共识发展趋势,软件在汽车产品中也承担着越来越重要的角色,车身域各功能的实现,少则几千行代码,动辄百万行代码。随着汽车产业功能多样性以及复杂度的增加,传统的基于C代码开发的模式已不能满足某些特殊功能需求的实现,需要向更高级别的语言进化,实现复杂功能的开发。 C ++ 语言的广泛应用 众所周知,C代码是面向过程的语言,具有执行速度快以及效率高的特点,在嵌入式开发领域占据很大的比重,是嵌入式系统、尤其面向底层的主要编程语言。但是随着汽车行业智能化以及网联化的发展,更多的是聚焦在复杂的应用以及算法开发上,对性能的要求就会非常高,比如智能驾驶,智能网联等这类项目,相比C语言,具有面向对象机制的C++更适合用于这类项目的开发。 此外,为适配SOA架构和并行处理大数据等更复杂的需求,AP(Adaptive AUTOSAR)平台正广泛地应用于诸如车载域控制器、自动驾驶和车联网等领域;而AP也是基于C++语言开发的,这也正是因为C++所具备的特点更能满足AP平台对高安全性以及高计算能力的要求。 C++兼容C语言的同时又引入了面向对象的机制。 封装,继承以及多态的特性使得C++中的类与对象呈现多样性。 C++中引入了一些特殊用法,比如const常量、智能指针、cast转换、引用等,使得代码更加安全。 C++引入了模板概念,实现了将类型参数化的泛型编程,提升了代码复用性;同时,基于模板类或模板函数的STL(标准模板库)使得开发更便捷。 C++中还提供了很多开源库,比如神经网络、加密、数学开源库等,为复杂的应用开发提供了更多便利。 如何高效地实施 C++ 代码测试 随着汽车软件的复杂度以及代码量级的增加,主机厂和零部件供应商对代码质量的要求也越来越高,并寻求各种方式来提升代码质量,以尽早发现代码问题实现对项目的把控和交付。同时,ISO 26262以及ASPICE也对软件测试提出了明确的要求,即需要实施单元/集成测试。 在对软件进行单元测试和集成测试时,除了要满足相关需求测试的要求,还要考虑代码整个结构的覆盖度,测试过程因而比较繁琐。在面对复杂的C++代码项目时,如何才能高效地完成C++代码的单元测试和集成测试,最大化地实现自动化测试?北汇信息采用的自动化测试工具是Vector旗下的代码动态测试工具----VectorCAST/C++。 VectorCAST/C++工具是德国Vector公司的一款白盒测试工具,主要用于实现代码的单元测试和集成测试。它最大的特点,同时也是相比于其它同类工具最大的优势就在于,经受过多个大型量产项目实践的对C++高阶特性、Linux系统和CI平台的强力支持。 视频版介绍:https://www.bilibili.com/video/BV18a411R77j?spm_id_from=333.999.0.0 支持 C++ 11 / 14 / 17 代码解析 VectorCAST/C++工具内置了权威的商业化前端解析工具EDG对代码进行解析,无论是基于C++11开发的,还是C++14又或者是C++17开发的,工具都可以完美支持C++11/14/17的特性,同时,针对C++复杂数据类型的使用,比如STL、模板、智能指针等,可实现图形化界面操作,无需过多添加测试代码,有效地提高了C++代码的测试效率。 (1)类的实例化 类在使用之前都需要进行类的实例化----对象创建,通过对象对类的成员属性以及成员方法进行访问,所以在编写测试用例时,需要完成实例化对象的创建。工具可以解析类的所有构造函数,并在测试用例编辑区开辟对象实例化区域,测试人员可根据实际测试需求选择匹配的构造函数来实例化对象。 (2)模板类/模板函数测试 在基于C++开发的代码中,模板的应用也非常广泛,模板的出现,实现了类型的参数化,真正做到代码的重用性。在针对函数模板和类模板进行测试时,VectorCAST/C++支持对模板函数自动插桩,实现图形化界面操作,无需编写测试代码。 此外,在对模板类或者模板函数进行测试之前需要先进行实例化,然后再进行模板的测试。 (3)容器类型数据测试 C++ STL标准模板库中的容器是用来存放各种数据结构对象的集合。关于容器类型的数据,在VectorCAST/C++中,工具支持对C++标准模板库的测试,可以对标准容器(string/vector/list/set/map等)、迭代器等进行解析,可直接在界面中进行赋值操作。 (4)智能指针测试 智能指针的使用解决了C++的内存回收问题,VectorCAST/C++支持解析智能指针,比如shared_ptr,unique_ptr等,可直接通过工具界面为参数赋值。 (5)支持对第三方库解析 在涉及到第三方库的代码测试中,VectorCAST/C++工具支持解析众多第三方库,并可针对相关库函数进行自动插桩,实现图像化界面操作。 集成实际交叉编译链 VectorCAST/C++可以在Windows和Linux平台中稳定运行,且支持众多主流的交叉编译链,比如Green Hills,Hightec,IAR,Tasking,Keil等,之所以支持众多主流编译链,是因为VectorCAST/C++是基于实际编译链进行测试的。 自动生成测试用例 VectorCAST/C++满足ISO26262和ASPICE中不同安全等级项目对覆盖度指标的要求,包括语句、分支、MC/DC等,同时支持基于不同覆盖度指标要求自动生成测试用例并自动填充输入值,可以有效的提高测试效率。 综上所述,在汽车电子未来发展中,大量复杂C++代码会得到广泛使用。借助工具对C++代码的完美解析,都可以在工具中找到对应的解决方案,实现图形化界面的操作,同时借助工具自身的测试优势,可以有效地提高测试效率,实现C++代码软件的自动化测试。 结束语 本文主要介绍了VectorCAST/C++工具在基于C++开发的汽车电子软件项目中的应用,当前工具也被广泛用于智能网联、智能驾驶的量产项目中。VectorCAST/C++工具不仅适用于C++测试,也适用于C测试,且通过了南德认证,是一款可用于功能安全认证的高效的代码动态自动化测试工具,已广泛用于众多国内知名主机厂和零部件厂商。北汇信息作为Vector在中国的合作伙伴,致力于帮助中国客户提升嵌入式控制系统的开发效率。如果你还在寻找合适的C/C++代码测试工具,不妨来试一试VectorCAST/C++工具,定会让你有心动的感觉。此外,在过去的C++测试项目中,我们也积累了一些测试经验,期待与大家的交流与探讨。
相关资源
  • 所需E币: 5
    时间: 2019-12-25 22:55
    大小: 7.1KB
    上传者: 2iot
    若不知道某个运算怎样用汇编语言实现,可以参考其C代码的汇编结果,或编写一段C代码,同样参考其汇编结果,然后在汇编结果的基础上优化,便可以得到该运算较好的汇编程序。……
  • 所需E币: 5
    时间: 2019-12-25 15:53
    大小: 239.82KB
    上传者: 978461154_qq
    基于对实时多任务软件的抽象执行体的研究分析以及对VxWorks平台的分析,提出了实时多任务执行模型到VxWorks平台下C语言程序框架的系统调用的映射规则及代码.给出了实时对象之间的通信原理及映射方法.给出了实时时间管理...1222008,44(3)ComputerEngineeringandApplications计算机工程与应用实时多任务执行模型到VxWorks的代码映射刘晓燕,张云生,于立新,沈嘉权,李俊昌LIUXiao―yah,ZHANGYun―sheng,YULi―xin,SHENGJia-quan,LIJun-chang昆明理工大学信息工程与自动化学院,昆明650093SchoolofInformationEngineeringandAutomation,KunmingUniversityofScienceandTechnology,Kunming650093,ChinaE―mail:lxykmust@yahoo.com.cnLIUXiao-yan。ZHANGYun-sheng,YULi-xin。eta1.Mappingreal-timemultitaskingexecutionmodeltocodesunderVxWorks.ComputerEngineeringandApplications,2008,44(3):122-123.Abstract:Presentsmappingguidelinesandcodesofareal-timemultitas……