打印

DSP F2809调试无法设置寄存器

[复制链接]
821|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Orchids|  楼主 | 2017-10-13 15:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP F2809调试无法设置寄存器


使用的是ICETEK-5100_USB仿真器。为了验证DSP是可工作的,编写一个有关GPIO的程序,是某几位为高电平,然后用万用表测量结果。验证其正确性。
        具体程序如下:
  • #define GPADAT1 *(unsigned int *)0x6FC0
  • #define GPADAT2 *(unsigned int *)0x6FC1    //GPIO数据寄存器
  • #define GPAMUX1 *(unsigned int *)0x6F86
  • #define GPAMUX2 *(unsigned int *)0x6F88    //设置GPIO是否为数字IO
  • #define GPADIR1 *(unsigned int *)0x6F8A
  • #define GPADIR2 *(unsigned int *)0x6F8B    //设置GPIO输入还是输出
  • int main()
  • {
  • GPAMUX1 &=0xfcff;                            //设置GPIO8和9为通用数字IO
  • GPADIR1 |=0x0300;                            //设置GPIO8和9为输出
  • while(1){
  • GPADAT1 |=0x0300;                     
  • GPADAT1 |=0x0300;                            //使GPIO8和9输出高电平
  • GPADAT1 &=0xfeff;
  • GPADAT1 &=0xfeff;                            //使GPIO8输出为低电平
  • }
  • return 0;
  • }

复制代码

但是不知道为什么就是无法设置寄存器。然后在simulator的情况下,发现以上程序没有问题,可以在CCS中的memory窗口中查看。
        在网上查找原因,终于找到了问题的实质:28x中有一些配置寄存器是受保护的,无法直接操作。也就是说在对这些寄存器进行修改之前,需要先去掉保护功能,而保护状态是由状态寄存器中EALLOW标志来指示的。汇编指令“EALLOW”就是将该标志位置位,允许对受保护的寄存器操作。EALLOW一般和EDIS配套使用,在对受保护的寄存器操作之后,用EDIS恢复寄存器的被保护状态。
        修改后的程序为:
  • #define EALLOW asm(" EALLOW")
  • #define EDIS   asm(" EDIS")
  • #define GPADAT1 *(unsigned int *)0x6FC0
  • #define GPADAT2 *(unsigned int *)0x6FC1
  • #define GPAMUX1 *(unsigned int *)0x6F86
  • #define GPAMUX2 *(unsigned int *)0x6F88
  • #define GPADIR1 *(unsigned int *)0x6F8A
  • #define GPADIR2 *(unsigned int *)0x6F8B
  • #define GPAPUD *(unsigned int *)0x6F8C
  • int main()
  • {
  • EALLOW;
  • GPAMUX1 &=0xfcff;
  • GPADIR1 |=0x0300;
  • EDIS;
  • while(1){
  • EALLOW;
  • GPADAT1 |=0x0300;
  • GPADAT1 |=0x0300;
  • EDIS;
  • EALLOW;
  • GPADAT1 &=0xfeff;
  • GPADAT1 &=0xfeff;
  • EDIS;
  • }
  • return 0;
  • }

复制代码

一切OK!!!







相关帖子

沙发
smilingangel| | 2017-10-13 23:04 | 只看该作者
看来这个设置GPIO寄存器的还是蛮复杂的。

使用特权

评论回复
板凳
vivilzb1985| | 2017-10-13 23:08 | 只看该作者
简单的GPIO的寄存器的状态的设计与验证是否正确的方法还是蛮简单的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

697

主题

993

帖子

4

粉丝