实例介绍
【实例简介】
DSP硬件调试经验与个人心得,对调试很有帮助的…………………………
使用 的翻转功能,使芯片引脚错误地按顺时针排列,最后实际使 用时不得已将芯片所有引脚翻过来插入才解决这个问题。 )用万用表检査是否有虚焊,引脚短路现象。 )如以上均不好使,则察看示波器使用是否正确,复査,冷静思考査看是 否有遗漏 总而言之,要多观察,多思考,硬件上很小的问题有很多时候是很难发现 的,因此在调试过程中,对于岀现的任何现象都不要放过,问题的解决就 是从一些小的现象入手的。可说是山重水复疑无路,柳暗花明又一村。 编程与调试中应注意的问题和技巧 哈佛结构、流水线操作、专用的硬件乘法器、特殊的指令再加上 集成电路的优化设计可使芯片的指令周期达到几十。快速的指令周 期使得芯片能够实时实现许多应用。然而在实际的程序设计中 由于 芯片的上述特点,程序员们常常会遇到许多意想不到的麻烦。这 样,笔者以为例,将编程与调试中应注意的问题和技巧作一介绍。 ()数据页寻址问题 中所有程序中必须初始化。初始化非常重要,上电时 是随机的,没有初始化的程序就不能正确执行。①在编程时,切记编写 每条语句前都要先检查这条语句所使用到的某个变量或地址空间是否为之 前声明的地址页,如不是则需要重新声明地址页。否则将会出现寻址错误, 进入死循环;②使用定义变量时要清楚知道这一变量的所属地址页, 因为如果使用变量数目超过一个数据页(个)时,这些变量就可能不处 于同一地址页,这样在程序中使用这些变量时就要注意区分其所属页码了; (可使用语句“ #变量名”在观测窗口中查询该变电量的实际地址) ③对片内存储器的访问比片外存储区要快,因此,要将经常使用的数 据分配到片内存储空间,以提高数据处理速度;④尽可能采用直接寻址方 式,这样可在提供较大数据访问能力的同时,提高指令速度 ()流水线冲突 采用了深度为级的流水线操作,它具有个独立的操作阶段: 取指令、译码、取操作数和执行。由于个操作阶段是独立的,因此这些 操作可以交叠进行;在任意的指定周期内,到个不同的指令均可有效, 文件使用 试用版本创建 各处于不同的完成阶段。 由此可见,流水线冲突是不可避免的。一般情况下,当流水线发生冲 突时,由自动插入延迟解决。当无法自动解决时,需要程序员通过调 整程序语句的次序或在程序中插入一定数量的来解决。因此,若在调 试时查不出代码本身的问题,不妨试着相关的位置插入几个指令。(特 别是执行费时较长的语句时最好加 指令如跳转指令 ()软件待状态发生器 为实现与慢速外部逻辑和存储器的接口,等待状态是十分必要的。 当对慢速存储器或端口进行读写时,通过增加等待状态,可延长 等待外部存储器或外部端口的时间以便更好地响应。为此 为每 个待状态提供了个额外的周期。为避免总线冲突,所有向外部地址的写 操作均需要至少个周期。 在程序的调试过程中,我们常用设置断点的方法判断局部功能模块能 否实现。若发现程序在尚未到达断点时就随机地停止运行,或仿真窗口出 现 ”红色告警字样的,可优先考虑调整待状态发 生器控制寄存器( )的设置。 许多初学者在学习例程时发现其中的 值均设为 零等待状 态,就误以为在任何情况下都可行,这是很不可取的。在初次调试大型程 序时,会因为这个问题耗时不少,如将 值由 改为 便可 顺利解决(将片外低端程序空间的读写等状态数设为) 在具体应用中,可根据实际用到的片外资源灵活调整 相关位的 值 ()有效利用片内闪存( 个显著优势是具备片内闪速存储器块。它具有可擦除、可编程 和非易失电源等特点。在复位期间,通过引脚 置为低电平可以选择 闪存。若未选之,则从片外存储器开始执行操作 在利用进行硬件仿真时,有时会出现程序无法全速运行的情况 这时不要总是在程序上冥思苦想,可以开阔思路从別处着手。若确信程序 流程没有什么问题,不妨试着将程序写入闪存运行。当仿真出现问题,但 程序烧入 运行后一切正常,这一现象的可能是实验板上的片外程序 文件使用 试用版本创建 数据存储器的布线不够规范。调整布线重新制板后,程序在硬仿真时应该 就能全速运行。 还有一种情况正好与之相反。程序在仿真窗口里可以正常运行,写入 后却无法运行了。在这种情况下,建议程序员在程序初始阶段(如系 接着关中断 之间)加一小段延时(几十,根据情况可以增减), 可能会达到事半功倍的效果。 ()密码区设置错误 由于 文件设置错误,可能将 内部 中的密码区 中是 )设置成数据区,这样烧写程序时就可能将程序 中的某一数据当成要设置的密码写入密码区。如果不解决这个密码区问题 的话这 就只能仿真不能再烧写了。解决这个问题的办法是找到当时 烧写的原程序,编绎并通过观测窗口察看内部 中的密码区即 地址内的值,这一值即为密码。记下即可进行解码 以永磁同步电杋控制程序为例。整个系统程序由头文件、命令文件、 汇编语言文件组成。其中,汇编语言文件包括主程序、子程序、中断服务 程序和假中断服务程序四大部分。子程序很多包括有:系统初始化子程序、 捕捉事件驱动模块、速度检测模块、相电流检测模块、光电编码器脉冲计 数模块、电流环的控制模垬、速度环的控制模块 变换 变换、旋转角度正弦函数表、空间矢量产生模块等等。这么多子程序如果 开始即组合一起运行,基本上这个系统是不能运行的。因此首先开始时一 定要对每一个模块分开调试通过,才能开始联机调试, 在实际调试过程中,大部分时间其实都在寻找问题所在,可能花费很 长时间找到这一问题之后其解决的方法却很简单,自已都搞眀白为何如此 简单的问题却花这么长时间。因此实际操作中最艰难的并不在于如何解决 问题,而在于如何快速找到问题。而通常解决问题使用排除法十替代法, 先检测是硬件还是软件问题,如果是硬件问题,则分模块测试排除,找到 有问题模块所在,再分别测试这—问题模块的各个环节,这样便能逐步排 除、缩小范围,快速找到问题。 文件使用 试用版本创建 最后提醒各位 焊好的板子一定要先仔细检査,不要轻易上电;通电前检査电源与地是 否短路,以免烧坏电路。 首次通电或电路有更改后应首先检査被供电设备供电端电压是否为期望 电压,以免损坏被供电器件(用万用表测量各点电压) 实验板上电运行时,要经常査看各芯片的发热情况,发现过热现象应及 时断电并分析处理。 如果有多套供电,则先供上一部分,测得各点电压正常,再依次供上其 它部分,先给驱动信号供电再给动力侧供电。 遇到器件损坏,设备故障,一定不要惊慌着急,试想心发毛、思维混乱 还找什么问题。问题都出现了,后悔着急都没有用,当前需要做的最有价 值的事是找到这个问题、解决这个问题、如何在以后避免这个问题。因此 应该先冷静,再多思考,多观察,保证思路清晰,硬件问题有很多时候只 是一个很小的问题,一般是很难发现的。 定要避免这样的理由:“我也不知道怎么弄的!”切忌! 文件使用 试用版本创建 【实例截图】
【核心代码】
DSP硬件调试经验与个人心得,对调试很有帮助的…………………………
使用 的翻转功能,使芯片引脚错误地按顺时针排列,最后实际使 用时不得已将芯片所有引脚翻过来插入才解决这个问题。 )用万用表检査是否有虚焊,引脚短路现象。 )如以上均不好使,则察看示波器使用是否正确,复査,冷静思考査看是 否有遗漏 总而言之,要多观察,多思考,硬件上很小的问题有很多时候是很难发现 的,因此在调试过程中,对于岀现的任何现象都不要放过,问题的解决就 是从一些小的现象入手的。可说是山重水复疑无路,柳暗花明又一村。 编程与调试中应注意的问题和技巧 哈佛结构、流水线操作、专用的硬件乘法器、特殊的指令再加上 集成电路的优化设计可使芯片的指令周期达到几十。快速的指令周 期使得芯片能够实时实现许多应用。然而在实际的程序设计中 由于 芯片的上述特点,程序员们常常会遇到许多意想不到的麻烦。这 样,笔者以为例,将编程与调试中应注意的问题和技巧作一介绍。 ()数据页寻址问题 中所有程序中必须初始化。初始化非常重要,上电时 是随机的,没有初始化的程序就不能正确执行。①在编程时,切记编写 每条语句前都要先检查这条语句所使用到的某个变量或地址空间是否为之 前声明的地址页,如不是则需要重新声明地址页。否则将会出现寻址错误, 进入死循环;②使用定义变量时要清楚知道这一变量的所属地址页, 因为如果使用变量数目超过一个数据页(个)时,这些变量就可能不处 于同一地址页,这样在程序中使用这些变量时就要注意区分其所属页码了; (可使用语句“ #变量名”在观测窗口中查询该变电量的实际地址) ③对片内存储器的访问比片外存储区要快,因此,要将经常使用的数 据分配到片内存储空间,以提高数据处理速度;④尽可能采用直接寻址方 式,这样可在提供较大数据访问能力的同时,提高指令速度 ()流水线冲突 采用了深度为级的流水线操作,它具有个独立的操作阶段: 取指令、译码、取操作数和执行。由于个操作阶段是独立的,因此这些 操作可以交叠进行;在任意的指定周期内,到个不同的指令均可有效, 文件使用 试用版本创建 各处于不同的完成阶段。 由此可见,流水线冲突是不可避免的。一般情况下,当流水线发生冲 突时,由自动插入延迟解决。当无法自动解决时,需要程序员通过调 整程序语句的次序或在程序中插入一定数量的来解决。因此,若在调 试时查不出代码本身的问题,不妨试着相关的位置插入几个指令。(特 别是执行费时较长的语句时最好加 指令如跳转指令 ()软件待状态发生器 为实现与慢速外部逻辑和存储器的接口,等待状态是十分必要的。 当对慢速存储器或端口进行读写时,通过增加等待状态,可延长 等待外部存储器或外部端口的时间以便更好地响应。为此 为每 个待状态提供了个额外的周期。为避免总线冲突,所有向外部地址的写 操作均需要至少个周期。 在程序的调试过程中,我们常用设置断点的方法判断局部功能模块能 否实现。若发现程序在尚未到达断点时就随机地停止运行,或仿真窗口出 现 ”红色告警字样的,可优先考虑调整待状态发 生器控制寄存器( )的设置。 许多初学者在学习例程时发现其中的 值均设为 零等待状 态,就误以为在任何情况下都可行,这是很不可取的。在初次调试大型程 序时,会因为这个问题耗时不少,如将 值由 改为 便可 顺利解决(将片外低端程序空间的读写等状态数设为) 在具体应用中,可根据实际用到的片外资源灵活调整 相关位的 值 ()有效利用片内闪存( 个显著优势是具备片内闪速存储器块。它具有可擦除、可编程 和非易失电源等特点。在复位期间,通过引脚 置为低电平可以选择 闪存。若未选之,则从片外存储器开始执行操作 在利用进行硬件仿真时,有时会出现程序无法全速运行的情况 这时不要总是在程序上冥思苦想,可以开阔思路从別处着手。若确信程序 流程没有什么问题,不妨试着将程序写入闪存运行。当仿真出现问题,但 程序烧入 运行后一切正常,这一现象的可能是实验板上的片外程序 文件使用 试用版本创建 数据存储器的布线不够规范。调整布线重新制板后,程序在硬仿真时应该 就能全速运行。 还有一种情况正好与之相反。程序在仿真窗口里可以正常运行,写入 后却无法运行了。在这种情况下,建议程序员在程序初始阶段(如系 接着关中断 之间)加一小段延时(几十,根据情况可以增减), 可能会达到事半功倍的效果。 ()密码区设置错误 由于 文件设置错误,可能将 内部 中的密码区 中是 )设置成数据区,这样烧写程序时就可能将程序 中的某一数据当成要设置的密码写入密码区。如果不解决这个密码区问题 的话这 就只能仿真不能再烧写了。解决这个问题的办法是找到当时 烧写的原程序,编绎并通过观测窗口察看内部 中的密码区即 地址内的值,这一值即为密码。记下即可进行解码 以永磁同步电杋控制程序为例。整个系统程序由头文件、命令文件、 汇编语言文件组成。其中,汇编语言文件包括主程序、子程序、中断服务 程序和假中断服务程序四大部分。子程序很多包括有:系统初始化子程序、 捕捉事件驱动模块、速度检测模块、相电流检测模块、光电编码器脉冲计 数模块、电流环的控制模垬、速度环的控制模块 变换 变换、旋转角度正弦函数表、空间矢量产生模块等等。这么多子程序如果 开始即组合一起运行,基本上这个系统是不能运行的。因此首先开始时一 定要对每一个模块分开调试通过,才能开始联机调试, 在实际调试过程中,大部分时间其实都在寻找问题所在,可能花费很 长时间找到这一问题之后其解决的方法却很简单,自已都搞眀白为何如此 简单的问题却花这么长时间。因此实际操作中最艰难的并不在于如何解决 问题,而在于如何快速找到问题。而通常解决问题使用排除法十替代法, 先检测是硬件还是软件问题,如果是硬件问题,则分模块测试排除,找到 有问题模块所在,再分别测试这—问题模块的各个环节,这样便能逐步排 除、缩小范围,快速找到问题。 文件使用 试用版本创建 最后提醒各位 焊好的板子一定要先仔细检査,不要轻易上电;通电前检査电源与地是 否短路,以免烧坏电路。 首次通电或电路有更改后应首先检査被供电设备供电端电压是否为期望 电压,以免损坏被供电器件(用万用表测量各点电压) 实验板上电运行时,要经常査看各芯片的发热情况,发现过热现象应及 时断电并分析处理。 如果有多套供电,则先供上一部分,测得各点电压正常,再依次供上其 它部分,先给驱动信号供电再给动力侧供电。 遇到器件损坏,设备故障,一定不要惊慌着急,试想心发毛、思维混乱 还找什么问题。问题都出现了,后悔着急都没有用,当前需要做的最有价 值的事是找到这个问题、解决这个问题、如何在以后避免这个问题。因此 应该先冷静,再多思考,多观察,保证思路清晰,硬件问题有很多时候只 是一个很小的问题,一般是很难发现的。 定要避免这样的理由:“我也不知道怎么弄的!”切忌! 文件使用 试用版本创建 【实例截图】
【核心代码】
标签:
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论