• DSP5509的GPIO学习-第5篇


    1. 使用CCS V6.1版本,目前已经不局限于仅仅把实验搞清楚了,要深入去探究内部的原理,本章看下GPIO实验

    2. 在CCS启动的时候,提示,这个问题是什么,XDAIS是什么?XDAIS (eXpress DSP Algorithm Interoperability Standard) 

    See details below... 
    Unrecognized product of type 'com.ti.rtsc.XDAIS' is required by project '5509gpio' - 
    please install at least one product of this type before building this project.

    在Codec Engine文档中经常看到的xdais,实际上就是TMS320 DSP Algorithm Standard的另一个名字。根据TI官方白皮书,xdais标准一共提供了39条规则,15条指南。大致了解下,不深入研究。

    3. eXpress 是什么?大致理解技术TI制定了一套写代码的标准,大家按这个标准写的代码比较统一,相互之间看的懂。

    4. 出现问题如下:这句话究竟是什么意思?是指定内存RAM大小的?

    5. 还是之前的问题,一点击连接,CCS就自动关闭,看一下CCS的log日志,怀疑是JRE出了问题。

    1 vm_info: Java HotSpot(TM) Client VM (24.60-b09) for windows-x86 JRE (1.7.0_60-b19), built on May  
    7 2014 13:09:52 by "java_re" with unknown MS VC++:1600

    6. 看下CCS的日志,异常的访问变量,什么鬼?

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x66b63432, pid=6488, tid=4088
    #
    # JRE version: Java(TM) SE Runtime Environment (7.0_60-b19) (build 1.7.0_60-b19)
    # Java VM: Java HotSpot(TM) Client VM (24.60-b09 mixed mode windows-x86 )
    # Problematic frame:
    # C  [DebugServer.dll+0x393432]
    #
    # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows

    7.根据上面的好像是DebugServer.dll这个动态连接库有问题,看下面的,JAVA不识别微软的VC++,真心不知道这个是什么鬼。

    1 vm_info: Java HotSpot(TM) Client VM (24.60-b09) for windows-x86 JRE (1.7.0_60-b19), 
    2 built on May  7 2014 13:09:52 by "java_re" with unknown MS VC++:1600

    8. 重新安装CCSV6.1,问题解决。连接目标开发板,这个时候还没有烧写.out文件,可以看到程序指向0xFF8000这个地址,这个地址是什么用途?这个是芯片内部固化的bootloader,它根据外部的GPIO引脚高低电平,决定启动模式。

    9. 0xFF8000这个地址保存的什么代码?看不太懂

    10. 加载.out文件,pc指针正确,启动地址是0x0040be

    11. 看下cmd文件,我觉的很有必要去研究下这个cmd文件,cmd文件是对物理存储器的管理,分配,和使用情况。R可读,W可写,X可执行,I可初始化,一般PAGE 0存放程序空间,PAGE 1存放数据空间。origin其实地址,length是空间大小。 

    1 MEMORY  //MEMMORY声明有哪些存储器,他们的位置和大小。
    2 {
    3  PAGE 0:
    4     PROG0(RWX)    : origin = 04000h   length = 08000h
    5     P_VECT(RIX)   : origin = 0FF80h   length = 00080h
    6  PAGE 1:
    7     DATA0(RW)     : origin = 0C000h   length = 04000h
    8 } 

    12. 看下SECTION,

     1 SECTIONS
     2 {
     3   .vectors              : { } > P_VECT      PAGE 0   //中断向量表
     4   .text                 : { } > PROG0       PAGE 0   //代码段
     5   .cinit                : { } > PROG0       PAGE 0   //变量
     6   .csldata              : { } > DATA0       PAGE 1
     7   .stack                : { } > DATA0       PAGE 1   //系统栈空间
     8   .sysstack             : { } > DATA0       PAGE 1
     9   .bss                  : { } > DATA0       PAGE 1   //全局变量和静态变量
    10   .cio                  : { } > DATA0       PAGE 1
    11   .const                : { } > DATA0       PAGE 1   //const声明的变量,浮点数
    12   .sysmem               : { } > DATA0       PAGE 1   //malloc等使用的空间,那就是堆喽
    13 }  

    13. 最后一个问题,看下代码,问题在于,我不知道这次用的是那个GPIO引脚?The 5509A provides eight dedicated general-purpose input/output pins, GPIO0−GPIO7,还要只有8个GPIO,手指头都数的过来,IODIR设置8个都输出,IODATA设置高低电平的。这次是GPIO7,芯片第6脚。

     1 main()   //其实不过
     2 {
     3     /*初始化CSL库*/    
     4     CSL_init();
     5     /*设置系统的运行速度为144MHz*/
     6     PLL_config(&myConfig);
     7     /*确定方向为输出*/
     8     GPIO_RSET(IODIR,0xFF);
     9     while(1)
    10     {
    11         GPIO_RSET(IODATA,0x00);
    12         delay();
    13         GPIO_RSET(IODATA,0x80);
    14         delay();
    15     }              
    16 }

    14.新的疑问,C5509A的引脚都不复用的吗?

  • 相关阅读:
    sublime text3 安装SublimeCodeIntel插件
    进入博客园的第一天
    .NET之Hangfire快速入门和使用
    图片相似性 d-hash算法 C#实践
    同一个Docker swarm集群中部署多版本的测试环境
    C#创建单链表,翻转单链表
    halcon例程学习 一维测量之矩形边缘
    halcon例程学习 一维测量之弧形边缘
    python 圆曲线
    python pygame黑客帝国的简单实现
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/8168011.html
Copyright © 2020-2023  润新知