1.__eallow()和__edis()
TI的DSP为了提高安全性能,将很多关键寄存器作了保护处理。通过状态寄存器1(ST1)的位6设置与复位,来决定是否允许DSP指令对关键寄存器进行操作。这些关键寄存器包括:器件仿真寄存器、FLASH寄存器、CSM寄存器、PIE矢量表、系统控制寄存器、GPIOMux寄存器等等。

DSP由于在上电复位之后,状态寄存器基本上都是清零,而这样的状态下正是上述特殊寄存器禁止改写的状态。为了能够对这些特殊寄存器进行初始化,所以在对上述特殊寄存器进行改写之前,一定要执行汇编指令asm(“EALLOW”)或者宏定义EALLOW来设置状态寄存器1的C6位,在设置完寄存器之后,一定要注意执行汇编指令asm(“EDIS”)或者宏定义EDIS来清除状态寄存器1的C6位,来防止杂散代码或指针破坏寄存器内容。

2 if和#if的区别?
#if是条件编译,条件编译是根据宏条件选择性地编译语句;而if是条件语句,条件语句是根据条件表达式选择性地执行语句。

#if是编译器在编译代码时完成的,if是在程序运行时进行的在程序运行时执行。

#if后面不能写变量,if后面可以写变量。

3.C/C++的ASSERT()函数
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行。
其使用注意事项如下:
(1) 在函数开始处检验传入参数的合法性在函数开始处检验传入参数的合法性。例如:assert(nNewSize >= 0);
(2)每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败,
如:
assert(nOffset>=0 &&nOffset+nSize<=m_nInfomationSize);——不建议
assert(nOffset >= 0);
assert(nOffset+nSize <= m_nInfomationSize);

C语言__eallow()和__edis()、if和#if、ASSERT()的区别(基于DSP)相关推荐

  1. R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数、阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化、基于数据阳性样本比例选择合适的分类评估指标

    R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数.阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化.基于数据阳性样本比例选择合适的分类评估指标 目录

  2. R语言限制性立方样条(RCS, Restricted cubic spline)分析:基于logistic回归模型、南非心脏病数据集(South African Heart Disease)

    R语言限制性立方样条(RCS, Restricted cubic spline)分析:基于logistic回归模型.南非心脏病数据集(South African Heart Disease) 目录

  3. R语言使用compareGroups包绘制单因素分析表实战:基于survival包的colon数据集

    R语言使用compareGroups包绘制单因素分析表实战:基于survival包的colon数据集 目录 R语言使用compareGroups包绘制单因素分析表实战:基于survival包的colo ...

  4. R语言生存分析模型简介及survival包实现实战:基于survival包lung数据集

    R语言生存分析模型简介及survival包实现实战:基于survival包lung数据集 目录 R语言生存分析模型简介及survival包实现实战 #survival包简介

  5. 基于DSP的数字振荡器C语言编程,基于DSP的数字振荡器的设计与实现.pdf

    1 基于 DSP 的数字振荡器的设计与实现 基于 DSP 的数字振荡器的设计与实现 黄福莹 陈华 徐金隆 广西大学计算机与电子信息学院 南宁 530004 摘要 摘要 本文阐述了一种基于 DSP 芯片 ...

  6. c语言深入浅出(一)strcpy和memcpy的区别

    c语言深入浅出(一)strcpy和memcpy的区别 strcpy和memcpy都是c语言的库函数 strcpy:只用于字符串的复制,当碰到'\0'就停止了 memcpy:用于这个内存的拷贝,适用于结 ...

  7. c语言 python java_C语言、C++、Java,Python之间的区别,哪个更有前景,哪个更难 ?...

    从这四种语言的难度.受欢迎度还有作用以及优点缺点给楼主做一个全面的分析,我们可以从中了解其区别,以及难易程度.至于今后可以用到的或者是前景问题,根据自己的职业发展大家可以自己做个分析.最后会总结一下他 ...

  8. R语言使用order函数对dataframe数据进行排序、基于多个字段(变量)进行升序排序(ASCENDING)

    R语言使用order函数对dataframe数据进行排序.基于多个字段(变量)进行升序排序(ASCENDING) 目录

  9. R语言使用caret包的train函数构建xgboost模型(基于linear算法)模型构建分类模型、trainControl函数设置交叉验证参数、自定义调优评估指标

    R语言使用caret包的train函数构建xgboost模型(基于linear算法)模型构建分类模型.trainControl函数设置交叉验证参数.自定义调优评估指标.tuneLength参数和tun ...

最新文章

  1. 理解 iOS 和 macOS 的内存管理
  2. BZOJ 1867 [Noi1999]钉子和小球 DP
  3. 粒子群优化RBF神经网络源码程序
  4. [VN2020 公开赛]CSRe
  5. (转)DOS批处理的字符串功能
  6. python list去重时间复杂度_List集合去重的一种方法 z
  7. 「雕爷学编程」Arduino动手做(18)---太阳能电池模块
  8. how tomcat works 读书笔记(一)----------一个简单的webserver
  9. HDU2007 平方和与立方和【序列处理+入门】
  10. 【渝粤教育】国家开放大学2018年春季 0047-21T计算机办公软件应用 参考试题
  11. Javascript实现子窗口向父窗口传值(转)
  12. eve-ng:加载c7200 dynamips镜像
  13. 防爆破登录:配置/etc/hosts.deny禁止ip尝试ssh或者telnet操作
  14. 图像校色 白平衡调整
  15. mstar v56几路hdmi_MSTAR运用及问题汇总_整理
  16. 毕业实习感想—软件测试
  17. 基于深度学习的SDN家庭网关加密网络流量分类
  18. Android MVC、MVP和MVVP的概念、运用及区别
  19. 高3米直径10的半圆形求面积是多少
  20. JS jQuery分别获取选中的复选框值

热门文章

  1. 滴滴 App 质量优化黑科技,都做了什么
  2. 小学计算机课打气球,小学信息技术课程中学生信息素养的培养.doc
  3. 步步高电子词典修复按键问题和下载软件
  4. 教育培训课程报名管理系统(学生、教师、管理员)+SSM框架+mysql+tomcat+Maven项目(毕设学习)
  5. 精选优美英文短文2——Here's to the Crazy Ones(致疯狂的人)
  6. 机器学习——决策树(一)
  7. 采用WPF仿照MicrosoftToDo做的简单Demo
  8. 用js画出一个等腰三角形
  9. 【Python】猎聘网招聘数据爬虫(Python网络爬虫课设简要)
  10. iconfont 图标转为字体_阿里巴巴Iconfont矢量图转为字体图标的方法