注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
mars4zhu的个人空间 http://home.eeworld.com.cn/space-uid-216477.html [收藏] [复制] [分享] [RSS]
日志

【Sipeed 高云GW2A FPGA开发板】——ARM Cortex-M0软核处理器_按键中断

已有 422 次阅读2022-11-23 23:38 |个人分类:FPGA

4.6. ARMSOC-INTERRUPT_中断

此设计在前一个设计ARMSOC-7SEG的基础上,添加一个Push button按键到ARM Cortex-M0 DesignStart内核的IRQ信号。

4.6.1. FPGA硬件设计

由于该项目主要基于前一个ARMSOC-7SEG,文件如下:

  1. 大部分调整都与之相同,包括分频、数码管共阳/共阴调整,IO约束在前述基础上,添加了btn按键信号的引脚,如下:

    IO_LOC "btn[0]" T3;
    IO_PORT "btn[0]" PULL_MODE=UP;
    IO_LOC "btn[1]" T2;
    IO_PORT "btn[1]" PULL_MODE=UP;
    IO_LOC "btn[2]" D7;
    IO_PORT "btn[2]" PULL_MODE=UP;
    IO_LOC "btn[3]" C7;
    IO_PORT "btn[3]" PULL_MODE=UP;
    IO_LOC "btn[4]" T5;
    IO_PORT "btn[4]" PULL_MODE=UP;
    

4.6.2. Keil编译调试软件汇编代码

  1. 代码较为简单,在复位后将AHB7SEGDEC的数据寄存器(0x50000000处)置位0,然后进入无限循环,在INT中断服务程序中,读取AHB7SEGDEC的数据寄存器,将其加1后再写回,这样每次中断都将该值加1,数码管将显示中断次数。

    Reset_Handler   PROC
                    GLOBAL Reset_Handler
                    ENTRY
    
                                    LDR     R1, =0xE000E100           ;Interrupt Set Enable Register
                    LDR     R0, =0x00000001
                    STR     R0, [R1]
    
                                    LDR     R1, =0x50000000                 ; Reset 7seg display
                                    MOVS    R0,#0
                                    STR             R0,[R1]
    
    AGAIN                   B AGAIN
                                    ENDP
    
    Int_Handler
                                    PUSH    {LR}
                                    LDR     R1, =0x50000000
                                    LDR             R0,[R1]
                                    ADDS    R0,R0,#1
                                    STR             R0,[R1]
                                    POP             {PC}
    
  2. 编译后,进入Keil调试,调试之前需将堆栈区设置为可读可写,命令为: “map 0x00000300, 0x000003FC read write”,然后正常设置断点,进入调试即可,手动设置中断信号,可以在工具栏Peripherals->Core Peripherals->Nested Vector Interrupt Controller中,选择相应的中断号,然后勾中“pending”选框,即可将中断信号发送到Cortex-M0处理器。

4.6.3. 运行效果

下载到FPGA后,运行效果如图:

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章