AUTOSAR CP Watchdog Manager模块详解
本文章所参考的 AUTOSAR 标准为 4.4.0 版本
简介Watchdog Manager 在 AUTOSAR 架构中扮演着应用层软狗机制的角色,负责监控被称为“监控实体”的对象。其监控方式涵盖以下三种:
Alive Supervision:专门监控周期性任务是否按预期周期性运行,确保任务没有遗漏或延迟执行。
Deadline Supervision:关注事件型任务的执行时间,确保任务在规定的时间内完成,防止任务超时导致的系统不稳定。
Logical Supervision:用于监控任务的执行时序,保证任务之间的依赖关系和执行顺序正确无误。
为了实施这些监控机制,每个监控实体都会设置相应的 Checkpoint。一个监控实体可以有一个或多个 Checkpoint,这些 Checkpoint 及其转换关系在单个实体内部被称为内图,而涉及不同监控实体的 Checkpoint 及其关系则构成外图。
具体应用中,一个监控实体可能会采用上述三种监控机制中的一种、多种或全部,这完全取决于实际应用场景和需求。基于这些监控机制的结果,每个监控实体都会计算出一个被称为 Local Statu ...
AUTOSAR CP OS 时间保护详解
前言
本文章所参考的 AUTOSAR 标准为 4.4.0 版本
AUTOSAR OS,源于早期的 OSEK OS,随着汽车行业的快速发展,特别是对电子信息安全和功能安全要求的日益提升,传统的 OSEK OS 已无法满足这些高标准的需求。为此,AUTOSAR 组织进行了扩展和增强,基于 OSEK OS 的基础,为用户提供了四类具备不同功能安全级别的可裁剪操作系统类型,分别是 SC1 至 SC4。
SC1: OSEK OS + Schedule Table;
SC2: OSEK OS + Schedule Table + Timing Protection;
SC3: OSEK OS + Schedule Table + Memory Protection;
SC4: OSEK OS + Schedule Table + Timing Protection + Memory Protection;
如下图所示,较为清晰了描述了这四种不同可裁剪类型的区别与联系。
AUTOSAR OS 时间保护概念AUTOSAR OS 的四大可定制类型凸显了时间保护(Timing Protection ...
hexo教程
以下为其他 hexo 博客的跳转链接,比较详细
https://nu-ll.github.io/2019/09/16/hexo%E5%8F%B2%E4%B8%8A%E6%9C%80%E5%85%A8%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/
https://www.jianshu.com/p/9b4d5903dfc8
https://www.cnblogs.com/MoYu-zc/p/14395965.html
Ubuntu QT环境搭建
QT5sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-toolssudo apt-get install qt5*sudo apt-get install qttools5-dev
QT6sudo apt install -y qt6-base-dev qt6-declarative-devsudo apt install -y qt6*
SSH免密登录
生成公钥如果你本地有公钥,则跳过此步。
# 输入命令,一直按回车即可ssh-keygen #生成公钥
上传公钥ssh-copy-id -i C:\Users\username\.ssh\id_rsa.pub username@userip
可能遇到的问题多密钥config 文件添加 IdentityFile
Host userip HostName userip User username IdentityFile C:/Users/username/.ssh/id_rsa ServerAliveInterval 60 Port 22
无法免密首先开 debug 模式,在服务端执行
sudo /usr/sbin/sshd -d -p 2222
在客户端执行
ssh -vvv username@userip -p 2222 -i C:/Users/username/.ssh/id_rsa
观察日志,看是否有以下日志
Authentication refused: bad ownership or modes for directory
Could not ope ...
ARM指令中LDM与STM指令详解
简介:ARM指令中多数据传输共有两种:
LDM:(load much)多数据加载,将地址上的值加载到寄存器上
STM:(store much)多数据存储,将寄存器上的值加载到地址上
其主要用途有:现场保护、数据复制、参数传送等,共有8种模式 (前面4种用于数据块的传输,后面4种是堆栈操作)具体如下:
IA: (Increase After) 每次传送后地址加 4,其中的寄存器从左到右执行,例如:STMIA R0,{R1,LR} 先存R1,再存LR
IB: (Increase Before)每次传送前地址加 4,同上
DA: (Decrease After) 每次传送后地址减 4,其中的寄存器从右到左执行,例如:STMDA R0,{R1,LR} 先存LR,再存R1
DB: (Decrease Before)每次传送前地址减 4,同上
FD: (Full Descending) 满递减堆栈
FA: (Full Ascending) 满递增堆栈
ED: (Empty Descending) 空递减堆栈
EA: (Empty Ascending) 空递 ...
修改WSL的安装位置
点此下载离线 wsl 包 https://learn.microsoft.com/zh-cn/windows/wsl/install-manual
将下载的文件加上 .zip 后缀,对齐进行解压。
把它的后缀改为.zip,然后解压到想要安装WSL的目录下。
点击 ubuntu.exe,等待一段时间就成功安装到当前目录。
需要注意的是安装目录的磁盘不能开压缩内容以便节省磁盘空间选项,否则会报错 0xc03a001a, 可以右键【文件夹–>属性–>常规–>高级】找到并关闭这个选项。
要卸载的话使用命令 wsl –unregister <要卸载的发行版>,之后删除文件夹即可。
可以使用 wsl –list –verbose 查看安装的 wsl
使用 wsl –shutdown 关闭所有的 wsl
wsl -t Ubuntu-20.04 关闭指定的 wsl
修改WSL启动时的默认账户
useradd --create-home --shell /bin/bash xqyjljpasswd xqyjljusermod -aG sudo xqyjljvim /etc/wsl.conf
添加以下代码
[user]default=xqyjlj
重启 wsl 即可
通过VSCode远程调试RISC-V(基于平头哥C906)
前言最近从一个老司机那里搞来一块Lichee D1 Dock Pro开发板,由于其板载 jtag 功能,加上现在深圳动不动就封个几天,因此,想尝试一下远程对RISC-V CPU Debug 的可行性。
废话不多说,直接上干货!
DebugServer安装curl -s https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1657868508115/T-Head-DebugServer-linux-x86_64-V5.16.2-20220708.sh.tar.gz | tar xzf -sudo chmod 777 ./T-Head-DebugServer-linux-x86_64-V5.16.2-20220708.sh -Rsudo ./T-Head-DebugServer-linux-x86_64-V5.16.2-20220708.sh -iDebugServerConsole -setclk 8 -port 1025
如果出现以下日志,则说明已经安装成功了
+--- ...