Linux
Linux software install
Google repo的使用
Vector AP StartApplication编译脚本解析
Yocto的cmake版本升级
不能自动安装的解决方式
S32G-BSP35.0-SDK使用方法
S32G从SDK生成文件系统的制作过程
Linux Samba设置
Linux添加双网卡
S32G USB-Redirector安装指南
VS code自动生成Doxygen格式注释
Linux下使用多线程下载
使用pandoc 生成带中文的pdf
minicom无法输入的问题解决办法
使用 systemd unit 添加一条路由规则
CMake 教程
步骤 1:基本起点
步骤 2:添加lib库
步骤 3:为库添加使用要求
步骤 4:添加生成器表达式
步骤 5:安装和测试
步骤 6:添加支持测试仪表板
步骤 7: 添加系统内省
步骤 8:自定义命令和生成的文
步骤 9:打包安装程序
步骤 10:选择静态库或共享库
步骤 11:添加导出配置
步骤 12:打包 Debug 和 Release
添加虚拟网卡
Vector AP 去掉防篡改校验
Vector AP startapplication编译与使用
Vector AP问题汇总
Vector AP大型项目开发流程
Vector AP EM
Vector AP 最简单的开发示例
Linux kernel 版本降级
Vector AP StartApplicaiton
startappplication-machine-design
startapplicaiton-machine-integration
amsr-vector-fs-em-executionmanager-design
amsr-vector-fs-em-executionmanager
Vector AP 复杂模型的开发
第一章 Machine和MachineDesign
第二章 Execute Manager
第三章 Log
第四章 State Manager
第五章 State Manager 源码的理解
第六章 Someip daemon
第七章 IPC Service Discovery Daemon
crond的使用方法
解决蓝牙鼠标在 Ubuntu 中单位时间内断开的问题
VPS服务器自建教程
v2rayA的客户端使用配置
GDB调试指南入门篇:揭开程序运行世界的神秘面纱
GDB调试指南高级篇:成为调试专家,掌控程序的命运
Linux安装PyQt5并配置Qt Designer
ADB 命令大全
GoogleTest(一)
GoogleTest(二)简单的TEST宏
GoogleTest(三)简单类函数测试
C++ Template
1. 函数模板
2. 类模板
3. 非类型模板参数
软件版本号规范
EPOLL
C++手札
C++ 使用{}初始化有哪些好处?
现代 C++ decltype 深入解析
函数对象(functor)
Linux性能剖析:CPU、内存、网络与I/O压力测试
AP StateManager
C++ Lambda表达式
C++ 中的Lambda表达式
Lambda 表达式语法
Lambda 表达式的示例
手动发送UDP数据包
pyqt5生成的UI界面不能输入中文
自己搭建repo镜像
摄影
Sony仿富士PP值设置
诗词歌赋
本文档使用 MrDoc 发布
-
+
首页
Vector AP 复杂模型的开发
## 前言 之前写了一篇《[Vector AP 最简单的开发示例](http://samlee820820.synology.me:10086/doc/91/ "Vector AP 最简单的开发示例")》,那是真的简陋中的简陋。只能作为验证环境配置,CMake文件是否写的正确。学习了startApplication的工程之后,专程来写篇稍微复杂工程的模型开发。 <span style="color:red">提示一:本文假定对Davince有过了解,至少参加过Vector的操作培训 提示二:我也是新手,可能存在操作不合理,知识盲区,还请大家指出错误的地方,共同进步</span> ## 模块汇总  整体框架先建立8个工程: - [kochi-machine-integration](#kochi-machine-integration) - [kochi-log-daemon](#kochi-log-daemon) - [kochi-log-daemon-design](#kochi-log-daemon-design) - [kochi-em-executionmanager](#kochi-em-executionmanager) - [kochi-em-executionmanager-design](#kochi-em-executionmanager-design) - [kochi-app-hello](#kochi-app-hello) - [kochi-app-hello-design](#kochi-app-hello-design) - [kochi-machine-design](#kochi-machine-design) ### 1、kochi-machine-integration kochi-machine-integration主要是配置一些跟硬件相关的信息,比如多少个核,网卡通道,Log通道信息等 ### 2、kochi-log-daemon kochi-log-daemon主要是logd守护进程的配置,这里主要是Process相关信息 ### kochi-log-daemon-design kochi-log-daemon主要是logd守护进程的配置,这里主要是Process Design相关信息,SoftwareCluster,StartupConfig等 ### kochi-em-executionmanager kochi-em-executionmanager EM的守护进程,这个是进程很特殊没SWC,没有startup config,到时候看详细配置 ### kochi-em-executionmanager-design kochi-em-executionmanager-design EM的守护进程的部署信息,SoftwareCluster,StartupConfig等 ### kochi-app-hello kochi-app-hello Application的Process信息 ### kochi-app-hello-design kochi-app-hello-design Application的Process的design信息,SoftwareCluster,StartupConfig等 ### kochi-machine-design kochi-machine-design Machine的部署信息,比如IP地址,MachineFG等 ## 搭建框架  mode文件夹下新建8个文件夹,放入相应的8个模块  在Davinic中创建对应的8个工程  建立依赖  ## 开始动手 参照startApplication中,Executable一般都存放在design的arxml中 ### 1. 新建Executable(amsr_em_daemon, amsr_logd_daemon,kochi_app_hello)    ### 2. 编辑Executable - **amsr_em_daemon**  需要注意三个地方 1、em_daemon 没有SWC,因此要删除Root Sw Component 2、BswExecutable 配置项需要选择EXECUTION_MANAGER 3、由于em是个Daemon,所以Category 配置成PLATFORM_LEVEL比较合适 - **amsr_logd_daemon** 这个Executable属于常规配置,跟App唯一的不同是因为他是个daemon,因此将他设置成PLATFORM_LEVEL比较合适  - **kochi_app_hello** 需要注意的是BswExecutable配置  ### 3. 新建Machine 常规的Machine的创建方式。参照startApplication的层次划分。Machine存放于kochi-machine-integration模块中。MachineDesign存放于kochi-machine-design模块中 ### 4. 编辑Machine - **创建3个Log Channel** **execute_manager_logchannel:**  **logd_channel:** <span style="color:red">这里更正,Log Level不要选择Verbose,废log信息太多,不方便观察,选成INFO即可</span>(lijia Modify append)  **kochi_app_hello_logchannel:**  - **创建CPU信息**  - **创建网络节点**  ### 创建FunctionGroup - 创建MachineFG    顺便创建ApplicationState,用以表示程序运行状态   手动添加状态(目前不知道怎么通过wizard来建这个元素)  ### 创建Process和ProcessDesign ExecutionManagerProcess:  ExecutionManagerProcessDesign:  LogdProcess:  LogdProcessDesign:  KochiHelloProcess:  KochiHelloProcessDesign:  ### ProcessMapping  ### 修改部分的Process引用 ExecutionManagerProcess <span style="color:red">注意:process state: 这里是用的ApplicationFGStates,并不是MachineStates</span>  关联相应的Log Channel  LogdProcess:  关联相应的Log Channel  KochiAppHelloProcess:  关联相应的Log Channel  三个Process 的Microsar Adaptive Parameter配置  ### 配置LogAndTraceInstance 需要创建一个PlatFormModuleEthernetEndpointConfiguration的元素,这个元素应该是可以通过wizard创建,知识目前不知道在哪建。因此通过Model Explorer中手动建   设置端口     ### 创建KochiAppHelloSoftwareCluster      ### 查漏补缺 这个地方一定要配置的,否则就会出现 `FATAL: StateClientManager::GetInstance: SM function group control lib must be initialized before being used.`   ## 编译 源码路径 [【附件】kochi-app.zip](/media/attachment/2024/05/kochi-app.zip) ```shell export AMSR_SRC_DIR=/diskA/vector-CBD1800182_D94/ ./build.sh ``` ## 运行 ```shell sudo ifconfig wlp3s0:1 192.168.7.2 up #set virtual network address cd build/gcc7_linux_x86_64/install sudo ./opt/amsr_em_daemon/bin/amsr_em_daemon -w ./opt/amsr_em_daemon/ ``` ## 运行截图 
admin
2024年9月10日 16:47
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码