登录
注册
一键加入QQ群
友善之臂官方网站
首 页
联系我们
淘宝店铺
维基教程
资料下载
搜索帖子!
NanoPC-T2
Core4418
NanoPC-T3 Plus
Core6818
NanoPi-M4B
NanoPC-T4
NanoPC-T6
NanoPi-NEO
NanoPi-NEO Core
NanoPi-NEO Air
NanoPi-M1 Plus
NanoPi-Duo2
NanoPi-NEO3
核心板:
Smart210
Tiny210
Smart4418
Smart6818
SOM-RK3399V2
CM3588(新品)
路由器:
R1
R1S
R2S
R2S Plus
R2C Plus
R4S
R5S
R5C
R6C
R6S
热门版块:
友善之臂最新动态
开发板实战手册及教程
站点服务
Linux技术交流区
站务管理与公告
裸机程序和微型OS
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访IP统计
管理团队
管理统计
在线统计
会员排行
版块排行
帖子排行
个人首页
我的收藏
好友近况
友善之家
裸机程序和微型OS
终于实现了6410的按键中断
友友粉丝快线
开发板销售中心
嵌入式最新资讯
友善之臂最新动态
友善之臂官方客服中心
开发板实战手册及教程
应用方案和定制开发
NanoPi 交流与讨论
NanoPi 玩家交流区
ROM发布区
硬软DIY及开发
嵌入式交流与讨论
Android技术交流区
Linux技术交流区
U-boot技术交流区
WinCE技术交流区
Ubuntu技术交流区
裸机程序和微型OS
OpenWRT讨论区
开发板硬件讨论区
相关资料下载及使用技巧
站点服务
二手交易区
我的论坛我的贴
站务管理与公告
上一主题
下一主题
«
1
2
3
4
5
»
Pages: 1/5 Go
新 帖
主题 : 终于实现了6410的按键中断
复制链接
|
浏览器收藏
|
打印
venkee.com
级别: 侠客
作者资料
发送短消息
加为好友
UID:
39247
精华:
2
发帖:
51
金钱:
355 两
威望:
71 点
贡献值:
2 点
综合积分:
142 分
注册时间:
2011-03-07
最后登录:
2015-05-31
楼主
发表于: 2011-05-14 14:09
只看楼主
|
小
中
大
终于实现了6410的按键中断
管理提醒:
本帖被 xoom 执行加亮操作(2011-05-14)
复制代码
6410的向量中断模式给我们带来很多方便,我们可以不再使用软件来安排我的中断向量表
这次试验完全试验了在内存中跑的中断程序
1、初始化代码可以很简短:
INCLUDE s3c6410.inc
INCLUDE image_cfg.inc
INCLUDE MemParam_mDDR.inc
IMPORT _main ; C entrypoint for Steppingstone loader.
;------------------------------------------------------------------------------
;
; Memory Start Entry
;
; 内存里直接启动时入口
;
;------------------------------------------------------------------------------
PRESERVE8 //因为我用的是rvds4,这句必不可少
AREA Init, CODE, READONLY
global MemStart
ENTRY
MemStart
mrc p15,0,r0,c1,c0,0
orr r0,r0,#(1<<24)
mcr p15,0,r0,c1,c0,0
b _main
end
2、main.C:
#include "utils.h"
#include "s3c6410_addr.h"
#include "interrupt.h"
void key_init(void)
{
rGPNCON = rGPNCON & ~(0xff << 0) | (0xaa << 0);//eint
rEINT0CON0 = rEINT0CON0 | (0x22 << 0);//both edge
rEINT0MASK = rEINT0MASK & ~(0xf);
}
void key_isr(void) __irq
{
if(rEINT0PEND & 0x1)
Uart_Printf("EINT0 is occurred\n");
else if(rEINT0PEND & 0x2)
Uart_Printf("EINT1 is occurred\n");
else if(rEINT0PEND & 0x4)
Uart_Printf("EINT2 is occurred\n");
else if(rEINT0PEND & 0x8)
Uart_Printf("EINT3 is occurred\n");
//Uart_Printf("key interrupt occurred\n");
rEINT0PEND &= ~(16);//以下两句我不是很明白,但毕竟它工作了
INTC_ClearVectAddr();
}
void _main(void)
{
Uart_Init();
Port_Init();
key_init();
INTC_Init();
INTC_SetIntISR(0, key_isr);
INTC_Enable(0);
while(1);
}
我用的tiny6410,光盘里面用说到用jlink来调试的开发文档附带了源代码,把头文件加上去就可以了
ro_base:0x50000000 //代码基址
fisrt =startup.o(Init) //程序入口
继续研究用key来控制等的亮暗,童鞋们也给点力吧,我很多不明白,需要大家的指点
[ 此帖被venkee.com在2011-06-21 23:11重新编辑 ]
顶端
回复
引用
分享
mlk100
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
40189
精华:
0
发帖:
27
金钱:
105 两
威望:
27 点
贡献值:
0 点
综合积分:
54 分
注册时间:
2011-03-16
最后登录:
2012-07-30
1楼
发表于: 2011-05-15 21:50
只看该作者
|
小
中
大
mark!!!
顶端
回复
引用
分享
flyer
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
28365
精华:
0
发帖:
37
金钱:
185 两
威望:
37 点
贡献值:
0 点
综合积分:
74 分
注册时间:
2010-09-09
最后登录:
2018-06-27
2楼
发表于: 2011-05-16 22:02
只看该作者
|
小
中
大
求楼主把这个几个
INCLUDE s3c6410.inc
INCLUDE image_cfg.inc
INCLUDE MemParam_mDDR.inc
文件也放上来。。
最好打个包。下载 小菜鸟谢过了
顶端
回复
引用
分享
南信大瑜
It's time....
级别: 侠客
作者资料
发送短消息
加为好友
QQ联系
UID:
20328
精华:
0
发帖:
79
金钱:
410 两
威望:
82 点
贡献值:
0 点
综合积分:
158 分
注册时间:
2010-04-29
最后登录:
2015-05-22
3楼
发表于: 2011-05-17 14:56
只看该作者
|
小
中
大
mark
顶端
回复
引用
分享
venkee.com
级别: 侠客
作者资料
发送短消息
加为好友
UID:
39247
精华:
2
发帖:
51
金钱:
355 两
威望:
71 点
贡献值:
2 点
综合积分:
142 分
注册时间:
2011-03-07
最后登录:
2015-05-31
4楼
发表于: 2011-05-18 11:55
只看该作者
|
小
中
大
回 2楼(flyer) 的帖子
你只要有光盘就有这三个文件!在开发文档里有个叫做《使用J-Link在ADS下调试Mini6410裸机程序的详细步骤》的那个源码包,叫leds_arm
顶端
回复
引用
分享
venkee.com
级别: 侠客
作者资料
发送短消息
加为好友
UID:
39247
精华:
2
发帖:
51
金钱:
355 两
威望:
71 点
贡献值:
2 点
综合积分:
142 分
注册时间:
2011-03-07
最后登录:
2015-05-31
5楼
发表于: 2011-05-18 11:58
只看该作者
|
小
中
大
回 2楼(flyer) 的帖子
小弟也开始实习了,我在公司首先用6410做裸机代码的,到时研究到更多的代码我都会发上来,现在我做了的有key,led,key+led,pwm,rtc,wdt的,全部都用过中断模式,不过这些太简单,以后想到了iic,lcd的,我会尽量打包发上来
顶端
回复
引用
分享
melodyooo
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
44362
精华:
0
发帖:
31
金钱:
160 两
威望:
32 点
贡献值:
0 点
综合积分:
62 分
注册时间:
2011-04-24
最后登录:
2012-10-09
6楼
发表于: 2011-05-18 17:10
只看该作者
|
小
中
大
我现在在写中断的程序 是不是还要改启动代码里面中断矢量的说 楼主指点下啊 跟你发了邮件了
我自己用裸机实现了spi口跟fpga的通信
顶端
回复
引用
分享
melodyooo
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
44362
精华:
0
发帖:
31
金钱:
160 两
威望:
32 点
贡献值:
0 点
综合积分:
62 分
注册时间:
2011-04-24
最后登录:
2012-10-09
7楼
发表于: 2011-05-18 17:11
只看该作者
|
小
中
大
直接用楼主的程序 按键没的反应呀 楼主解答下呗
顶端
回复
引用
分享
venkee.com
级别: 侠客
作者资料
发送短消息
加为好友
UID:
39247
精华:
2
发帖:
51
金钱:
355 两
威望:
71 点
贡献值:
2 点
综合积分:
142 分
注册时间:
2011-03-07
最后登录:
2015-05-31
8楼
发表于: 2011-05-18 20:58
只看该作者
|
小
中
大
回 7楼(melodyooo) 的帖子
主要是我和你们的开发环境设置上的差异,你要看清楚我写的注意的问题,ro_base是0x50000000,下载到内存的地址也应该是这个,还有最重要的是,first参数是startup.o,section参数是Init,这好像是ads的设置,但我用的rvds,first和section参数一起设置成了startup.o(Init),我试过的我所有的小实验,都可以的,pwm的中断,rtc的中断,无一不可!
顶端
回复
引用
分享
tingjie
级别: 骑士
作者资料
发送短消息
加为好友
UID:
42149
精华:
2
发帖:
201
金钱:
1115 两
威望:
223 点
贡献值:
2 点
综合积分:
442 分
注册时间:
2011-04-05
最后登录:
2013-03-29
9楼
发表于: 2011-05-19 09:19
只看该作者
|
小
中
大
Mark一下,有空研究。
顶端
回复
引用
分享
上一主题
下一主题
«
1
2
3
4
5
»
Pages: 1/5 Go
友善之家
裸机程序和微型OS
http://www.aiothome.net
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问