2387|2

653

帖子

1

TA的资源

纯净的硅(中级)

楼主
 

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

 

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后,运行效果如图:

最新回复

用纸盖起来,有什么讲究吗?是不是为了拍摄效果呀。  详情 回复 发表于 2022-12-3 06:34
点赞 关注
 
 

回复
举报

6841

帖子

11

TA的资源

版主

沙发
 
用纸盖起来,有什么讲究吗?是不是为了拍摄效果呀。

点评

因为数码管用的是另一个FPGA板子上的, 为了避免混淆。所以盖起来。   高云FPGA板子是右边的那一块。  详情 回复 发表于 2022-12-3 09:52
 
 
 

回复

653

帖子

1

TA的资源

纯净的硅(中级)

板凳
 
lugl4313820 发表于 2022-12-3 06:34 用纸盖起来,有什么讲究吗?是不是为了拍摄效果呀。

因为数码管用的是另一个FPGA板子上的, 为了避免混淆。所以盖起来。

 

高云FPGA板子是右边的那一块。

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
汇编语言程序设计[下载]

第1章 基础知识1.1 汇编语言及特点1.2 数据表示1.3 8086CPU和寄存器组1.4 存储器物理地址的形成 第2章 寻址方式和指令系统2.1 寻 ...

Protel常用元件库

湖北师院物理系电信专业实验室田开坤(整理)的Protel常用元件库。 包含74系列,CMOS系列,存储器,单片机,杂元件 ...

大西瓜FPGA资料共享开源(持续更新中!!!)

回顾刚开始学习FPGA的时候,感觉作为一个新手从ALTERA的FPGA入门比较好,资料也相对比较多,所以就选择了ALTERA的片子。 ...

我收藏的80多份TI中文资料

本帖最后由 dontium 于 2015-1-23 11:16 编辑 :) 压缩版资料,见18楼; TI的模拟应用期刊; 169466 169467 169468 169469 ...

光谱宽覆盖遥感图像模拟信号源设计

523637

【RISC-V MCU CH32V103测评】- 7:PWM 也不简单

本帖最后由 MianQi 于 2021-3-6 08:32 编辑 原本要测试这个示例 - https://bbs.21ic.com/icview-3048094-1-1.html - DMA(存 ...

颁奖:有奖直播如何使用英飞凌IGBT7设计高性能伺服驱动

【活动详情】如何使用英飞凌IGBT7设计高性能伺服驱动 请获奖者务必在2021年10月8日23:59前,按照下方领奖确认流程完成领 ...

减速机构的变速比,跟杠杆比有什么关系?跟第一齿轮和最后一齿轮的力的大小有什么关系

减速机构的变速比,跟杠杆比有什么关系?跟第一齿轮和最后一齿轮的力的大小有什么关系 比如下图中,变速比为 1000:1 ...

问一个离谱的问题,为什么电容放电 要用电阻给它一个通路形成放电路径呢

问一个离谱的问题,为什么电容放电 要用电阻给它一个通路形成放电路径呢, 消耗掉电容释放的电荷? 有人说 不加电阻电容放的点没 ...

下载资料赢好礼!看Vicor模块化电源解决方案如何推动创新

下载资料赢好礼!看Vicor模块化电源解决方案如何推动创新 活动开始啦~ >>点击进入活动 Vicor是高性能电源模块 ...

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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