【MISRA C 2012】Rule 2.6 函数不应该包含未使用的标签声明
- 1. 规则
- 1.1 原文
- 1.2 分类
- 2. 关键描述
- 3. 代码实例
1. 规则
1.1 原文
Rule 2.6 A function should not contain unused label declarations
Category Advisory
Analysis Decidable, Single Translation Unit
Applies to C90, C99
1.2 分类
规则2.6:函数不应该包含未使用的标签声明
Advisory建议类规范。
2. 关键描述
如果声明了一个标签但没有使用,那么审阅者就不清楚这个标签是多余的还是错误地没有使用。
3. 代码实例
例1,规范中例程:
其中,label1是没有使用到的函数块,是不允许的。
void unused_label ( void )
{int16_t x = 6;label1: /* 代码中没有使用,不合规的 */use_int16 ( x );
}
例2,使用397 MCAL测试工程中的为例,如下代码中Adc_SWGroupDemo是没有被使用到的接口,如果ADC使用中断周期处理,Adc_SWGroupDemo应该删除,属于没有被使用到的定义
/******************************************************************************
** Syntax : void Adc_SWGroupDemo(void) **
** **
** Service ID: : NA **
** **
** Sync/Async: : Synchronous **
** **
** Reentrancy: : Non Reentrant **
** **
** Parameters (in): none **
** **
** Parameters (out): none **
** **
** Return value : none **
** **
** Timing : Fixed Cyclic/Variable Cyclic **
** **
** Description : This routine will start the SW Group Configured as: **
** Conversion mode : Continuous **
** Result Access mode : Streaming, Linear **
** Streaming Length : 5 **
** Channels in a groups: AN1, AN0 **
** Result buffer : ADC_SW_GRP_RES[5][2] **
** Conversion is stopped automatically when once configured **
** number of samples are captured **
** Read and print the latest conversion result using pointer **
** returned from API Adc_GetStreamLastPointer **
******************************************************************************/
void Adc_SWGroupDemo(void)
{static uint8 grpNum = 0;static uint16 adc_delay_time_us;adc_delay_time_us = 0;do{//BspStm_waitTime(1);delay_ms(1);adc_delay_time_us++;}while((g_stAdcCfg.AdcConvertflag[grpNum] == ADC_Convert_Busy) && (adc_delay_time_us<100));Adc_StartGroupConversion(g_grpIndex[0]);Adc_StartGroupConversion(g_grpIndex[1]);Adc_StartGroupConversion(g_grpIndex[2]);adc_delay_time_us = 0;do{//BspStm_waitTime(1);delay_ms(1);adc_delay_time_us++;}while((g_stAdcCfg.AdcConvertflag[grpNum] == ADC_Convert_Busy) && (adc_delay_time_us<100));uint8 i;for (i = 0; i < 3; i++) {fVoltage[grpNum][i] = G0_ResultPtr[grpNum][i] * 3.3f / 4096;}grpNum++;if (grpNum > 2) {grpNum = 0;}} /* Adc_SWGroupDemo *//*******************************************************************************
** Syntax : void DemoApp_Adc_Init(void) **
** **
** Service ID: : NA **
** **
** Sync/Async: : Synchronous **
** **
** Reentrancy: : Reentrant **
** **
** Parameters (in): none **
** **
** Parameters (out): none **
** **
** Return value: none **
** **
** Description : Initialize ADC module **
*******************************************************************************/
void DemoApp_Adc_Init(void)
{SRC_VADCG2SR0.U |= SRE_ENABLE;// SRC_VADCG8SR0.U |= SRE_ENABLE;const Adc_ConfigType * ConfigPtr = NULL_PTR;ConfigPtr = &Adc_Config;Adc_Init(ConfigPtr);Adc_TriggerStartupCal();/* Wait till the StartUp calibration is over */while(Adc_GetStartupCalStatus() != ADC_STARTUP_CALIB_OVER) {}/* Initialize ADC interrupt */IrqAdc_Init();SRC_VADC_G2_SR0.B.SRE = 1U;SRC_VADC_G2_SR1.B.SRE = 1U;SRC_VADC_G2_SR2.B.SRE = 1U;SRC_VADC_G2_SR3.B.SRE = 1U;SRC_VADC_G3_SR0.B.SRE = 1U;SRC_VADC_G8_SR0.B.SRE = 1U;Std_ReturnType lRetVal;lRetVal = Adc_SetupResultBuffer(g_grpIndex[0], G0_ResultPtr[0]);if(lRetVal != E_NOT_OK) {Adc_EnableGroupNotification(g_grpIndex[0]);Adc_StartGroupConversion(g_grpIndex[0]);} else {/*Could not setup result buffer*/}lRetVal = Adc_SetupResultBuffer(g_grpIndex[1], G0_ResultPtr[1]);if(lRetVal != E_NOT_OK) {Adc_EnableGroupNotification(g_grpIndex[1]);Adc_StartGroupConversion(g_grpIndex[1]);} else {/*Could not setup result buffer*/}lRetVal = Adc_SetupResultBuffer(g_grpIndex[2], G0_ResultPtr[2]);if(lRetVal != E_NOT_OK) {Adc_EnableGroupNotification(g_grpIndex[2]);Adc_StartGroupConversion(g_grpIndex[2]);} else {/*Could not setup result buffer*/}
}
相关文章:
【MISRA C 2012】Rule 2.6 函数不应该包含未使用的标签声明
1. 规则1.1 原文1.2 分类 2. 关键描述3. 代码实例 1. 规则 1.1 原文 Rule 2.6 A function should not contain unused label declarations Category Advisory Analysis Decidable, Single Translation Unit Applies to C90, C99 1.2 分类 规则2.6:函数不应该包含…...
Ubuntu:使用apache2部署Vue开发的网站
作者:CSDN @ _乐多_ 本文记录了Vue项目打包到部署到ubuntu系统的全部步骤。 文章目录 一、代码打包二、安装 Apache2三、开启/关闭apache23.1 开启3.2 关闭四、部署Vue应用到Apache24.1 首次部署4.2 更新部署五、全部操作截图一、代码打包 首先,确保您已经在本地开发环境中…...
使用IO完成端口实现简单回显服务器
说明 使用IO完成端口实现简单回显服务器,因为是测试用的,所以代码很粗糙。 提醒 使用的是ReadFile、WriteFile来实现Overlapped IO,正式场合应该用WSARecv、WSASend,原因:来自《Windows网络编程技术》 8.2.5节 在这里…...
【ROS】Nav2源码之nav2_behavior_tree详解
1、简介 nav2_bt_navigator实现ROS2节点以行为树的方式来处理。 nav2_behavior_tree模块提供如下功能: 一个c模板类,可以轻松地将ROS2 动作(actions)和服务(services)集成到行为树(Behavior Trees)中。特定于导航的行为树节点。通用的BehaviorTreeEngine类&#…...
SpringBoot---myBatis数据库操作
一,分页查询 现在controller中设置参数,RequestParam(defaultValue "1") 设置默认值 GetMapping public Result page(RequestParam(defaultValue "1") Integer page,RequestParam(defaultValue "10") Integer pageSize…...
力扣541.反转字符串II
原题链接:力扣541.反转字符串II 思路: 其实在遍历字符串的过程中,只要让 i (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。 因为要找的也就是每2 * k 区间的起点,这样写,…...
撕掉Hadoop标签,Cloudera未来可期吗?
Cloudera:大数据的弄潮儿 1、Cloudera发展史2、透过Cloudera看清大数据时代的转变3、参考文章 1、Cloudera发展史 说起Cloudera,就不得不提起Hadoop,Cloudera的过去就是Hadoop时代中的一个缩影。作为全球第一家也是最大一家Hadoop商业化公司&…...
排序算法(1)
这里写目录标题 排序插入排序直接插入排序希尔排序 选择排序直接选择排序堆排序向下调整堆排序 交换排序冒泡排序 排序 插入排序 直接插入排序 直接插入排序是O(N^2)的排序算法 从0下标开始往后排 void InsertSort(int* a,int n)//直接插入排序 {fo…...
Top 5 Cutting-edge technology examples 2023
文章目录 Top 5 Cutting-edge technology examples 20231、Computer Vision2、Natural Language Processing3、Virtual Reality & Augmented Reality4、Deep Machine Learning5、Neuralink Top 5 Cutting-edge technology examples 2023 Cutting-edge technology in 2023 …...
【算法|滑动窗口No.3】leetcode3. 无重复字符的最长子串
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...
元素的水平居中和垂直几种方案
总结一下各种元素的水平居中和垂直居中方案。 水平居中: 1.行内元素水平居中 text-align: center 定义行内内容(例如文字)如何相对它的块父元素对齐;不仅可以让文字水平居中,还可以让行内元素水平居中 注意:给行内…...
JS和JQuery的区别
JS和jQuery都是用于前端开发的工具,但是它们有一些重要的区别。主要区别如下: JS是一种编程语言,而jQuery是一个JS库。JS可以与其他语言一起使用(如PHP、Python等),而jQuery是JS的一个扩展,只能…...
延时摄影视频制作工具 LRTimelapse mac中文版特点介绍
lrTimelapse mac是一款适用于 Windows 和 macOS 系统的延时摄影视频制作软件,可以帮助用户创建高质量的延时摄影视频。该软件提供了直观的界面和丰富的功能,支持多种时间轴摄影工具和文件格式,并具有高度的可定制性和扩展性。 lrTimelapse ma…...
Mac电脑怎么运行 Office 办公软件
虽然 Office 软件也有 Mac 版本的,但是有蛮多小伙伴用起来还是感觉不得劲,毕竟接触了太久的 Windows,所以想要使用 Windows 版本的 Office 软件。 今天就给大家介绍一下怎么在 Mac 电脑中运行 Windows 版本的办公软件,在这里就需…...
FPGA 如何 固化程序到 FLASH中
1、导出Hardware 2、导出bit文件 3、打开SDK 4、 点击Ok 5、创建工程 6、 输入工程名称:guhua 7、选择 Zynq FSBL 8、单击 guhua、然后点击 build 点击:build all 9、 右键之后,点击:Creat Boot Image 10、点击 Cr…...
电源管理(PMIC)MAX20428ATIA/VY、MAX20428ATIC/VY、MAX20428ATIE/VY适合汽车ADAS应用的开关稳压器
一、概述 MAX20428是一款高效率、八路输出、低压PMIC。OUT1将输入电源升压至5V,电流高达500mA,而三个同步降压转换器的输入电压范围为3.0V至4.2V,输出电压范围为0.8V至3.9875V,峰值电流分别高达1.3A、1.3A和3.5A。三个300mA pMOS…...
十年JAVA搬砖路——Linux搭建Ldap服务器。
1.安装命令 yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel2.启动ldap systemctl start slapd systemctl enable slapd3.修改密码 slappasswd Aa123456获得返回的密码加密密码串: {SSHA}DkSw0…...
论文 辅助笔记:t2vec train.py
1 train 1.1 加载training和validation数据 def train(args):logging.basicConfig(filenameos.path.join(args.data, "training.log"), levellogging.INFO)设置了日志的基本配置。将日志信息保存到名为 "training.log" 的文件中日志的级别被设置为 INFO&…...
同时标注分割、检测、多分类属性的工具
1、 https://blog.csdn.net/minstyrain/article/details/82385580/ 2、 https://zhuanlan.zhihu.com/p/656703406...
LeetCode75——Day24
文章目录 一、题目二、题解 一、题目 2390. Removing Stars From a String You are given a string s, which contains stars *. In one operation, you can: Choose a star in s. Remove the closest non-star character to its left, as well as remove the star itself.…...
3个核心优势:BG3 Mod Manager的模组管理创新特性
3个核心优势:BG3 Mod Manager的模组管理创新特性 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 博德之门3(Baldurs Gate 3&…...
工程伦理案例分析:从经典失败项目看责任分配与风险预防
工程伦理案例分析:从经典失败项目看责任分配与风险预防 当一座桥梁在通车典礼上轰然倒塌,当一栋新建大楼在台风中支离破碎,这些触目惊心的工程事故背后,往往隐藏着复杂的伦理困境。工程伦理不是简单的对错判断题,而是需…...
FRCRN处理长音频文件实战:切片、批处理与结果合并
FRCRN处理长音频文件实战:切片、批处理与结果合并 你是不是遇到过这样的问题?手头有一段长达数小时的会议录音、访谈素材或者播客音频,背景噪音让人头疼,想用FRCRN这样的降噪模型处理一下,结果发现模型一次只能处理几…...
别再死磕英文手册了!手把手带你用Lisflood-FP跑通第一个洪水模拟案例(附T001_buscot实战)
从零到一:Lisflood-FP洪水模拟实战指南(T001_buscot案例详解) 刚接触水文模型的研究者常被英文手册劝退——密密麻麻的公式、晦涩的术语、复杂的参数配置让人望而生畏。其实,掌握Lisflood-FP的关键不在于死磕理论,而在…...
Ubuntu 22.04上,用Cephadm 17.2.0搭建单节点Ceph集群的保姆级避坑指南
Ubuntu 22.04单节点Ceph集群实战:从零到生产级部署的17个关键细节 当你在Ubuntu 22.04上尝试用Cephadm搭建单节点Ceph集群时,是否遇到过这些场景:bootstrap卡在某个步骤超过半小时、OSD设备明明存在却显示"no available devices"、…...
Linux进程调度机制与性能优化实践
1. Linux进程调度概述在Linux操作系统中,进程调度是内核最核心的功能之一。作为一个多任务操作系统,Linux需要合理地分配有限的CPU资源给众多进程,使它们能够高效、公平地运行。理解Linux的调度机制,对于系统性能调优、应用开发以…...
BilibiliDown高效音频提取实战指南:从问题解决到场景落地
BilibiliDown高效音频提取实战指南:从问题解决到场景落地 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirror…...
STC89C52内存告急?手把手教你优化MPU6050 DMP库,让51单片机也能流畅跑姿态解算
STC89C52内存告急?手把手教你优化MPU6050 DMP库,让51单片机也能流畅跑姿态解算 当你在STC89C52这类资源有限的51单片机上尝试运行MPU6050的DMP(Digital Motion Processor)库时,是否遇到过编译失败或运行不稳定的情况&…...
在QT中将多个项目(同代码不同ui和资源文件)合并
Linux下的qt环境 我现在有三个项目,代码一模一样,只有UI文件和资源文件不同现在想要合并代码 后期好上传在git 仅需要一个分支 更好管理将随行 康养 采图三个项目代码合并 思路是这样的 将每个项目都分类打包区分开我是在康养这个项目的基础上合…...
Janus-Pro-7B开发者案例:基于Gradio API构建私有AI内容中台
Janus-Pro-7B开发者案例:基于Gradio API构建私有AI内容中台 1. 项目概述 Janus-Pro-7B是DeepSeek发布的一款统一多模态理解与生成模型,它通过创新的架构设计解决了传统模型在理解与生成任务上的冲突问题。该模型支持图像问答、OCR识别、图表分析等理解…...
