#1楼主:(转)DP指针的使用
文章发表于:2007-10-03 09:38
3.5 数据页DP
在所有程序中必须初始化DP。初始化DP非常重要,复位不能初始化DP,DP是不确定的。没有初始化DP的程序就不能正确执行。另外,在编程时应注意:(1)DSP对片内存储区的访问比片外存储器要快,因此应将经常使用的数据分配至片内存储空间,以提高数据处理速度。(2)尽可能采用直接寻址方式,这样可在提供较大数据访问能力的同时,提高指令速度,这种寻址方式具有128字的寻址能力,但寻址范围是指定DP下的128字。当程序复杂特别是有中断存在的情况下,改变DP的值很容易造成程序的混乱。基于此考虑一般将DP的值固定不变,尽可能合理地在各功能模块间分配这128个高效且使用方便的存储单元。应特别注意的是,如果DP的值不为零,在对IFR、IMR等操作时,应先将DP的值置零,在操作完成后再将DP的值还原,这是因为IFR、IMR的地址都是DP为零的相对地址。另外,在中断程序入口如果使用直接寻址方式保存状态寄存器的值,那么在中断返回之前装载所保存的值时,也应先将DP的值设为零,否则程序将无法正常运行