• DSP5509的中断学习-第4篇


    1. 编译工程的时候出现一个问题,如下

    1 specifies large memory model, which is not compatible with small memory

    2. 修改工程设置如下,编译通过,好像是大小端的设置。

    3. 代码如下,代码很简单,每次按键的时候,打印一句话,测试一下,疑问,怎么把引脚和中断对应起来的?

     1 void INTconfig()
     2 {
     3     /* Temporarily disable all maskable interrupts */
     4 
     5     IRQ_setVecs((Uint32)(&VECSTART));
     6 
     7     /* Temporarily disable all maskable interrupts */
     8 
     9     old_intm = IRQ_globalDisable();
    10 
    11     /* Get Event Id associated with External INT1(8019), for use with */
    12     eventId0 = IRQ_EVT_INT0;
    13 
    14     /* Clear any pending INT1 interrupts */
    15 
    16     IRQ_clear(eventId0);
    17 
    18     /* Place interrupt service routine address at */
    19 
    20     /* associated vector location */
    21 
    22     IRQ_plug(eventId0,&int1);
    23 
    24     /* Enable INT1(8019) interrupt */
    25 
    26     IRQ_enable(eventId0); 
    27 
    28     /* Enable all maskable interrupts */
    29 
    30     IRQ_globalEnable();    
    31 }
    32 
    33 main()
    34 {
    35     /*初始化CSL库*/    
    36     CSL_init();
    37     
    38     /*EMIF为全EMIF接口*/
    39     CHIP_RSET(XBSR,0x0a01);
    40     
    41     /*设置系统的运行速度为144MHz*/
    42     PLL_config(&myConfig);  
    43 
    44     //设置并使能5509A芯片的INT0中断(EXINT中断)
    45     INTconfig();
    46 
    47     while(1);
    48 }
    49 
    50 //External INT0(EXINT)中断处理函数
    51 interrupt void int1()
    52 {
    53     printf("EXINT ouccers
    ");
    54 }

    4. 看下按键引脚,看出来DSP是有专门的中断引脚,感觉没有STM32吊,STM32的普通GPIO都可以做中断引脚的啊。

    5. 实际测试,发现指针跑飞了,下载完.out文件之后,指针指向这里,原因暂时不清楚,估计要研究研究了

    6. VC5509A上电之后,首先从0xffff00处执行指令 .ivec 0xff8000,程序转入这里之后,0xff8000存放的是芯片内部固化的bootloader,bootloader根据外部引脚的高低电平选择启动模式。

    突然出现一个问题,点击connecet连接目标板,CCS就自动关掉了。

    之后开始进入C程序中断向量表,启动_c_int00函数,这个函数是在rts库里面的。

    1 _VECSTART:
    2 
    3         .ivec _c_int00,c54x_stk

    7. 看下VC5509A的内存空间,DRAM在8000-10000的空间

    对比下CMD文件,下面的好像是字地址,上面的是字节地址,所以需要乘以2,也就是说程序是直接放到RAM里面运行的,掉电会丢失的

    1 MEMORY
    2 {
    3  PAGE 0:
    4     PROG0(RWX)    : origin = 04000h   length = 08000h
    5     P_VECT(RIX)   : origin = 00200h   length = 00100h
    6  PAGE 1:
    7     DATA0(RW)     : origin = 0C000h   length = 04000h
    8 } 

    8. 

  • 相关阅读:
    转:【译】CSS3:clip-path详解
    转---JS 一定要放在 Body 的最底部么?聊聊浏览器的渲染机制
    转---30 分钟学会 Flex 布局
    转---单页面应用下的JS内存管理
    转---移动端 h5开发相关内容总结——CSS篇
    转---谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
    转---写一个网页进度loading
    转---内存空间详细图解
    转---前端跨域请求原理及实践
    简单记录常用git 命令
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/8127477.html
Copyright © 2020-2023  润新知