问题标签 [embedded-coder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Embedded Coder:将 C 代码连接到定点模型输入
我有一个使用定点类型接口开发的 Simulink 模型。我必须将生成的代码集成到部分输入变量采用浮点编码的环境中。
没有人喜欢手动编写接口代码,因此我问(也许有人已经遇到过这个问题)是否有办法让 Simulink 为它的每个基本类型生成从 FixedPoint 到 FloatingPoint 的 Encode-Decode 函数。
我认为将实用函数用作使用 FloatingPoint 和 FixedPoint 算术的模块之间的接口会非常有用。我知道我可以手动生成它们,为“数据类型转换”块生成代码,但这会扼杀目的,并且不如手动编写它们实用。
c - Atoi() 针对错误注入的漏洞
我在嵌入式 c 应用程序中使用 atoi 将字符串转换为整数。但是,我可以使用时钟故障注入攻击来利用 atoi() 中的漏洞。我的意思是当我有一个或多个故障时,处理器会丢失一些字符并返回错误的整数。atoi 函数是否有任何替代方法可以更强大地防止故障注入?我可以使用它的互补(itoa 函数)来重新生成字符串并比较两个字符串吗?
- 我将 strtol 函数视为验证的替代方法,而不是 atoi()。这可能是我的问题还是它只是返回软件错误?
python - 如何自动化嵌入式 c 代码的单元测试?
我想自动化 ASCET 生成的嵌入式 C 代码的单元测试。我打算使用python进行测试自动化。但是,如果有更好的免费工具来执行自动化,请告诉我
我知道有一套测试自动化工具可用,但没有一个能满足我的要求。我的单元测试的目标是检查
语句覆盖率:应测试代码行以检查边界条件和死代码
分支覆盖:对于一个决策语句,检查它的正面和负面条件是否可以被测试
修改后的条件/决策语句:对于决策语句中的多项检查,检查所有可能性
我将举一个例子来说明目标的含义
所有这些可能性都有待检验。此外,还应创建测试文档(以 excel 格式),其中应提供有关所有 TC 的所有信息以及他们已达到的测试目标。
注意:单个 TC 可以满足多个测试目标
示例:我有一个需要 2 个输入的函数:Ackermann 偏航率 (dPsiAck) 和偏航率 (dPsi),并给出一个输出:过度转向 (OS)
我的代码如下所示:
每个变量的大小是这样的
- dPsi = - 2 到 2
- dPsiAck = -2 到 2
- 操作系统 = 0 到 1.5
- 内存 = -2 到 2
- P_Thresh = 0 到 1,默认值为 0.2
现在单元测试目标应该检查以下内容:
对于第一个 LOC:mem = min(dPsi,0.2):语句覆盖率应检查以下内容:
- dPsi 大于 0.2
- dPsi 小于 0.2
分支机构和 MCDC 覆盖范围不适用于 1st LOC,因此不应检查它们
对于第二个 LOC:如果 (abs(dPsiAck-dPsi) > P_Thresh && dPsiAck > dPsi)
语句覆盖率应检查以下内容:
- dPsiAck-dPsi 大于 0
- dPsiAck-dPsi 小于 0
分支覆盖率应检查以下内容:
- dPsiAck-dPsi 大于 P_Thresh
- dPsiAck-dPsi 小于 P_Thresh
- dPsiAck 大于 dPsi
- dPsiAck 小于 dPsi
令 abs(dPsiAck-dPsi) > P_Thresh 为 C1 并且 dPsiAck > dPsi 为 C2
MCDC 覆盖范围应检查以下内容:
- C1 为真,C2 为真
- C1 为真,C2 为假
- C1 为假,C2 为真
- C1 为假,C2 为假
对于 LOC3:OS = dPsiAck/mem
声明应检查以下内容:
- 内存的 OS 值 = 0
- dPsiAck 大于 mem
- dPsiAck 小于 mem
没有分支覆盖和 mcdc 覆盖适用于此 LOC。因此不需要测试
对于 LOC 4:否则分支覆盖应检查
- 其他条件满足
- else 条件不满足
声明覆盖率和 mcdc 覆盖率适用于此 LOC。因此不需要测试
LOC 5:OS = 0 是直接赋值,因此单元测试的所有目标都不适用
请让我知道如何继续解决这个问题。任何可以用来解决这个问题或用作解决问题的起点的参考资料、书籍或算法也可以共享