受 Linux 开源精神的影响,从毕业至今,我一直坚持每天写一点代码并开源,其中绝大多数与 AUTOSAR 及其工具链相关。早期受个人能力和精力所限,开发主要基于 ArcCore 的 AUTOSAR 开源版本进行,所有产物都堆放在 autoas/as-deprecated 中。如今,这个库已经被我放弃,原因有如下几点:
所以我想做出一点更简单的东西。我不想做一个大而全的完整 AUTOSAR,而是想开发一系列小的模块——可以单独使用、并且使用频率很高的 AUTOSAR 模块。或许有人会说:这样不就不是一个完整的 AUTOSAR 了吗?但这真的不重要。AUTOSAR 本身也有实现符合等级(ICC, Implementation Conformance Class)的概念,在某些应用场景下,这些小而美的模块反而更有优越性。
典型的例子是 MCU 的 bootloader:受 MCU Flash 大小限制,bootloader 的代码体积越小越好,此时可以单独使用的 CanTp、LinTp、Dcm 就非常有优势——只拿需要的模块,不背多余的包袱。
同时,我也想做一个可仿真的平台,利用软件仿真技术来开发和验证这些模块。这样即使用户没有硬件开发板,只要有一台电脑,也可以学习、评估这些模块。目前项目同时提供两条仿真路径:
在本文最初写就之时,我的新库 autoas/as 才初具雏形;而现在,它已经包含:
这些模块或许还谈不上百分之百完美,比如完全符合 MISRA C 规范、满足功能安全要求等等,但它们完全可以胜任大量实际应用需求。
接下来,我会持续对这个库做介绍:如何搭建仿真与开发环境、每个模块有哪些 API、每个模块如何使用与集成,等等。
开源最初以学习和技术积累为目的,这个过程也确实带来了很多收获。随着各模块逐渐成熟,希望它们除了用于学习评估之外,也能在实际项目中发挥作用,并通过持续投入与反馈形成良性循环。
与此同时,对已有研究成果进行系统化整理、持续开发与反复验证这些模块,并撰写配套文档,本身也是一项有价值的工作。因此,业余时间的重点会放在模块的完善、验证和文档建设上,也希望这些工作能够获得相应的回报。
本项目采用 GPLv3 与商业授权双许可模式:
联系我,Email:parai@foxmail.com