DSP复习要点

第一章绪论

1、数的定标:Qn表示。

例如:16进制数2000H=8192,用Q0表示16进制数2000H=0.25,用Q15表示

2、?C54x小数的表示方法:采用2的补码小数;.word 32768 *707/1000

3、定点算术运算:

乘法:解决冗余符号位的办法是在程序中设定状态寄存器STl中的FRCT位为1,让相乘的结果自动左移1位。

第二章CPU结构和存储器设置

一、思考题:

1、C54x DSP的总线结构有哪些特点?

答:TMS320C54x的结构是围绕8组16bit总线建立的。

(1)、一组程序总线(PB):传送从程序存储器的指令代码和立即数。

(2)、三组数据总线(CB,DB和EB):连接各种元器件,

(3)、四组地址总线(PAB,CAB,DAB和EAB)传送执行指令所需要的地址。

2、C54x DSP的CPU包括哪些单元?

答:'C54X 芯片的CPU包括:(1)、40bit的算术逻辑单元(2)、累加器A和B(3)、桶形移位寄存器(4)、乘法器/加法器单元(5)、比较选择和存储单元(6)、指数编码器(7)、CPU状态和控制寄存器(8)、寻址单元。

1)、累加器A和B分为三部分:保护位、高位字、地位字。保护位保存多余高位,防止溢出。

2)、桶形移位寄存器:将输入数据进行0~31bits的左移(正值)和0~15bits的右移(负值)

3)、乘法器/加法器单元:能够在一个周期内完成一次17*17bit的乘法和一次40位的加法

4)、比较选择和存储单元:用维比特算法设计的进行加法/比较/选择运算。

5)、CPU状态和控制寄存器:状态寄存器ST0和ST1,由置位指令SSBX和复位指令RSBX控制、处理器模式状态寄存器PMST

2-3、简述’C54x DSP的ST1,ST0,PMST的主要功能。

答:’C54x DSP的ST1,ST0,PMST的主要功能是用于设置和查看CPU的工作状态。

?ST0主要反映处理器的寻址要求和计算机的运行状态。

ST1主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等。

PMST主要设定和控制处理器的工作方式和存储器的配置,反映处理器的工作状态。

ST0的ARP用于指示当前使用的辅助寄存器,TC为测试/控制的状态位,C表示加减法的进借位,OV A、OVB为累加器的溢出状态,DP表示当前使用的数据页。

?ST1的BRAF为块重复标志,CPL表示编译方式,HM表示挂起方式,INTM用于中断屏蔽控制,OVM为溢出方式设置,SXM 用于设置符号扩展,C16用于设置双16位或者双精度方式,FRCT用于设置小数计算,CMPT为兼容模式位,ASM用于设定移位数。?PMST的IPTR用于配置中断向量指针,MP/MC、OVLY、DROM用于配置片内存储器的使用,A VIS用于配置地址是否可见,CLKOFF用于关断时钟输出,SMUL、SST分别用于乘法、存储的饱和处理设置。

4、C54x DSP存储器可采用软件配置吗?如何配置?

答:’C54X通过在处理器工作方式状态寄存器(PMST)中的三个状态位来设置片内存储器。

MP/MC=0:片内ROM安排到程序空间;MP/MC=1:片内ROM不安排到程序空间;

OVLY=0:片内RAM只安排到数据空间;OVLY=1:片内RAM安排到数据空间和程序空间;

PROM=0:片内不安排到数据空间;PROM=1:片内安排到数据空间;

5、C54x数据存储器前1K如何划分?

答:1)存储器映象CPU寄存器(0000h~001Fh,共26个单元) 2)外围电路寄存器(0020h~005FH) 3)32字暂存器DARAM(0060h~007Fh) 4)896字DARAM(0080h~03FFh)。

现在的编译器还需要手动展开循环吗_DSP(知识点+思考题)相关推荐

  1. 现在的编译器还需要手动展开循环吗_性能 - 如果有的话,循环展开仍然有用吗?...

    性能 - 如果有的话,循环展开仍然有用吗? 我一直试图通过循环展开来优化一些极其性能关键的代码(一种快速排序算法,在蒙特卡罗模拟中被称为数百万次). 这是我试图加速的内循环: // Search fo ...

  2. 现在的编译器还需要手动展开循环吗_一例 Go 编译器代码优化 bug 定位和修复解析...

    缘起 某日,一位友人在群里招呼我,"看到有人给 Go 提了个编译器的 bug,挺有意思,感觉还挺严重的,要不要来看看?"于是我打开了 issue 40367 .彼时,最新一条评论是 ...

  3. Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)

    前言:经常会看到有一些app的banner界面可以实现循环播放多个广告图片和手动滑动循环.本以为单纯的ViewPager就可以实现这些功能.但是蛋疼的事情来了,ViewPager并不支持循环翻页.所以 ...

  4. 都9012年了,你还在手动部署代码吗(二)

    前言 在写完基于 Webhooks 的"第一篇<都9012年了,你还在手动部署代码吗>"之后,有同学评论到"至少你得用个 docker 啊"&quo ...

  5. excel修改列名_听说你还在手动合并Excel,看看这个吧!?

    Excel合并的应用场景 工作中,常常遇到将多个Excel进行合并的任务.例如,将各位参会人员的报名表合并成一张总的参会人员表,或是将不同客户的需求明细合并为一种总表. 常规的做法是新建一个空白的Ex ...

  6. 【Linux】gcc编译器下载与手动安装

    由于 Linux 操作系统的自由.开源,在其基础上衍生出了很多不同的 Linux 操作系统,如 CentOS.Ubuntu.Debian 等.这些 Linux 发行版中,大多数都默认装有 GCC 编译 ...

  7. react 展开收起写法(手动展开收起 和 自动展开收起)

    一:手动展开收起 html写法: <div className="pack-unfold">{isShow.includes(item.chapterId)?<s ...

  8. 还在手动启动neo4j?快来使用bat批处理自动启动neo4j,之后也不用配置环境了(社区版)

    还在手动启动neo4j?快来使用bat批处理自动启动,之后不用配置环境了(社区版) 1 start_neo4j.bat 总共创建两个bat一个 开启 start,一个关闭 stop [1]在neo4j ...

  9. return的用法是什么?若用在for循环中,还会执行下一次循环吗?

    这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: 这里是修真院前端 ...

最新文章

  1. SQL Server改MySQL注意事项
  2. 软件测试用例_软件测试用例设计实战场景法
  3. android 系统(162)---O版本的Camera Startup time比N版本时间长
  4. Uber 宣布将香港最低打车费用上涨 80%, 最低 45 港币
  5. verilog中generate语句的使用
  6. 大中型网站使用图片域名的必要性原因
  7. Google亲儿子 Nexus/Pixel 手机刷机Root之旅
  8. linux sqluldr2命令,sqluldr2 linux64
  9. 海康摄像头RTSP视频流-Web端人脸识别-ffmpeg+websocket+jsmpeg
  10. 一线协议—ds18b20
  11. 通过nginx代理实现内网访问百度地图方案
  12. cisco anyConnect 不用每次输入密码的办法
  13. android编译找不到系统so,Android找不到so库解决方法
  14. 为什么kafka客户端需要配置 /etc/hosts文件
  15. android camera 全屏,Android Camera做全屏预览之最简单方法.doc
  16. 那些年我们一起遇到的bug
  17. 【现代简约风格装修案例】诠释不一样的简单 !
  18. 运动神经元有哪些特征 容易与哪些疾病混淆
  19. 【MySQL】 update 大量数据批量更新
  20. 如何在最近任务列表中隐藏app

热门文章

  1. 探索Julia(part6)--基本命令与数学函数
  2. python与正则表达式(part1)--元字符
  3. 18 个常犯的统计学错误,建议收藏!
  4. 如何修改 SAP Spartacus CMS API 默认的 endpoint
  5. 什么是软件开发中的 green field 和 brown field 模式 - 绿地开发和棕地开发
  6. Angular 如何使用 InjectionToken 的方式得到当前 location 信息
  7. 一步步使用SAP C4C Cloud Application Studio创建一个BO和对应的屏幕
  8. Angular getSimpleChangesStore的实现原理
  9. SAP CRM WebClient UI端到端的字段扩展
  10. SAP CRM呼叫中心里的事件注册机制