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

广东省会城监狱官方网站建设简短的软文范例

广东省会城监狱官方网站建设,简短的软文范例,怎样在网上卖东西步骤,网站怎么更改域名解析以下是一份基于MISRA-C的嵌入式软件设计规范(完整技术文档框架),包含编码规范、安全设计原则和工程实践要求: 嵌入式软件设计规范(MISRA-C 2012增强版) 一、编码基础规范 1.1 文件组织 头文件保护 /* 示…

以下是一份基于MISRA-C的嵌入式软件设计规范(完整技术文档框架),包含编码规范、安全设计原则和工程实践要求:


嵌入式软件设计规范(MISRA-C 2012增强版)

一、编码基础规范

1.1 文件组织

  1. 头文件保护
/* 示例:符合MISRA Rule 20.2 */
#ifndef MODULE_H
#define MODULE_H
/* 内容 */
#endif /* MODULE_H */
  1. 模块划分原则
  • 每个.c文件对应一个.h文件
  • 单个文件代码量 ≤ 800行(MISRA Dir 4.1)

1.2 变量声明

规则编号要求MISRA条款
VAR-001禁止隐式声明Rule 8.1
VAR-002所有变量必须显式初始化Rule 9.1
VAR-003禁止使用全局变量(需审批)Rule 8.8

示例(错误):

int a, b;  // 违反VAR-003

1.3 函数设计

/* 符合MISRA Rule 17.8的规范函数 */
static uint32_t calculate_crc(uint8_t const *data, uint16_t len) 
{uint32_t crc = 0xFFFFFFFFU;// ... CRC计算逻辑return crc ^ 0xFFFFFFFFU;
}
  • 函数圈复杂度 ≤ 10(MISRA Dir 4.1)
  • 递归调用必须通过安全评审(Rule 17.2)

二、安全关键规则

2.1 内存管理

规则类型要求技术措施
强制禁止动态内存分配使用静态内存池
建议关键数据区启用ECC/奇偶校验硬件特性+软件校验
强制数组访问必须边界检查防御性编程模板

防御性代码示例:

#define ARRAY_SIZE 32
uint8_t safe_array_access(uint8_t *arr, size_t index) {if (index < ARRAY_SIZE) {return arr[index];}return 0;  // 错误处理
}

2.2 多任务同步

/* 符合MISRA Rule 20.7的互斥锁使用 */
void critical_section(void) {static osMutexId_t mutex = osMutexNew(NULL);if (osMutexAcquire(mutex, 100U) == osOK) {// 临界区操作osMutexRelease(mutex);}
}
  • 共享资源必须使用RTOS提供的同步原语
  • 禁止使用关中断方式保护临界区(特殊硬件操作除外)

三、代码风格与可读性

3.1 命名规范

类型前缀示例
全局变量g_g_system_state
静态变量s_s_local_counter
类型定义t_t_sensor_data
枚举常量E_E_OPERATION_MODE

3.2 注释要求

函数头注释模板:

/*** @brief   计算CRC32校验值* @param   data    输入数据指针(MISRA Rule 17.6检查)* @param   len     数据长度(0-65535)* @return  计算后的CRC32值* @warning 本函数非线程安全,需在临界区调用*/

四、MISRA-C核心规则增强

4.1 类型安全

规则编号要求示例修正
Type-001禁止有符号与无符号隐式转换添加显式类型转换
Type-002浮点运算必须进行有效性检查使用isnan()/isinf()

4.2 控制流安全

/* 符合MISRA Rule 15.5的循环结构 */
for (uint8_t i = 0U; i < MAX_RETRY; ++i) {if (operation_succeed()) {break;}// 不允许使用continue
}
  • 禁止使用goto(Rule 15.1)
  • switch必须有default分支(Rule 16.4)

五、验证与测试

5.1 静态分析要求

工具检查项通过标准
Polyspace运行时错误检测0 Red缺陷
LDRAMISRA-C:2012合规性≥95%规则覆盖率

5.2 单元测试规范

测试用例模板:

void test_adc_conversion(void) {// 1. 模拟输入电压2.5Vmock_adc_input(2.5f);// 2. 执行转换float result = read_adc_voltage();// 3. 验证结果TEST_ASSERT_FLOAT_WITHIN(0.01f, 2.5f, result);
}
  • 分支覆盖率 ≥ 90%
  • MC/DC覆盖率 ≥ 80%(安全关键模块)

六、工具链配置

6.1 编译器设置

# GCC安全编译选项示例
CFLAGS += -Wall -Wextra -Werror 
CFLAGS += -Wstrict-prototypes -Wmissing-prototypes
CFLAGS += -fstack-usage -Wstack-usage=512

6.2 持续集成

# GitLab CI配置示例
code_check:stage: verifyscript:- cppcheck --enable=warning,style --std=c99 src/- splint +bounds +unrecog src/*.c

七、文档体系

7.1 必须输出文档

  1. 软件需求规格书(SRS)
  2. 详细设计文档(DDD)
  3. 测试验证报告(含MISRA合规证明)
  4. 安全分析报告(FMEA/FTA)

八、变更管理

  1. 任何对MISRA规则的豁免必须记录在《规范偏离报告》中
  2. 代码修改必须通过影响分析(Impact Analysis)
  3. 版本控制使用语义化版本(SemVer)

附录A:MISRA-C:2012关键规则速查表

规则ID描述类别
8.1函数必须显式声明返回值类型强制
11.5禁止将对象指针转换为函数指针强制
15.3循环控制变量不得在循环内修改强制
21.1禁止使用标准库中的宏定义建议

附录B:典型违规案例集

// 错误示例:违反Rule 11.4
float *ptr = (float *)0x40024000;  // 需使用uintptr_t转换// 正确写法:
float *ptr = (float *)(uintptr_t)0x40024000;

本规范需配合《嵌入式软件安全设计指南》和《代码审查checklist》使用,建议每季度进行合规性审计。

http://www.cadmedia.cn/news/4016.html

相关文章:

  • h5网站建设图标网络营销推广网站
  • 建工厂网站的公司东莞seo代理
  • 怎样创建自己的网站深圳网站seo服务
  • 深圳网站建设的谷歌aso优化
  • 河池市住房和城乡建设厅网站营销案例最新
  • 公司装修设计案例武汉企业seo推广
  • 为拟建设的网站申请一个域名今日国际新闻摘抄
  • 外包做一个网站一般费用seo网络公司
  • 云南省建设厅勘察设计处网站无锡百度信息流
  • 做直销建立个人网站好吗百度seo培训
  • web网站是什么深圳百度seo整站
  • 建设网站的收费扬州seo推广
  • 新津县建设局网站有没有免费的seo网站
  • 网站如何快速被百度收录什么是网络营销策划
  • 潍坊网站建设价链接优化方法
  • jsp网站服务建设开题报告百度搜索关键词排名优化
  • .net做网站用mvc免费百度广告怎么投放
  • 后台java语言做网站排名优化培训
  • 建设政府网站的目的意义网站收录平台
  • 403网站打开免费百度运营优化师
  • 北京网站建设百度排名今日疫情最新情况
  • 英语教育网站建设线上it培训机构
  • 佛山格尔做网站的公司宣传推广计划怎么写
  • 专业信息网站建设方案推广普通话的文字内容
  • 工程行业招聘网站整站优化系统
  • 做网站建设需要会哪些重庆网站seo多少钱
  • 深圳住房与建设网站制作公司官网多少钱
  • 网站做业务赚钱百度指数是怎么计算的
  • 城乡与建设厅网站首页友情链接免费发布平台
  • 呼和浩特做网站深圳关键词优化