当前位置: 首页 > news >正文

研发日记,Matlab/Simulink避坑指南(六)——字节分割Bug

文章目录

前言

背景介绍

问题描述

分析排查

解决方案

总结归纳


前言

        见《研发日记,Matlab/Simulink避坑指南(一)——Data Store Memory模块执行时序Bug》

        见《研发日记,Matlab/Simulink避坑指南(二)——非对称数据溢出Bug》

        见《研发日记,Matlab/Simulink避坑指南(三)——向上取整Bug》

        见《研发日记,Matlab/Simulink避坑指南(四)——transpose()转置函数Bug》

        见《研发日记,Matlab/Simulink避坑指南(五)——CAN解包 DLC Bug》

背景介绍

        在一个嵌入式软件项目中,需要将一组16位的数据,按照高低字节拆分成8位的。思路是使用Simulink中的Extract Bits模块构建一个字节分割子系统,把每个数据分割开,示例如下;

问题描述

        按照上述示例,拿一个16位数据验证时,没有什么问题。但是拿一组16位数据进行字节分割时,全部的高字节被放在一起,全部的低字节被放在了一起,示例如下:

分析排查

        把全部信号的Dimensions打出来,看到数据处理的过程不是逐个数据求高低字节。而是先把数组的高字节求出来,然后再把全部的低字节求出来,最后把两部分合并的一起,示例如下:

        

解决方案

        一、先用Selector模块把要处理的数据分成单个元素,然后再逐个调用上述字节分割的子系统,分割之后再把所有字节合并起来,示例如下:

        重新运行程序,问题不再出现,Bug修复完工,示例如下:

        二、上述方案在处理少量数据时没有任何问题,但是当数据量增加需要手动编辑大量模块,应用起来非常吃力。

        于是考虑引入一个for循环,改用字节掩码和数移位的方式来处理上述数据,示例如下:

function y = fcn(u)temp = uint8(zeros(200,1));k = 1;
for i=1:1:length(u)temp(k) = bitshift(bitand(u(i), hex2dec('FF00')),-8);k = k+1;temp(k) = bitand(u(i), hex2dec('00FF'));k = k+1;
endy = temp(1:length(u)*2);

        重新运行程序,功能符合要求,也没有新的问题出现,Bug优化完工,示例如下:

总结归纳

        Simulink中单个的模块本身是可以处理数组或者矩阵这样的数据的,但是组合起来的模块在处理数组和矩阵时会出现一定的逻辑问题,类似上述示例展示,需要开发者自己加以甄别。


        版权声明:原创文章,转载和引用请注明出处和链接,侵权必究!

        上述例程使用的Demo工程,可以到笔者的主页查找和下载。

相关文章:

研发日记,Matlab/Simulink避坑指南(六)——字节分割Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记,Matlab/Simulink避坑指南(一)——Data Store Memory模块执行时序Bug》 见《研发日记,Matlab/Simulink避坑指南(二)——非对称数据溢出Bug》…...

(M)unity受伤反弹以及死亡动画

受伤反弹 1.在人物控制脚本中添加受伤后速度将为0,并添加一个反弹的力 在刷新移动时,需要在没有受伤的状态 public bool isHurt; public float hurtForce; private void FixedUpdate() {if(!isHurt)Move(); }public void GetHurt(Transform attacker) …...

【Java】Springboot入门

学习目标 基于SpringBoot框架的程序开发步骤 熟练使用SpringBoot配置信息修改服务器配置 基于SpringBoot的完成SSM整合项目开发 一、SpringBoot简介 1. 入门案例 问题导入 SpringMVC的HelloWord程序大家还记得吗? SpringBoot是由Pivotal团队提供的全新框架&…...

专业138总分420+中国科学技术大学843信号与系统考研经验中科大电子信息通信

**今年中科大专业课843信号与系统138分,总分420顺利上岸,梦圆中科大,也是报了高考失利的遗憾,总结一下自己的复习经历,希望可以给大家提供参考。**首先,中科大843包括信号与系统,和数字信号处理…...

携程开源 基于真实请求与数据的流量回放测试平台、自动化接口测试平台AREX

携程开源 基于真实请求与数据的流量回放测试平台、自动化接口测试平台AREX 官网文档 基于真实请求与数据的流量回放测试平台、自动化接口测试平台AREX 目前已跑通,通过冒烟测试,这篇文章稍稍水一下,主要讲下部署过程里踩的坑,因为…...

Android中C++层fstream用法详解

fstream用于读写文件内容 ifstream用于读文件内容 ofstream用于写内容到文件 读本文章前,请读一下C 文件和流 | 菜鸟教程 目录 1. 打开文件open 2. 返回当前指针位置tellg, tellp 3. 设置文件读位置指针seekg 4. 设置文件写位置指针seekp 5. 如何在文件…...

git clone常见问题一览及解决方法

在使用Ubuntu下,终端运行git clone命令时会遇见许多问题,本文主要针对一些常见的问题进行整理。关于换源问题,推荐使用小鱼的一键换源。 1.git clone 速度过慢 1.1 魔法 这个方法不做过多赘述,ubuntu下个人使用发现体验良好&am…...

​ArcGIS Pro 如何批量删除字段

在某些时候,我们得到的图层属性表内可能会有很多不需要的字段,如果挨个去删除会十分的麻烦,对于这种情况,我们可以使用工具箱内的字段删除工具批量删除,这里为大家介绍一下使用方法,希望能对你有所帮助。 …...

OG Trade在ZKX揭幕:一家基于Starknet的游戏化永续合约交易所

ZKX的 OG Trade通过内置游戏化和30分钟交易竞赛,为所有交易者创造机会,革新了永续合约交易模式。 2024年1月30日 — ZKX宣布推出OG Trade,这是一家基于Starknet的游戏化永续合约交易所,旨在满足短期交易者、高水平交易者和波段交易…...

ubuntu 22.04 安装redis并设置远程连接

ubuntu 22.04 安装redis并设置远程连接 1、基础安装 更新包: sudo apt update安装redis: sudo apt install redis-server安装完毕后会自动启动,查看状态: sudo systemctl status redis-server注意:如果你的服务器上仅用…...

MemcachedRedis构建缓存服务器

目录 Memcached&Redis构建缓存服务器 一、介绍 二、memcached 1、特点 2、服务框架 3.配置安装memcached 三、redis服务 1、介绍 2、特点 3、缓存 4、安装redis 5、数据持久化 6、redis主从配置 Memcached&Redis构建缓存服务器 一、介绍 许多Web应用都将…...

Python编辑开发 --- pycharm pro 中文

PyCharm Pro是一款专业的Python集成开发环境(IDE),由JetBrains公司开发。它为Python开发者提供了丰富的功能和工具,使得Python编程变得更加高效和便捷。PyCharm Pro具有智能代码编辑功能,能够自动完成代码、快速导航至…...

Linux的 .bashrc 有什么作用?

一、.bashrc 是什么? 有什么用? .bashrc是一个存储在你的home目录下的隐藏文件,它用来配置和自定义你的终端环境和行为。 每次你启动一个新的终端时,.bashrc文件就会被执行,加载你设置的环境变量,别名,函数…...

.ui文件相关

目录 ui类生成过程: 提问: 等以后自己熟练了用代码写这些样式内容,尽量用代码写,原因很简单: 用代码写的可以直接修改代码,但是在设计界面修改的东西,电脑没有QC这玩意,还真不好改…...

【DOCKER】docker 安装sonarque

安装docker 安装docker https://blog.csdn.net/BThinker/article/details/123358697 加入阿里云镜像 https://blog.csdn.net/TommyXu8023/article/details/113291112 { "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] }安装sonarqube ht…...

解决IDEA报错端口被占用的问题

遇到的解决方案通常是执行netstat -ano | findstr "8080" ,然后去关闭对应的进程 但是我遇到的是8080改成任意一个端口,都报错端口被占用,且使用上面的命令并不能查到对应的进程 网上找到的方案能解决我的问题,原链接所…...

IDEA:git 回滚本地提交-git 选择 Reset Current Branch to

前言 回滚提交到本地但是还没有 Push 上去的提交 选择我们要回滚的节点,然后点击 git 选择 Reset Current Branch to… 再选择 Hard 。当我们点击 Reset 的时候,代码就会回滚到单前选中的这个版本...

Docker核心教程

1. 概述 官网:https://docs.docker.com/ Docker Hub 网站:https://hub.docker.com/ 容器较为官方的解释: 一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立…...

React通用后台模板

一. 项目初始化 1. 创建项目 环境 npm init vite 打开package.json,参考以下各模块版本: "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0", "react-redux": "^7.2.8", …...

【Axure教程0基础入门】00Axure9汉化版下载、安装、汉化、注册+01制作线框图

写在前面:在哔哩哔哩上面找到的Axure自学教程0基础入门课程,播放量最高,5个多小时。课程主要分为4个部分,快速入门、动态面板、常用动效、项目设计。UP主账号【Song老师产品经理课堂】。做个有素质的白嫖er,一键三连必…...

独立开发者如何借助 Taotoken 一站式管理多个项目的 AI 调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何借助 Taotoken 一站式管理多个项目的 AI 调用 对于独立开发者而言,同时维护多个项目是常态。每个项目可…...

3分钟上手d2s-editor:暗黑破坏神2存档修改终极指南

3分钟上手d2s-editor:暗黑破坏神2存档修改终极指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2的存档管理头疼吗?无论是角色属性不够完美,还是装备收集太耗时&#xff0…...

终极指南:如何使用WarcraftHelper彻底解决魔兽争霸3兼容性问题

终极指南:如何使用WarcraftHelper彻底解决魔兽争霸3兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代Wind…...

利用Taotoken统一管理多个项目的API密钥与访问权限

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken统一管理多个项目的API密钥与访问权限 对于同时维护多个AI应用或为不同客户部署服务的开发者而言,管理分散…...

微信小程序数据可视化:5步实现ECharts专业级图表集成方案

微信小程序数据可视化:5步实现ECharts专业级图表集成方案 【免费下载链接】echarts-for-weixin 基于 Apache ECharts 的微信小程序图表库 项目地址: https://gitcode.com/gh_mirrors/ec/echarts-for-weixin 面对微信小程序中复杂数据可视化需求的挑战&#x…...

如何用LiteIDE快速构建高效Go开发环境:完整指南

如何用LiteIDE快速构建高效Go开发环境:完整指南 【免费下载链接】liteide LiteIDE is a simple, open source, cross-platform Go IDE. 项目地址: https://gitcode.com/gh_mirrors/li/liteide LiteIDE是一款专为Go语言设计的轻量级、开源、跨平台集成开发环…...

ShopXO任意文件读取漏洞CNVD-2021-15822深度解析

1. 这不是“读文件”,而是绕过权限边界的系统级失守 ShopXO 是国内中小电商项目中出镜率极高的开源系统,轻量、模板丰富、部署快,很多本地生活类小程序后台、县域特产商城、校园二手平台都用它打底。但就在2021年CNVD公布的编号 CNVD-2021-15…...

D2DX技术深度解析:让经典《暗黑破坏神2》在现代PC上重获新生的渲染中间层方案

D2DX技术深度解析:让经典《暗黑破坏神2》在现代PC上重获新生的渲染中间层方案 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/…...

HuMAL:利用人类注意力对齐提升小样本NLP任务性能的实践指南

1. 项目概述与核心思路在自然语言处理领域,Transformer架构及其核心的注意力机制已经彻底改变了游戏规则。作为一名长期在NLP一线摸爬滚打的从业者,我见过太多项目因为数据量不足而折戟沉沙。无论是初创公司的新业务,还是特定垂直领域的文本分…...

终极解决方案:如何用qmc-decoder快速解锁QQ音乐加密格式

终极解决方案:如何用qmc-decoder快速解锁QQ音乐加密格式 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经下载了QQ音乐,却发现那些.qmc3、…...