首页 > 其他分享 >VSCODE自定义代码风格

VSCODE自定义代码风格

时间:2023-07-24 17:12:46浏览次数:38  
标签:euint32 自定义 Fpga No VSCODE ulRegCtrlVal 代码 Reg ulRet

VSCode启用代码风格修正

1.打开Settings

2.设置Clang_format

搜索clang_format相关配置

设定clang_format基础风格
基础风格中LLVM与Google都是缩进为2,所以还需要自定义风格。

设定clang_format自定义风格文件的路径
指定自定义分割文件的路径(XXX.clang-format)。自定义风格可以参考后续章节

clang-format文件编写

Clang-format格式化及配置参数(说明)

https://blog.csdn.net/Once_day/article/details/127761573![img](/i/l/?n=23&i=blog/1762239/202307/1762239-20230724165833048-247726142.png)

Clang-format格式化及配置参数(效果展现)

调整为自己的想要的个时候可以导出文件,将文件所在路径填入VSCode,即可完成定制。

https://zed0.co.uk/clang-format-configurator/![img](/i/l/?n=23&i=blog/1762239/202307/1762239-20230724165823220-383505638.png)
![img](/i/l/?n=23&i=blog/1762239/202307/1762239-20230724165817119-180239974.png) ## VSCode使用效果 ``` windows: Shift+Alt+F Linux: Ctrl+Shift+I ``` ### 调整前 ``` c euint32 Fpga_MdioWrite(euint8 uchSlotSel, euint16 DevAddr, euint16 regAdrr, euint16 eushData) { euint32 ulRet = 0; volatile euint32 i = 0; euint32 ulMdioCtrl = 0; euint32 ulMdioPhyAddr = 0; euint32 ulMdioWrData = 0; euint32 ulMdioRdData = 0; euint32 ulMdioIndAddr = 0; euint32 ulMdioRst = 0; euint32 ulRegCtrlVal=0; euint16 phyDevAddr = 0; euint8 mdioMode = 0;
ulRet = Fpga_MdioSel(uchSlotSel, &phyDevAddr, &mdioMode);
if(FPGA_ERR_SUCCESS != ulRet)
{
    return  FPGA_ERR_PARA;
}

ulRet |= Fpga_MdioAddrSel(uchSlotSel, &ulMdioCtrl, &ulMdioPhyAddr, &ulMdioWrData, &ulMdioRdData, &ulMdioIndAddr, &ulMdioRst);
if(FPGA_ERR_SUCCESS != ulRet)
{
    return  FPGA_ERR_PARA;
}

//优化MDIO驱动,Fpga write时使用非掩码写,节省掩码读时的回读步骤,节省MDIO读写时间
Fpga_Write_Reg_No_Mask(ulMdioPhyAddr, phyDevAddr&0x7f);

if (FPGA_MDIO_CLAUSE22 == mdioMode)
{
    ulRegCtrlVal=regAdrr&0x1f;
    Fpga_Write_Reg_No_Mask(ulMdioCtrl, ulRegCtrlVal);
}
else
{
    ulRegCtrlVal=BIT(10)|(DevAddr&0x1f);
    Fpga_Write_Reg_No_Mask(ulMdioCtrl, ulRegCtrlVal);
    Fpga_Write_Reg_No_Mask(ulMdioIndAddr, regAdrr&0xffff);
}

//write data
Fpga_Write_Reg_No_Mask(ulMdioWrData, eushData&0xffff);

for (i=0;i<800;i++)
{
    //pclint
}

Fpga_Write_Reg_No_Mask(ulMdioCtrl, ulRegCtrlVal|BIT(15));//trigger 

ulRet += Fpga_MdioBusy(uchSlotSel);

if (ulRet != FPGA_ERR_SUCCESS)
{
    /* record log */
    //printf("\n MDIO read faild, enter reset process \n");
    Fpga_MdioInit(uchSlotSel);
    
    return ulRet;    
}

return ulRet;

}

### 调整后
```c
euint32 Fpga_MdioWrite(euint8 uchSlotSel, euint16 DevAddr, euint16 regAdrr, euint16 eushData)
{
    euint32          ulRet         = 0;
    volatile euint32 i             = 0;
    euint32          ulMdioCtrl    = 0;
    euint32          ulMdioPhyAddr = 0;
    euint32          ulMdioWrData  = 0;
    euint32          ulMdioRdData  = 0;
    euint32          ulMdioIndAddr = 0;
    euint32          ulMdioRst     = 0;
    euint32          ulRegCtrlVal  = 0;
    euint16          phyDevAddr    = 0;
    euint8           mdioMode      = 0;

    ulRet = Fpga_MdioSel(uchSlotSel, &phyDevAddr, &mdioMode);
    if (FPGA_ERR_SUCCESS != ulRet) {
        return FPGA_ERR_PARA;
    }

    ulRet |= Fpga_MdioAddrSel(uchSlotSel, &ulMdioCtrl, &ulMdioPhyAddr, &ulMdioWrData, &ulMdioRdData,
                              &ulMdioIndAddr, &ulMdioRst);
    if (FPGA_ERR_SUCCESS != ulRet) {
        return FPGA_ERR_PARA;
    }

    // 优化MDIO驱动,Fpga write时使用非掩码写,节省掩码读时的回读步骤,节省MDIO读写时间
    Fpga_Write_Reg_No_Mask(ulMdioPhyAddr, phyDevAddr & 0x7f);

    if (FPGA_MDIO_CLAUSE22 == mdioMode) {
        ulRegCtrlVal = regAdrr & 0x1f;
        Fpga_Write_Reg_No_Mask(ulMdioCtrl, ulRegCtrlVal);
    } else {
        ulRegCtrlVal = BIT(10) | (DevAddr & 0x1f);
        Fpga_Write_Reg_No_Mask(ulMdioCtrl, ulRegCtrlVal);
        Fpga_Write_Reg_No_Mask(ulMdioIndAddr, regAdrr & 0xffff);
    }

    // write data
    Fpga_Write_Reg_No_Mask(ulMdioWrData, eushData & 0xffff);

    for (i = 0; i < 800; i++) {
        // pclint
    }

    Fpga_Write_Reg_No_Mask(ulMdioCtrl, ulRegCtrlVal | BIT(15));  // trigger

    ulRet += Fpga_MdioBusy(uchSlotSel);

    if (ulRet != FPGA_ERR_SUCCESS) {
        /* record log */
        // printf("\n MDIO read faild, enter reset process \n");
        Fpga_MdioInit(uchSlotSel);

        return ulRet;
    }

    return ulRet;
}

我目前使用的格式

BasedOnStyle: Google
AccessModifierOffset: '-4'
AlignAfterOpenBracket: Align
AlignConsecutiveMacros: 'true'
AlignConsecutiveAssignments: 'true'
AlignConsecutiveDeclarations: 'true'
AlignEscapedNewlines: Left
AlignTrailingComments: 'true'
AllowShortBlocksOnASingleLine: 'false'
AllowShortCaseLabelsOnASingleLine: 'false'
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: None
AllowShortLoopsOnASingleLine: 'false'
AlwaysBreakAfterReturnType: None
BinPackArguments: 'true'
BinPackParameters: 'true'
BreakBeforeBraces: Linux
ColumnLimit: '110'
ContinuationIndentWidth: '4'
IndentCaseLabels: 'true'
IndentWidth: '4'
Language: Cpp

标签:euint32,自定义,Fpga,No,VSCODE,ulRegCtrlVal,代码,Reg,ulRet
From: https://www.cnblogs.com/aodong/p/17577708.html

相关文章

  • 【jQuery】smartMenu右键自定义上下文菜单插件(似web QQ)
    DEMO: http://sources.ikeepstudying.com/menu-mail-qq/ 一、这是什么样的一个插件我们都知道,默认状态下,我们右键web页面,会出现一个上下文菜单,例如下图:【jQuery】smartMenu右键自定义上下文菜单插件(似webQQ)但是,浏览器默认的右键选项有时候并不是我们所需要的,......
  • 记录--你的代码不堪一击!太烂了!
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言小王,你的页面白屏了,赶快修复一下。小王排查后发现是服务端传回来的数据格式不对导致,无数据时传回来不是[]而是null,从而导致forEach方法报错导致白屏,于是告诉测试,这是服务端的错误导致,要让服务端来修改,......
  • 快速检测HTTP代理IP是否有效的方法及python代码示例
     1.使用在线代理检测工具:有许多免费的在线代理检测工具可用,如ProxyChecker、ProxyScrape等。只需将待检测的代理IP和端口输入工具中,点击开始检测,即可迅速获得代理的可用性和匿名性等信息。 2.使用命令行工具进行检测:在命令行中使用curl命令来测试代理的可用性。例如,输入命令"......
  • 引入代码来源:深入分析markdown-it-quote插件的魔法
    引入代码来源:深入分析markdown-it-quote插件的魔法markdown-it-quote是一个用于markdown-it的插件,支持多种代码围栏功能。这是SourceCodeTrace项目之一,提供一种MarkdownFence的解析方案,包括对代码块的引用、高亮、链接等功能。SourceCodeTraceProject帮助您在博客、......
  • 【智能优化算法】基于黄金莱维引导机制的阿基米德优化算法(MSAOA)求解单目标优化问题
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 如何让连锁店持续做大做强?巧用伙伴云零代码巡店管理系统
    在门店全面复苏的时期,如何抓住红利,让巡店管理移动化,数字化,标准化,智能化,形成运营闭环流程,帮助企业实现快速扩张呢?一起来看看伙伴云零代码巡店管理系统吧!01经济全面迎来复苏,店铺如何抓住红利?疫情时期,大量门店倒下。疫情结束之后,消费逐渐恢复到了疫情前的水平,甚至开始出现报复性消费,各......
  • R语言社区发现算法检测心理学复杂网络:spinglass、探索性图分析walktrap算法与可视化|
    原文链接:http://tecdat.cn/?p=24613最近我们被客户要求撰写关于社区发现算法的研究报告,包括一些图形和统计输出。我们在心理学网络论文中看到的一个问题是,作者有时会对其数据的可视化进行过度解释。这尤其涉及到图形的布局和节点的位置,例如:网络中的节点是否聚集在某些社区 ( ......
  • R语言文本挖掘tf-idf,主题建模,情感分析,n-gram建模研究|附代码数据
    原文链接:http://tecdat.cn/?p=6864我们围绕文本挖掘技术进行一些咨询,帮助客户解决独特的业务问题。我们对20个Usenet公告板的20,000条消息进行分析 ( 点击文末“阅读原文”获取完整代码数据******** )。此数据集中的Usenet公告板包括新汽车,体育和密码学等主题。预处理我们首......
  • ARMA-GARCH-COPULA模型和金融时间序列案例|附代码数据
    原文链接: http://tecdat.cn/?p=3385最近我们被客户要求撰写关于ARMA-GARCH-COPULA的研究报告,包括一些图形和统计输出。从读取数据中获得各种模型的描述,包括一些图形和统计输出。 > oil = read.xlsx(temp,sheetName =“DATA”,dec =“,”)然后我们可以绘制这三个时间序列......
  • 编写高质量代码改善程序的157个建议:使用Dynamic来简化反射的实现
    概述最近在看《编写高质量代码改善C#程序的157个建议》。看到第15个建议的时候,结合平时使用的习惯发现有部分出入,没有对不对的说法,只是使用习惯有点区别,跟随着我们来看一看。第15条建议是:使用dynamic简化反射的使用。dynamic的确可以简化反射的使用,但是从性能上来说是有......