学习笔记:Adaptive Platform(AP)适配到RTOS

一、背景

1、AP版本

  • Adaptive Platform AUTOSAR R20-11版本标准
  • 支持C++14。
  • CM模块支持DDS、SOME/IP协议

2、RTOS

RTOS-A核,当前完全支持POSIX PSE51、POSIX PSE52接口,POSIX PSE53部分支持,POSIX PSE54基本不支持。详细接口参考:

二、框架

1、OS-AP结构图

从上到下,主要分为3层:

1)AP层

2)适配层

3)OS系统层

2、关键技术点:

AP是基于类Unix操作系统环境,它的架构为面向对象,编程语言采用C++,移植到RTOS上,存在以下几个技术点:

1)基于RTOS自己的编译构建系统,编译AP各个模块和依赖的C++开源库

2)当前AP基于C++14,RTOS标准库对只支持到C++11,RTOS需要升级支持部分C++14特性

3)AP、C++开源库部分功能需要裁剪,比如:

  • RTOS不支持用户组等多用户场景,需要裁剪成单用户
  • AP中EM模块具体功能和系统(linux的cgroup 子系统)强相关,RTOS没有cgroup 子系统,需要裁剪成和RTOS对应
  • 等等

4)POSIX PSE53、POSIX PSE54接口不支持:

  • POSIX PSE53:fork等,不支持“多进程”,OS系统实现难度比较大
  • POSIX PSE54:dlopen、dlsym、dlclose、dlerror,不支持“动态加载”,OS系统实现难度比较大
  • 等等

三、AP层

1、基于RTOS的编译构建系统编译出AP各模块

2、C++标准库差异适配

AP使用是Linux上标准C++库:libstdc++(GNU C++ 标准库),RTOS使用的是自己的标准C/C++库。

比如:基础类型类型coretype需要对下面两类进行修改

1)GNU C++使用到的_GLIBCXX_相关宏不支持

2)std::__开头基本是对C++标准的扩展,需要替换RTOS对应标准实现

3、功能裁剪

对于RTOS不支持的POSIX接口进行功能裁剪,比如多用户等

四、适配层

1、扩展OSAL

AP调用系统调用统一通过OSAL实施,OSAL就是基于POSIX标准进行封装

2、移植C++开源库

AP使用C++开源库,需要将这些C++开源库移植到RTOS上

3、功能裁剪

根据RTOS特性,需要对功能进行适配,比如线程、文件系统,网络等等

五、OS系统层

1、标准库升级

标准库中完善对C++14新特性的支持

2、POSIX接口升级

开发AP和适配层整理出缺少的POSIX接口,完善OS对POSIX PSE53、PSE54接口的支持

六、参考

1、Adaptive Platform AUTOSAR

参考:学习记录:AP & CP AUTOSAR-CSDN博客

2、C++ 14新特性

参考:学习笔记:C/C++、VSCode、在线网址-CSDN博客

3、POSIX接口

参考:学习笔记:IEEE 1003.13-2003(POSIX实时与嵌入式规范)-CSDN博客

  • 22
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值