727|0

745

帖子

1

资源

纯净的硅(中级)

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

4.6. ARMSOC-INTERRUPT_中断

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

ARMSOC-INTERRUPT_block-diagram.png

4.6.1. FPGA硬件设计

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

ARMSOC-INTERRUPT_project-files.png
  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处理器。

    ARMSOC-INTERRUPT_keil-debug.png

4.6.3. 运行效果

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

ARMSOC-INTERRUPT_effect.gif

回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    推荐帖子
    泰克TDS2002彩色液晶示波器很新很新

    闲置了,卖掉,很新很新,功能完好,单主机一台。 闲鱼链接:https://market.m.taobao.com/app/idleFish-F2e/widle-taobao-rax/ ...

    【i.MX6UL/i.MX6ULL开发常见问题】i.MX6UL/i.MX6ULL开发环境搭建对虚拟机要求如何?

    1.1 i.MX6UL/i.MX6ULL开发环境搭建对虚拟机要求如何? 答:一般常见是在windows下面安装Oracle VM VirtualBox虚拟机,虚拟机至 ...

    一个有源滤波器的实验

    最近一位网友在读了我的帖子《漫话有源滤波器——带通滤波器篇》(http://bbs.eeworld.com.cn/forum.php?mod=viewthre ...

    输出可调的解决

    问题描述: 推荐一些输出可调的方案/客户自己设计输出可调的方案,但是输出会不稳定。 解决方案: 采用数 ...

    最后一天!有奖直播 | RSL15 - 安森美更高效更智能更安全的 BLE 5.2 蓝牙芯片

    590544 直播时间:2022年03月31日(周四)上午10:00-11:30 直播主题:RSL15 - 安森美更高效更智能更安全的 BLE 5.2 蓝 ...

    剩3天:免费申请,全志四核A40i低功耗高性能评估板

    创龙科技 TLA40i-EVM 是一款基于全志科技 A40i 处理器设计的 4 核 ARM Cortex-A7 高性能低功耗国产评估板,每核主频高达 1.2GHz ...

    关闭
    站长推荐上一条 1/8 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表