Qualcomm Robotics RB5 平台软件用户指南(18)

150 篇文章 12 订阅
25 篇文章 1 订阅


6.12 收集 RAM 转储

当设备遇到严重异常时,RAM 转储会捕获系统状态。可以提取 RAM 转储,然后通过工具进行分析,以识别问题发生时的调用堆栈和硬件的其他状态信息。

先决条件
HLOS (Linux) 部分必须使用内核的调试配置来构建。

收集 RAM 转储
以下过程在设备崩溃时使用 Qualcomm PCAT 工具(推荐)或 Qualcomm 产品支持工具 (QPST) 收集 RAM 转储。

  1. 确保启用以下参数。
    下载模式

    echo 1 > /sys/module/restart/parameters/download_mode
    

    在某些新版本上,它由以下控制 sysfsnode。

    echo 1 > /sys/module/msm_poweroff/parameters/download_mode
    
  2. 启动 QPST 工具。
    每当设备崩溃时,它就会进入 RAM 转储模式 (900E)。在 QPST 中,显示绿色指示器表示正在下载转储。
    转至“帮助” > “打开日志文件目录” > “Sahara”以从 PORT_COM 收集转储。

6.12.1 崩溃收集插件

PCAT 可用于 RAM 转储收集。 PCAT 的崩溃收集功能允许您从设备下载内存转储。设备崩溃后,设备进入崩溃状态,PCAT 尝试下载内存转储映像。崩溃收集插件在用户界面上显示有以下功能:

图片 :崩溃收集概述

崩溃收集的各个字段如下:

领域描述
在所有设备上启用自动崩溃收集在所有连接的 Qualcomm 设备上启用自动内存转储收集。多个 PCAT 应用程序实例上不允许自动内存转储收集。
收集内存转储后自动重新启动设备收集设备的内存转储后触发设备重新启动。
跳过 8K 内存转储收集跳过设备(MDM、MSM、APQ)的 8K 内存转储。
跳过9K内存转储收集跳过 9K 内存转储。
内存转储路径表示下载内存转储的路径。默认路径:%ProgramData%\Qualcomm\PCAT\AddOns\CrashCollection\MemoryDumps。转储与设备序列 ID 和时间戳一起存储在内存转储路径下。
内存转储进度描述从设备复制设备内存转储的状态。
使用唯一的时间戳文件夹保存每个内存转储在内存转储路径中使用唯一的时间戳文件夹保存每个内存转储

下载内存转储

  1. 在产品配置助手工具界面中,在设备选择菜单 中连接设备,如下所示。
  2. 打开 PCAT。将出现以下打开设备选择对话框。

3.选择一个设备并单击“连接”。状态栏根据设备的描述和芯片组名称显示绿色。

  1. 在绿色状态下,设备连接到当前的 PCAT 实例,在中灰色状态下,设备连接到另一个 PCAT 实例。
  1. 选择崩溃收集插件和其他所需选项。
  2. 单击“浏览”选择内存转储路径。
  3. 单击收集。

笔记
当内存转储正在进行时,“收集”按钮将被禁用。

笔记
PCAT 应用程序仅在设备进入崩溃模式时收集内存转储。

6.12.1 崩溃收集参数

以下参数描述了可用于崩溃收集的选项。

  • 插件:插件或附加组件名称
  • 设备:设备描述或 ID。
  • 设备类型 - [可选]:设备芯片类型、MSM 或 MDM
  • Dump Dir:存储内存转储的路径
  • Reset:内存转储收集后重置设备

用法

  • PCAT -Plugin “Crash Collection” -Device “Qualcomm USB Composite Device 9091 (0017)” -DumpDir “C:\Temp\MemoryDumps” -Reset True
  • PCAT -Plugin “Crash Collection” -Device “Qualcomm USB Composite Device:QUSB_BULK_SN:F3B21573” -DumpDir “/tmp/PCAT/MemoryDumps” -Reset True
  • PCAT -Plugin “Crash Collection” -Device “0017” -DumpDir “C:\Temp\MemoryDumps” -Reset True
$ PCAT -Help “Crash Collection”
USAGE: PCAT -Plugin <ID/NAME> -Device <ID/DESC> [-DeviceType <MDM/MSM>] -<COMMAND> args
Commands:
  -DUMPDIR	[Required]  	:Directory path for the crash logs/RAM Dumps.
  -RESET       [Optional]  	:Reset device after crash collection. Default Value: True.

Example:
PCAT -PLUGIN "Crash Collection" -DEVICE "Qualcomm USB Composite Device 9091 (0017)" -DUMPDIR "C:\TEMP" -RESET true

PCAT -PLUGIN CC -DEVICE 0017 -DUMPDIR "C:\TEMP" -RESET true

7 配置安全设置

7.1 验证 dm 验证

要验证dm-verity,请执行以下操作,

adb shell
cat /proc/cmdline

检查系统是否安装dm-0为只读。

mount
/dev/dm-0 on / type ext4 (ro,relatime,data=ordered)

验证重新安装。系统保持只读状态。

mount -o remount,rw /
touch file.txt
The above should fail
touch system/file.txt
The above should fail

检查串行/dmesg日志中是否有以下消息。

device-mapper: init: attempting early device configuration.
device-mapper: android-verity: Signature verification success
device-mapper: init: dm-0 is ready

7.2 禁用 dm 验证

要禁用dm-verity,请执行以下操作:

运行

运行以下命令:

adb disable-verity 

在运行时禁用dm-verity仅用于调试目的。禁用并调试完成后dm-verity,无法重新启用,必须重新刷新系统镜像。

要重新刷新系统映像,请使用以下命令。

adb disable-verity
adb reboot
adb root
adb remount
adb shell
mount -o remount,rw /
touch file.txt
touch system/file.txt

编译时间
在poky/meta-qti-bsp/conf/distro/include/qti-distro-base.inc文件中注释如下:

DISTRO_FEATURES += "dm-verity”

笔记
在编译时禁用dm-verity只是为了方便开发阶段。在生产版本中,dm-verity不得禁用它们。

7.3 配置基于文件的加密分区

Ubuntu

基于文件的加密 (FBE) 在基于 Linux Ubuntu 的系统上不受支持。

笔记
有关 Linux Ubuntu 上基于文件的安全机制的信息,请参阅https://ubuntu.com/server/docs/security-apparmor。

嵌入式Linux

Linux 嵌入式系统默认启用基于文件的加密。

启用FBE

根据文件中的以下配置更改的要求启用或禁用 FBE。

poky/meta-qti-bsp/conf/machine/qrb5165-rb5.conf file make the following change:
MACHINE_FEATURES += file-based-encryption

重新编译应用程序组件并将其闪存到 Linux 嵌入式系统上

7.4 安全启动设置

警告:
安全启动启用是一次性的、不可逆转的过程。它涉及熔断器的熔断,应格外小心。最好在指导下启用安全启动。
启用安全启动后,使用 VIP 程序刷新设备。 QFIL 和 fastboot 不起作用。

请参阅以下文档了解更多信息。

  • QRB5165 软件移植指南(80-88500-1)
  • SM8250/SM8250P 安全启动启用用户指南(80-PK882-9)
  • Qualcomm Firehose 验证图像编程 (VIP) (80-P9116-1)
  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用Robotics Toolbox创建ur5机械臂模型,您需要遵循以下步骤: 1. 安装MATLAB Robotics Toolbox。 2. 下载Universal Robots URDF文件。 3. 将URDF文件导入MATLAB中并使用robotics.URDF类读取。 4. 使用robotics.RigidBodyTree类创建机器人模型。 5. 添加所有关节和链接。 6. 定义机器人末端执行器(End Effector)。 7. 设置机器人的关节角度和末端执行器位置。 这里是一个示例代码,可以帮助您进一步了解如何使用Robotics Toolbox创建ur5机械臂模型: ``` % 安装Robotics Toolbox % 下载URDF文件 urdf = 'ur5.urdf'; ur5 = robotics.URDF(urdf); % 创建RigidBodyTree对象 robot = robotics.RigidBodyTree; % 添加链接 link1 = robotics.RigidBody('link1'); joint1 = robotics.Joint('joint1', 'revolute'); setFixedTransform(joint1, trvec2tform([0 0 0])); joint1.JointAxis = [0 0 1]; link1.Joint = joint1; addBody(robot, link1, 'base'); link2 = robotics.RigidBody('link2'); joint2 = robotics.Joint('joint2', 'revolute'); setFixedTransform(joint2, trvec2tform([0 0 0.163])); joint2.JointAxis = [1 0 0]; link2.Joint = joint2; addBody(robot, link2, 'link1'); % ... 添加更多链接和关节 % 添加末端执行器 eeBody = robotics.RigidBody('EndEffector'); setFixedTransform(eeBody.Joint, trvec2tform([0 0 0.09])); addBody(robot, eeBody, 'tool0'); % 设置关节角度和末端执行器位置 q = zeros(1,6); eePos = [0.4 0.1 0.3]; eeOri = [pi/2 0 pi/2]; tform = eul2tform(eeOri); tform(1:3, 4) = eePos; q = ik(eeBody, tform, [1 1 1 0 0 0]); show(robot, q); ``` 这个示例代码将创建一个ur5机械臂模型,并设置关节角度和末端执行器位置。您可以通过修改关节角度和末端执行器位置来控制机器人的运动。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值